5个稳定版本
1.1.1 | 2022年6月15日 |
---|---|
1.1.0 | 2022年4月5日 |
1.0.2 | 2019年7月22日 |
1.0.1 | 2019年6月7日 |
1.0.0 | 2019年5月24日 |
在解析器实现中排名1259
每月下载量25次
24KB
292 行
Limber
一个简单(但快速)的Elasticsearch文档备份工具。
Limber提供了一个非常简洁的界面来从Elasticsearch集群导出和导入文档。虽然其他工具也存在这种用途,但它们运行较慢,因此不适合在大型集群中使用。该工具旨在尽可能轻量级和快速(考虑到它是一个命令行工具)。使用方式旨在与Unix风格的管道相匹配,以便直接将输出重定向到其他集群或您的压缩算法等。
功能集故意较小,因为其他工具针对的是那些对速度而不是糖(功能)感兴趣的人。如果您希望请求新功能,请提交一个问题,我们可以讨论其包含。
安装
Limber将通过Crates.io提供,因此您可以直接使用cargo
安装它。
$ cargo install limber
当我更熟悉交叉编译时,我将尝试将预构建的二进制文件附加到仓库中,以便让Rust生态系统之外的人更容易使用。
用法
本节将(非常简略地)介绍Limber提供的最相关的命令。如果您想了解最新的用法,请检查您终端会话中通过limber -h
生成的帮助菜单。
导出文档
要从Elasticsearch集群导出文档,您可以使用export
子命令。其模式如下所示
$ limber export <source>
source
参数是必需的,通常包含您要从中导出的Elasticsearch集群的URL。假定集群可以从运行此工具的机器上访问。如果您想从特定的索引导出,您还可以在URL中包含它,形式如下
https://127.0.0.1:9200/my_index
https://127.0.0.1:9200/my_first_index,my_second_index
导出的文档将直接输出到stdout
,并将进度报告到stderr
。这允许您以流式传输的方式将结果重定向到您想要的任何目的地。因此,export命令的调用通常如下所示
$ limber export https://127.0.0.1:9200 | gzip -9 > export.jsonl.gz
上述命令将所有导出的数据压缩成 export.jsonl.gz
文件,同时在终端会话中偶尔报告进度(只要你没有同时重定向 stderr
)。
有几个选项可以用来自定义导出,例如并发因子、批量大小、文档过滤等。所有这些选项都可以通过 limber export -h
查找。
导入文档
导入文档的过程与导出非常相似,只是方向相反。就像 export
命令一样,它遵循以下模式
$ limber import <target>
target
参数是必需的,它和 source
参数一样工作,用于控制将文档放置到哪个索引中。如果您没有提供索引,文档将被放置到与导出时相同的索引名称中。显然,当索引文档时,使用多个索引名称就不再有意义。
与导出类似,导入的文档从 stdin
读取,以便您可以从一个位置流式传输到另一个位置。以下是一个导入之前示例中导出的文档的例子
$ gzcat export.jsonl.gz | limber import https://127.0.0.1:9200
您可能会注意到,API 允许您将一个集群或索引直接管道到另一个。以下是一个例子
$ limber export https://127.0.0.1:9200/my_first_index | \
limber import https://127.0.0.1:9200/my_second_index
导入命令也允许自定义并发因子和批量大小。有关所有可用选项,请参阅 limber import -h
。
依赖关系
~11-26MB
~394K SLoC