目录
- 使用elasticdump导出数据
- 需求描述
- 导出数据
- 一、预先准备
- 1.安装node和npm
- 2.安装elasticdump
- 外网机器在线安装
- 内网机器离线安装
- 外网准备
- 内网安装
- 二、使用命令导出数据
- 导入数据
- 三、使用命令导入数据
- 使用kibana导出数据
- 导出数据
- 一、创建索引
- 二、筛选导出
- 导入数据
使用elasticdump导出数据
需求描述
我现在是有两套ES环境,一套在内网(有数据),一套在外网(没数据)。
由于开发测试需要,要将内网的数据导出到外边来进行测试。
导出数据
一、预先准备
1.安装node和npm
# 使用公网服务器下载安装包并上传至离线服务器wget https://nodejs.org/dist/v10.13.0/node-v10.13.0-linux-x64.tar.xz # 在公网服务器和离线服务器将安装包移动到/root/下并解压xz -d node-v10.13.0-linux-x64.tar.xztar xvf node-v10.13.0-linux-x64.tar # 两台机器建立文件软连接到系统命令ln -s /root/node-v10.13.0-linux-x64/bin/node /usr/bin/nodeln -s /root/node-v10.13.0-linux-x64/bin/npm /usr/bin/npm # 检查是否安装成功node -vnpm -v
2.安装elasticdump
外网机器在线安装
# 安装npm install elasticdump -g # 建立文件软连接到系统命令ln -s /root/node-v10.13.0-linux-x64/lib/node_modules/elasticdump/bin/elasticdump /usr/bin/elasticdump # 验证elasticdump --help
内网机器离线安装
外网准备
验证成功之后,由于内网不能在线安装,需要将外网安装的elasticdump导入内网中,在内网离线安装。
# 查看缓存目录位置 npm config get cache /root/.npm cd /root/ # 打包缓存 tar -cf npm-cache.tar .npm
操作完成后,会在当前目录下生成一个tar文件,如下图所示
使用sz命令或者xftp将jar包下载到本地,并拿到内网机器上。
内网安装
将npm-cache.tar安装包上传到服务器/root/目录
解压安装包
tar -xvf npm-cache.tar
进入到node-v10.13.0-linux-x64/bin目录执行安装命令
(有的说是在lib目录下执行安装命令,但我是在bin下执行的,也成功了,总之安装到哪儿软连接的时候就写哪儿)
npm install --cache /root/.npm --optional --cache-min 99999999999 -shrinkwarp false elasticdump#创建软连接ln -s /opt/node-v10.13.0-linux-x64/lib/node_modules/elasticdump/bin/elasticdump /usr/bin/elasticdump#验证elasticdump --help
二、使用命令导出数据
1.导出mapping
elasticdump --input=http://{es服务器用户名}:{es服务器密码}@{es服务器ip}:{es服务端口}/{索引名称} ---output={文件路径} --type=mapping#例如:elasticdump --input=http://admin:admin@localhost:9200/dataworks--output=/root/dataworks_mapping.json --type=mapping
2.导出data
elasticdump --input=http://{es服务器用户名}:{es服务器密码}@{es服务器ip}:{es服务端口}/{索引名称} ---output={文件路径} --type=data#例如:elasticdump --input=http://admin:admin@localhost:9200/dataworks --output=/root/dataworks_data.json --type=data
导入数据
三、使用命令导入数据
1.导入mapping
elasticdump --input={文件路径} --output=http://{es服务器用户名}:{es服务器密码}@{es服务器ip}:{es服务端口}/{索引名称} --type=mapping#例如:elasticdump --input=/root/dataworks_mapping.json --output=http://admin:admin@localhost:9200/dataworks --type=mapping
2.导入data
elasticdump --input={文件路径} --output=http://{es服务器用户名}:{es服务器密码}@{es服务器ip}:{es服务端口}/{索引名称} --type=data#例如:elasticdump --input=/root/dataworks_data.json --output=http://admin:admin@localhost:9200/dataworks --type=data
使用kibana导出数据
导出数据
一、创建索引
按顺序点击框选的按钮,在4号位置搜索已存在的索引名称(可以添加星号*进行模糊匹配)
随后点击右侧的Next step,无脑下一步即可。
二、筛选导出
点击左侧的Discover,并在2号位置选择刚刚创建好的索引,可以在下方Available fields选择筛选的字段,点击右侧的add按钮添加,则只会展示所选中的字段。也可以将添加的字段在Selected fields下方点击remove删除,默认为全量数据。
点击右上角的save按钮,将搜索到的结果保存并命名。
之后点击右上角的Share—>CSV Reports—>Generate CSV,生成文件。
最后在Mangement当中的reporting中查找刚刚所生成的csv文件,并下载。
导入数据
点击左侧的Machine Learning,import data,选择下载好的.csv文件。
(此处少截了一个选择文件的图)
点击左下角的import
在这里填写要生成的索引的名称,填写Import即可导出完成
ps:但是我报错了,没弄成,不然也不会再去用上面的方法导入数据 -,-
文章参考:
https://blog.csdn.net/youmatterhsp/article/details/130122049
https://blog.csdn.net/weixin_41546364/article/details/127791395
https://blog.csdn.net/swrd456/article/details/126030887