es数据迁移

logstash

迁移方式

$vim es.conf
input {
    elasticsearch {
        hosts => ["数据源ip:9200"]
        user => "elastic" //没有可以为空
        password => "123456"
        index => "index"
        size => 10000
        scroll => "1m"
    }
}
output {
    elasticsearch {
        hosts => ["目标es ip:9200"]
        document_id => "%{主键id或原字段}"
        user => ""
        password => ""
        index => "vasbeat-2019.04"
    }
}
$./bin/logstash -f config/es.conf  --path.data=/data/es

优点

迁移速度快

缺点

  1. 部分index会有数据遗漏,原因未知
  2. 占用内存资源较多

es-dump

迁移方式

es-dump 安装方式参考http://mknight.cn/elasticsearch-dump%20%E8%BF%81%E7%A7%BBes%E6%95%B0%E6%8D%AE%20%EF%BC%88elasticdump%EF%BC%89.html

需要注意的是,运行时不能以root用户身份,软链接是/usr/local/bin

'#拷贝analyzer分词
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
  --limit=10000


# 注意 elasticdump 提供给了--httpAuthFile 参数来做认证
--httpAuthFile      When using http auth provide credentials in ini file in form
                    `user=<username>
                    password=<password>`

# 只需要写一个ini文件 ,文件中写入用户名和密码就可以了
# 这里其实还有另外一个好的方法
# 在--input参数和--output参数的的url中添加账号密码
# 例如

elasticdump \
  --input=http://prod-username:prod-passowrd@production.es.com:9200/my_index \
  --output=http://stage-username:stage-password@staging.es.com:9200/my_index \
  --type=data
  --limit=10000

优点

没有数据遗漏,启动快,占用资源较少

缺点

暂未发现

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容