elasticsearch导入导出工具elasticdump安装和使用小记
首选需要安装npm工具,具体可参考:
https://www.runoob.com/nodejs/nodejs-npm.html
开始安装elasticdump:
# npm install elasticdump -g
/usr/bin/elasticdump -> /usr/lib/node_modules/elasticdump/bin/elasticdump
/usr/bin/multielasticdump -> /usr/lib/node_modules/elasticdump/bin/multielasticdump
/usr/lib
└─┬ elasticdump@3.3.19
├── async@2.6.1
├─┬ aws-sdk@2.303.0
│ ├─┬ buffer@4.9.1
│ │ ├── base64-js@1.3.0
│ │ └── isarray@1.0.0
│ ├── events@1.1.1
│ ├── ieee754@1.1.8
│ ├── jmespath@0.15.0
│ ├── querystring@0.2.0
│ ├── sax@1.2.1
│ ├─┬ url@0.10.3
│ │ └── punycode@1.3.2
│ ├── uuid@3.1.0
│ └─┬ xml2js@0.4.19
│ └── xmlbuilder@9.0.7
├── aws4@1.8.0
├── decimal.js@10.0.1
├── ini@1.3.5
├─┬ JSONStream@1.3.4
│ ├── jsonparse@1.3.1
│ └── through@2.3.8
├── lodash@4.17.10
├── lossless-json@1.0.3
├─┬ optimist@0.6.1
│ ├── minimist@0.0.10
│ └── wordwrap@0.0.3
└─┬ request@2.88.0
├── aws-sign2@0.7.0
├── caseless@0.12.0
├─┬ combined-stream@1.0.6
│ └── delayed-stream@1.0.0
├── extend@3.0.2
├── forever-agent@0.6.1
├─┬ form-data@2.3.2
│ └── asynckit@0.4.0
├─┬ har-validator@5.1.0
│ ├─┬ ajv@5.5.2
│ │ ├── co@4.6.0
│ │ ├── fast-deep-equal@1.1.0
│ │ ├── fast-json-stable-stringify@2.0.0
│ │ └── json-schema-traverse@0.3.1
│ └── har-schema@2.0.0
├─┬ http-signature@1.2.0
│ ├── assert-plus@1.0.0
│ ├─┬ jsprim@1.4.1
│ │ ├── extsprintf@1.3.0
│ │ ├── json-schema@0.2.3
│ │ └─┬ verror@1.10.0
│ │ └── core-util-is@1.0.2
│ └─┬ sshpk@1.14.2
│ ├── asn1@0.2.4
│ ├── bcrypt-pbkdf@1.0.2
│ ├── dashdash@1.14.1
│ ├── ecc-jsbn@0.1.2
│ ├── getpass@0.1.7
│ ├── jsbn@0.1.1
│ ├── safer-buffer@2.1.2
│ └── tweetnacl@0.14.5
├── is-typedarray@1.0.0
├── isstream@0.1.2
├── json-stringify-safe@5.0.1
├─┬ mime-types@2.1.20
│ └── mime-db@1.36.0
├── oauth-sign@0.9.0
├── performance-now@2.1.0
├── qs@6.5.2
├── safe-buffer@5.1.2
├─┬ tough-cookie@2.4.3
│ ├── psl@1.1.29
│ └── punycode@1.4.1
├── tunnel-agent@0.6.0
└── uuid@3.3.2
导出es数据方法例子:
# elasticdump --input=http://192.168.0.1:9200/test --output=/data/elas_backup/test.json --type=data
Tue, 28 Aug 2018 09:15:54 GMT | starting dump
Tue, 28 Aug 2018 09:15:55 GMT | got 100 objects from source elasticsearch (offset: 0)
Tue, 28 Aug 2018 09:15:55 GMT | sent 100 objects to destination file, wrote 100
Tue, 28 Aug 2018 09:15:55 GMT | got 100 objects from source elasticsearch (offset: 100)
Tue, 28 Aug 2018 09:15:55 GMT | sent 100 objects to destination file, wrote 100
Tue, 28 Aug 2018 09:15:55 GMT | got 100 objects from source elasticsearch (offset: 200)
Tue, 28 Aug 2018 09:15:55 GMT | sent 100 objects to destination file, wrote 100
................................................................................................................................................................................
................................................................................................................................................................................
................................................................................................................................................................................
................................................................................................................................................................................
................................................................................................................................................................................
................................................................................................................................................................................
................................................................................................................................................................................
导入es数据方法例子:
# elasticdump --input=/data/elas_backup/test.json --output=http://192.168.0.1:9200 --type=data
Tue, 28 Aug 2018 09:15:54 GMT | starting dump
Tue, 28 Aug 2018 09:15:55 GMT | got 100 objects from source elasticsearch (offset: 0)
Tue, 28 Aug 2018 09:15:55 GMT | sent 100 objects to destination file, wrote 100
................................................................................................................................................................................
................................................................................................................................................................................
................................................................................................................................................................................
................................................................................................................................................................................
................................................................................................................................................................................
................................................................................................................................................................................
从一个索引的数据迁移到另外一个索引的数据:
# elasticdump --ignore-errors=true --scrollTime=120m --bulk=true --input=http://192.168.0.1:9200/test --output=http://192.168.0.1:9200/chenfeng --type=data
备注:
--ignore-errors=true --scrollTime=120m --bulk=true 是批量导入参数
导出表结构mapping:
# elasticdump --input=http://192.168.0.1:9200/test --output=test-mapping.json --type=mapping
Wed, 29 Aug 2018 09:01:41 GMT | starting dump
Wed, 29 Aug 2018 09:01:42 GMT | got 1 objects from source elasticsearch (offset: 0)
Wed, 29 Aug 2018 09:01:42 GMT | sent 1 objects to destination file, wrote 1
Wed, 29 Aug 2018 09:01:42 GMT | got 0 objects from source elasticsearch (offset: 1)
Wed, 29 Aug 2018 09:01:42 GMT | Total Writes: 1
Wed, 29 Aug 2018 09:01:42 GMT | dump complete