16.ES数据迁移


不同方法的迁移步骤:

  • elasticsearch-dump:适合数据量不大,迁移索引个数不多的场景
  • snapshot:适用数据量大的场景,原理就是从源ES集群创建数据快照,然后在目标ES集群中进行恢复
    • 创建快照前必须先创建repository仓库,一个repository仓库可以包含多份快照文件
    • 源ES集群中创建snapshot
    • 目标ES集群中创建repository
    • 移动源ES集群snapshot至目标ES集群的仓库
    • 从快照恢复
  • reindex:跨索引、跨集群的数据迁移,应用于大量集群数据的迁移
    • 配置reindex.remote.whitelist参数,指明能够reindex的远程集群的白名单
    • 调用reindex api
  • logstash

特点:

  1. elasticsearch-dump和logstash做跨集群数据迁移时,都要求用于执行迁移任务的机器可以同时访问到两个集群,不然网络无法连通的情况下就无法实现迁移。而使用snapshot的方式没有这个限制,因为snapshot方式是完全离线的。因此elasticsearch-dump和logstash迁移方式更适合于源ES集群和目标ES集群处于同一网络的情况下进行迁移,而需要跨云厂商的迁移,比如从阿里云ES集群迁移至腾讯云ES集群,可以选择使用snapshot的方式进行迁移,当然也可以通过打通网络实现集群互通,但是成本较高。
  2. elasticsearchdump工具和mysql数据库用于做数据备份的工具mysqldump工具类似,都是逻辑备份,需要将数据一条一条导出后再执行导入,所以适合数据量小的场景下进行迁移;
  3. snapshot的方式适合数据量大的场景下进行迁移。

文章作者: 钱不寒
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 钱不寒 !
  目录