大数据最新ElasticSearch 数据迁移工具elasticdump,网易严选大数据开发开发三面面经

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

source ~/.bashrc


#### 四、使用elasticdump


这里的使用主要分为两种,一种是数据备份,一种是数据迁移


1. 备份主要指的是生成备份的数据文件,在需要的时候进行还原
2. 数据迁移是指将原来索引里的数据迁移到新的索引



> 
> 其实数据备份也能达到数据迁移的目的,但是在两个环境的网络不通的时候我们只能使用数据备份
> 
> 
> 


我们安装成功后,在elasticdump的bin目录下其实有两个工具,一个是`elasticdump` 另外一个是`multielasticdump`


![image-20230714090711434](https://img-blog.csdnimg.cn/img_convert/d897fa016a4f363b08672818c6f83719.png)


##### 数据迁移


迁移索引



elasticdump
–input=http://192.168.1.140:9200/source_index
–output=http://192.168.1.141:9200/target_index
–type=mapping


迁移数据



elasticdump
–input=http://192.168.1.140:9200/source_index
–output=http://192.168.1.141:9200/target_index
–type=data
–limit=2000 # 每次操作的objects数量,默认100,数据量大的话,可以调大加快迁移速度


这个命令会将源 Elasticsearch 实例中的 “my\_index” 索引的所有数据导出,并保存到 “/path/to/output.json” 的 JSON 文件中。


* `--input`:指定输入的 Elasticsearch 实例和索引。可以是一个 URL,也可以是本地 Elasticsearch 实例的路径。
* `--output`:指定输出的文件路径,数据将保存为一个 JSON 文件。
* `--type`:指定要导出的数据类型,通常为 “data” 表示文档数据。


你还可以使用其他选项来进一步控制导出过程,如 `--query`, `--size`, `--limit`, `--filter` 等,具体取决于你的需求。可以通过运行 `elasticdump --help` 命令来


##### 数据备份


导出索引和数据



elasticdump
–input=http://192.168.1.140:9200/source_index
–output=/data/source_index_mapping.json
–type=mapping
elasticdump
–input=http://192.168.1.140:9200/source_index
–output=/data/source_index.json
–type=data
–limit=2000


导入索引和数据



elasticdump
–input=/data/source_index_mapping.json
–output=http://192.168.1.141:9200/source_index
–type=mapping
elasticdump
–input=/data/source_index.json
–output=http://192.168.1.141:9200/source_index
–type=data
–limit=2000


##### 其他用法


还有其他使用的细节,例如压缩,指定query 什么的,我们可以参考下面的例子



Copy an index from production to staging with analyzer and mapping:

elasticdump
–input=http://production.es.com:9200/my_index
–output=http://staging.es.com:9200/my_index
–type=analyzer
elasticdump
–input=http://production.es.com:9200/my_index
–output=http://staging.es.com:9200/my_index
–type=mapping
elasticdump
–input=http://production.es.com:9200/my_index
–output=http://staging.es.com:9200/my_index
–type=data

Backup index data to a file:

elasticdump
–input=http://production.es.com:9200/my_index
–output=/data/my_index_mapping.json
–type=mapping
elasticdump
–input=http://production.es.com:9200/my_index
–output=/data/my_index.json
–type=data

Backup and index to a gzip using stdout:

elasticdump
–input=http://production.es.com:9200/my_index
–output=$
| gzip > /data/my_index.json.gz

Backup the results of a query to a file

elasticdump
–input=http://production.es.com:9200/my_index
–output=query.json
–searchBody=“{“query”:{“term”:{“username”: “admin”}}}”

Specify searchBody from a file

elasticdump
–input=http://production.es.com:9200/my_index
–output=query.json
–searchBody=@/data/searchbody.json

Copy a single shard data:

elasticdump
–input=http://es.com:9200/api
–output=http://es.com:9200/api2
–input-params=“{“preference”:”_shards:0"}"

Backup aliases to a file

elasticdump
–input=http://es.com:9200/index-name/alias-filter
–output=alias.json
–type=alias

Import aliases into ES

elasticdump
–input=./alias.json
–output=http://es.com:9200
–type=alias

Backup templates to a file

elasticdump
–input=http://es.com:9200/template-filter
–output=templates.json
–type=template

Import templates into ES

elasticdump
–input=./templates.json
–output=http://es.com:9200
–type=template

Split files into multiple parts

elasticdump
–input=http://production.es.com:9200/my_index
–output=/data/my_index.json
–fileSize=10mb

Import data from S3 into ES (using s3urls)

elasticdump
–s3AccessKeyId “ a c c e s s _ k e y _ i d "   − − s 3 S e c r e t A c c e s s K e y " {access\_key\_id}" \ --s3SecretAccessKey " access_key_id" s3SecretAccessKey"{access_key_secret}”
–input “s3:// b u c k e t _ n a m e / {bucket\_name}/ bucket_name/{file_name}.json”
–output=http://production.es.com:9200/my_index

Export ES data to S3 (using s3urls)

elasticdump
–s3AccessKeyId “ a c c e s s _ k e y _ i d "   − − s 3 S e c r e t A c c e s s K e y " {access\_key\_id}" \ --s3SecretAccessKey " access_key_id" s3SecretAccessKey"{access_key_secret}”
–input=http://production.es.com:9200/my_index
–output “s3:// b u c k e t _ n a m e / {bucket\_name}/ bucket_name/{file_name}.json”

Import data from MINIO (s3 compatible) into ES (using s3urls)

elasticdump
–s3AccessKeyId “ a c c e s s _ k e y _ i d "   − − s 3 S e c r e t A c c e s s K e y " {access\_key\_id}" \ --s3SecretAccessKey " access_key_id" s3SecretAccessKey"{access_key_secret}”
–input “s3:// b u c k e t _ n a m e / {bucket\_name}/ bucket_name/{file_name}.json”
–output=http://production.es.com:9200/my_index
–s3ForcePathStyle true
–s3Endpoint https://production.minio.co

Export ES data to MINIO (s3 compatible) (using s3urls)

elasticdump
–s3AccessKeyId “ a c c e s s _ k e y _ i d "   − − s 3 S e c r e t A c c e s s K e y " {access\_key\_id}" \ --s3SecretAccessKey " access_key_id" s3SecretAccessKey"{access_key_secret}”
–input=http://production.es.com:9200/my_index
–output “s3:// b u c k e t _ n a m e / {bucket\_name}/ bucket_name/{file_name}.json”
–s3ForcePathStyle true
–s3Endpoint https://production.minio.co

Import data from CSV file into ES (using csvurls)

elasticdump \

csv:// prefix must be included to allow parsing of csv files

–input “csv://${file_path}.csv” \

–input “csv:///data/cars.csv”
–output=http://production.es.com:9200/my_index
–csvSkipRows 1 # used to skip parsed rows (this does not include the headers row)
–csvDelimiter “;” # default csvDelimiter is ‘,’


常用参数



–direction dump/load 导出/导入
–ignoreType 被忽略的类型,data,mapping,analyzer,alias,settings,template
–includeType 包含的类型,data,mapping,analyzer,alias,settings,template
–suffix 加前缀,es6- i n d e x − − p r e f i x 加后缀, {index} --prefix 加后缀, indexprefix加后缀,{index}-backup-2018-03-13


### 总结



![img](https://img-blog.csdnimg.cn/img_convert/e7b48564576ecfb136bfb3a58ccba898.png)
![img](https://img-blog.csdnimg.cn/img_convert/fdba68857cf2b49aced80d9bf1aa3d41.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

543427)]

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 23
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值