商城网站互动性,网站建设面包屑导航条,如何免费制作一个网站,广东省工程招投标信息网文/朱季谦
目录一、Elasticdump工具介绍二、Elasticdump工具安装三、Elasticdump工具使用 最近在开发当中做了一些涉及到Elasticsearch映射结构及数据导出导入的工作#xff0c;怕以后会把这过程忘记#xff0c;可谓好记性不如烂笔头#xff0c;故而记录成一篇博文。
玩El…文/朱季谦
目录一、Elasticdump工具介绍二、Elasticdump工具安装三、Elasticdump工具使用 最近在开发当中做了一些涉及到Elasticsearch映射结构及数据导出导入的工作怕以后会把这过程忘记可谓好记性不如烂笔头故而记录成一篇博文。
玩Elasticsearch的童鞋大概都会遇到这样一个问题如何快速地将Elasticsearch里的索引结构映射和对应数据快速地进行备份和数据还原。
这时就可以通过Elasticsearch的导入导出工具Elasticdump来实现可以将Elasticsearch不同集群的数据进行索引备份和还原。 一、Elasticdump工具介绍
在npm关于Elasticdump的英文官网里可以看到一篇关于Elasticdump的英文介绍这个工具的logo很有意思是一台可以搬运迁移东西数据的工具车这个logo就表明该Elasticdump工具可用来迁移备份和恢复数据。 使用Elasticdump时特别需要是若直接用npm install elasticdump -g来按照node版本需要在v10.0.0以上才能支持否则执行该指令会出错。
Elasticdump通过向发送一个input来工作output其标准指令是
elasticdump --input SOURCE --output DESTINATION [OPTIONS]input SOURCE表示读取数据源SOURCEoutput DESTINATION表示将数据源传输到目的地DESTINATION。SOURCE/DESTINATION两者都可以是Elasticsearch URL或文件如果是Elasticsearch URL例如http://127.0.0.1/index就意味着是直接往地址为http://127.0.0.1ES库里导入或者从其导出索引相关数据。[OPTIONS]是操作选项比较常用有type和limit其他操作这里就不展开介绍。
type是ES数据导出导入类型Elasticdum工具支持以下数据类型的导入导出——
type类型说明mappingES的索引映射结构数据dataES的数据settingsES的索引库默认配置analyzerES的分词器templateES的模板结构数据aliasES的索引别名
limit从SOURCE备份到DESTINATION的对象数量默认是100可自定义设置。 二、Elasticdump工具安装
1. 在线安装Elasticdum工具需要依赖node故而先安装v10.0.0以上的node。
[rootzhu opt]# wget https://nodejs.org/dist/v12.18.3/node-v12.18.3-linux-x64.tar.xz
[rootzhu opt]# tar xvf node-v12.18.3-linux-x64.tar.xz -C /usr/local/
[rootzhu opt]# mv /usr/local/node-v12.18.3-linux-x64 /usr/local/nodejs
[rootzhu opt]# echo export NODEJS_HOME/usr/local/nodejs /etc/profile
[rootzhu opt]# echo export PATH$PATH:$NODEJS_HOME/bin /etc/profile
[rootzhu opt]# echo export NODEJS_PATH$NODEJS_HOME/lib/node_modules /etc/profile
[rootzhu opt]# source /etc/profile
[rootzhu opt]# ln -s /usr/local/nodejs/bin/node /usr/local/bin/node
[rootzhu opt]# ln -s /usr/local/nodejs/bin/npm /usr/local/bin/npm
[rootzhu opt]# npm -v
6.14.6
[rootzhu opt]# node -v
v12.18.32. 通过npm安装elasticdump
[rootzhu opt]# npm install elasticdump -g安装成功后进入到
[rootzhu opt]#cd /usr/local/nodejs/lib/node_modules/elasticdump/bin可以看到有两个命令elasticdump用来备份单个索引multielasticdump可以用来并行备份多个索引
rootzhu bin]# ll
总用量 20
-rwxr-xr-x. 1 1001 1001 4026 4月 9 14:38 elasticdump
-rwxr-xr-x. 1 1001 1001 14598 10月 26 1985 multielasticdump三、Elasticdump工具使用
使用elasticdump进行单个索引备份还原操作——- 导出索引test_event的mapping映射结构
[rootzhu opt]# elasticdump --inputhttp://127.0.0.1:9200/test_event --output/opt/test_event_mapping.json --typemapping 检查当前发现已经备份成json文件
[rootzhu opt]# ll
总用量 14368
-rw-r--r--. 1 root root 6200 4月 9 11:30 ucas_hisevenr_mapping.json还可以直接导入到另一个es集群当中
[rootzhu opt]# elasticdump --inputhttp://127.0.0.1:9200/test_event --outputhttp://127.0.0.2:9200/test_event --typemapping- 导出索引test_event的数据
[rootzhu opt]# elasticdump --inputhttp://127.0.0.1:9200/test_event --output/opt/data.json --typedata同理可直接将备份数据导入另一个es集群
[rootzhu opt]# elasticdump --inputhttp://127.0.0.1:9200/test_event --outputhttp://127.0.0.2:9200/test_event --typedataelasticdump进行数据还原操作
- mapping映射结构还原
[rootzhu opt]# elasticdump --input/opt/test_event_mapping.json --output http://127.0.0.1:9200/ --typemapping- data数据还原
[rootzhu opt]# elasticdump --input/opt/data.json --outputhttp://127.0.0.1:9200/test_event --typedata使用elasticdump进行多个索引备份操作
将ES索引及其所有类型备份到es_backup文件夹中
multielasticdump direction dump match ^.*$ input http://127.0.0.1:9200 output /tmp/es_backup仅备份ES索引以“ -index”匹配正则表达式为前缀的结尾。仅备份索引数据。所有其他类型都将被忽略。注意默认情况下会忽略分析器和别名类型
multielasticdump --directiondump --match^.*-index$ --inputhttp://127.0.0.1:9200 --ignoreTypemapping,settings,template --output/tmp/es_backup使用elasticdump进行多个索引还原操作
multielasticdump --directionload --input/tmp/es_backup --outputhttp://127.0.0.1:9200根据npm的elasticdump英文官网介绍可知这里需要注意一点是即使用multielasticdump有一个区别的地方是--direction的参数设置和--ignoreType参数设置。 备份时--directiondump是默认值则--input必须是ElasticSearch服务器基本位置的URL即http://localhost:9200并且--output必须是目录。每个匹配的索引都会创建一个数据映射和分析器文件。 还原时要加载从multi- elasticsearch转储的文件--direction应将其设置为load--input必须是multielasticsearch转储的目录并且--output必须是Elasticsearch服务器URL。 --match用于过滤应转储/加载的索引正则表达式。 --ignoreType允许从转储/加载中忽略类型。支持六个选项。data,mapping,analyzer,alias,settings,template。提供了多类型支持使用时每种类型必须用逗号分隔并interval允许控制生成新索引的转储/装入的时间间隔。 --includeType允许将类型包含在转储/装载中。支持六个选项- data,mapping,analyzer,alias,settings,template。