使用elasticdump导出和导入elasticsearch的索引数据
官网:https://www.npmjs.com/package/elasticdump文章目录elasticdump 简介1 前置条件2 下载镜像3 导出操作3.1 导出mapping数据3.2 导出data数据3.3 参数解释3.4 操作日志3.5结论4 导入操作4.1 导入mapping数据4.2 导入data数据4.3 操作日志4.4 结论5 注意事项elasticdump 简介用于转移和
·
官网:https://www.npmjs.com/package/elasticdump
文章目录
elasticdump 简介
用于转移和保存ES索引数据
1 前置条件
elasticdump具有两种两种方式:npm和Docker(假设已存在对应的安装环境,可直接跳转至安装elasticdump步骤),本文只讲述docker的安装和使用方式,npm的安装方式可以查阅官网文档细节或者网上查询资料https://www.jianshu.com/p/bcd17c7affab。
2 下载镜像
docker pull elasticdump/elasticsearch-dump
3 导出操作
3.1 导出mapping数据
docker run --network elk_test_default --rm -ti -v /data:/tmp elasticdump/elasticsearch-dump \
--input=http://elasticsearch:9200/localdeployment-server-doc/ \
--output=/tmp/mapping.json \
--type=mapping
3.2 导出data数据
docker run --net=host --rm -ti -v /data:/tmp elasticdump/elasticsearch-dump \
--input=http://localhost:8060/localdeployment-server-doc \
--output=/tmp/data.json \
--type=data
3.3 参数解释
–net=host:连接宿主机网络
–network: 加入已经存在的网络(需要使用docker network ls查看已存在的网络)
–rm: 执行完命令即删除
-ti: 交互运行
-v: 映射数据
-d: 后台运行,使用-d就可以不使用-it,也可以使用,使用-d时可以使用docker logs -f 查看运行日志
3.4 操作日志
Thu, 20 Jan 2022 02:13:22 GMT | got 100 objects from source elasticsearch (offset: 100)
Thu, 20 Jan 2022 02:13:22 GMT | sent 100 objects to destination file, wrote 100
...
Thu, 20 Jan 2022 02:25:03 GMT | got 100 objects from source elasticsearch (offset: 70100)
Thu, 20 Jan 2022 02:25:03 GMT | sent 100 objects to destination file, wrote 100
Thu, 20 Jan 2022 02:25:03 GMT | got 25 objects from source elasticsearch (offset: 70200)
Thu, 20 Jan 2022 02:25:03 GMT | sent 25 objects to destination file, wrote 25
Thu, 20 Jan 2022 02:25:03 GMT | got 0 objects from source elasticsearch (offset: 70225)
Thu, 20 Jan 2022 02:25:03 GMT | Total Writes: 70225
Thu, 20 Jan 2022 02:25:03 GMT | dump complete
3.5结论
读取速度比较慢 7w条数据,26M,执行12分钟
4 导入操作
4.1 导入mapping数据
docker run --net=host --rm -ti -v /docker-compose-registry/elk7.16.3/data:/tmp elasticdump/elasticsearch-dump \
--input=/tmp/mapping.json \
--output=http://localhost:9200/localdeployment-server-doc \
--type=mapping
4.2 导入data数据
docker run --net=host --rm -ti -v /docker-compose-registry/elk7.16.3/data:/tmp elasticdump/elasticsearch-dump \
--input=/tmp/data.json \
--output=http://localhost:9200/localdeployment-server-doc \
--type=data
4.3 操作日志
Thu, 20 Jan 2022 07:23:03 GMT | starting dump
Thu, 20 Jan 2022 07:23:03 GMT | got 100 objects from source file (offset: 0)
Thu, 20 Jan 2022 07:23:03 GMT | sent 100 objects to destination elasticsearch, wrote 100
Thu, 20 Jan 2022 07:23:03 GMT | got 100 objects from source file (offset: 100)
...
Thu, 20 Jan 2022 07:34:44 GMT | sent 25 objects to destination elasticsearch, wrote 25
Thu, 20 Jan 2022 07:34:44 GMT | Total Writes: 70225
Thu, 20 Jan 2022 07:34:44 GMT | dump complete
Thu, 20 Jan 2022 07:34:44 GMT | got 0 objects from source file (offset: 70225)
4.4 结论
读入速度比较慢 7w条数据,执行11分钟
5 注意事项
如果导入导出数据时,es是需要密码认证的,则input和output应该这么写
--input=http://name:pwd@production.es.com:9200/my_index
如果密码包含@等特殊字符
--output=http://name:'pwd'@localhost:9200/localdeployment-server-doc
更多推荐
已为社区贡献21条内容
所有评论(0)