elasticdump迁移es数据

一、安装elasticdump

前提: 插件使用npm安装,所以先保证本地安装有node环境,且版本要大于v8,尽量高一点就行。
(1)、安装nodejs(如果已安装请忽略)
执行

yum install -y nodejs
(2)、升级nodejs
执行
npm install -g n
n latest

1. 执行

npm install 

2. 执行

npm install elasticdump –g

-g表示全局可用,直接在终端输入 elasticdump --version,出现版本信息即表示安装成功,如下

3. 执行

elasticdump --version
6.3.3 

二、elasticdump常用方法

主要参数说明:
--input: 源地址,可为ES集群URL、文件或stdin,可指定索引,格式为:{protocol}://{host}:{port}/{index}
--input-index: 源ES集群中的索引
--output: 目标地址,可为ES集群地址URL、文件或stdout,可指定索引,格式为:{protocol}://{host}:{port}/{index}
--output-index: 目标ES集群的索引
--type: 迁移类型,默认为data,表明只迁移数据,可选settings, analyzer, data, mapping, alias

1.将索引中的数据导出到指定文件
执行

elasticdump  --input=http://ip:9200/indexname --output= /ES/date/indexname.json

其中,indexname是索引。

2.将指定文件数据导入es中
执行

elasticdump  --input=/ES/date/indexname.json --output=http://ip:9200/ indexname

3.将es导入另一个es
执行

elasticdump --input=http:// fromhost:9200/indexname --output=http:// tohost:9200/indexname

4.拷贝指定索引的settings,mapping,data
执行:

elasticdump --input=http://fromhost:9200/indexname --output=http://tohost:9200/indexname --type=settings
elasticdump --input=http://fromhost:9200/indexname --output=http://tohost:9200/indexname --type=mapping
elasticdump --input=http://fromhost:9200/indexname --output=http://tohost:9200/indexname --type=data

三、elasticdump

https://github.com/taskrabbit/elasticsearch-dump
Elasticsearc使用h:
•	format: {protocol}://{host}:{port}/{index}
•	example: http://127.0.0.1:9200/my_index
File:
•	format: {FilePath}
•	example: /Users/evantahler/Desktop/dump.json
You can then do things like:
# 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"}}}'

# Copy a single shard data:
elasticdump \
  --input=http://es.com:9200/api \
  --output=http://es.com:9200/api2 \
  --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 "${access_key_id}" \
  --s3SecretAccessKey "${access_key_secret}" \
  --input "s3://${bucket_name}/${file_name}.json" \
  --output=http://production.es.com:9200/my_index

# Export ES data to S3 (using s3urls)
elasticdump \
  --s3AccessKeyId "${access_key_id}" \
  --s3SecretAccessKey "${access_key_secret}" \
  --input=http://production.es.com:9200/my_index \
  --output "s3://${bucket_name}/${file_name}.json"
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将MySQL中的数据迁移Elasticsearch,首先需要分析在Elasticsearch中需要建立的索引所包含的字段。对于存量数据的导入,可以采用停机方案,即在停止数据更新后,将存量数据插入到Elasticsearch中。然后,开启增量数据监听服务和消费服务,实现对数据的实时同步。可以使用canal adapter来实现MySQL存量数据和增量数据的导入到Elasticsearch中。在Json文档中,每个字段代表一个列,类似于MySQL中的列。通过以上步骤,可以成功将MySQL的数据迁移Elasticsearch中。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [把MySql中的数据导入elasticSearch中](https://blog.csdn.net/helpluozhao123/article/details/123984580)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [mysql数据同步到elasticsearch数据解决方案](https://blog.csdn.net/qq_17236715/article/details/128279085)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值