作者:甜心菇 | 来源:互联网 | 2023-09-11 14:56
elasticdump可以直接下载es中得数据,需要通过npm方式安装下载elasticdump,所以需要先安装nodejs1.安装nodejs将该文件上传到服务器中,或直接使用w
elasticdump可以直接下载es中得数据,需要通过npm方式安装下载elasticdump,所以需要先安装nodejs
1. 安装nodejs
将该文件上传到服务器中,或直接使用wget方式下载nodejs;切换到你得下载目录中,然后进行解压:
[root@localhost ~]# tar -xvf node-v10.16.0-linux-x64.tar.xz
使用命令解压文件后,然后mv到想要的目录中去,不用进行安装,将node下的bin目录配置到/etc/profile中即可,在/etc/profile中最后一行添加
export PATH=$PATH:xxx_node_home_dir/bin
然后source /etc/profile
即可,输入命令进行查看node和npm是否安装成功
node -v
npm -v
这种方式是在/etc/profile配置目录方式,从而可以使用node或npm方式,也可以使用软连接,如下所示,效果也差不多
[root@localhost ~]# ln -s ~/node-v10.16.0-linux-x64/bin/node /usr/bin/node
[root@localhost ~]# ln -s ~/node-v10.16.0-linux-x64/bin/npm /usr/bin/npm
2. 下载ealsticdump
[root@localhost ~]# npm install elasticdump -g
这种方式安装后,可以全局使用,如果在其他目录中,使用下面命令,如果提示没有安装xxx命令的话, 那就使npm本地安装模式,npm install elasticdump 安装完成后,切换到本地`node_modules/elasticdump/` 目录下,通过bin/elasticdump同样可以使用命令
[root@localhost ~]# elasticdump
3. 下载数据示例
bin/elasticdump --input=http://127.0.0.1:9200/test_index \
--output=./test_index.json --type=data --sourceOnly=true \
--fileSize=512mb --retryAttempts=3 \
--searchBody='{"query":{"bool":{"must":[{"range":{"@timestamp":{"gte":"2021-06-01","lt":"2021-07-01"}}},{"term":{"project.keyword":{"value":"xxxx"}}}]}}}'
示例说明:
--type可以不要,默认就是data,可以设置为mapping和其他,表示要下载的数据
--sourceOnly,默认值为false,正常的数据中,是包含一些_id, _score,_source,_index等信息,如果设置为true,只会把_source中的数据下载回来;
--fileSize设置文件滚动大小
--retryAttempt设置失败重试次数
--searchBody设置你的查询条件
上面示例中,除了--input和--output以外,其他都可以不进行设置,示例的下载过程如下
elasticdump还有很多的参数可以设置,其可以导出,也可以导入,更多信息通过命令进行查看
bin/elasticdump --help