ES 数据迁移最佳实践
  oGEad7UlSFFQ 2023年11月13日 28 0



ES 数据迁移最佳实践与讲解

       数据迁移是 Elasticsearch 运维管理和业务需求中常见的操作之一。以下是不同数据迁移方法的最佳实践和讲解:

一、数据迁移需求梳理

ES 数据迁移最佳实践_数据

二、数据迁移方法梳理

ES 数据迁移最佳实践_数据迁移_02

三、各方案对比

方案

优点

缺点(限制)

适用场景

是否有版本要求

开发程序

灵活,方便,可以定制。例如es的搜索快照是一个付费API,可以用程序实现同样的功能,把不需要的索引关闭掉,节省资源,减缓堆压力。等需要的时候再逐个打开,取出数据。

  1. 开发成本大
  2. 最大迁移速度,为滚动查询的速度。
  3. 跨版本开发比较麻烦。
  1. 同版本,在数据迁移过程中,需要大量的额外操作
  2. 跨集群
  3. 在业务上数据导出需求,使用滚动API。方便控制

有版本要求,通常不同版本客户端可能会不一样

dump工具

  1. 使用方便,其提供了灵活的API。
  2. 无版本要求。其使用的是rest API 滚动查询。
  3. 可以加入条件过滤数据
  1. 不算太大的缺点,只是需要安装这个工具,需要node环境,需要安一些包。
  2. 最大迁移速度,为滚动查询的速度。如果对速度有极高的要求,则不适用。
  1. 跨版本(同一个工具,可以做不同版本之间的数据迁移)
  2. 不需要额外的代码去做版本兼容

无,测过从7.x把数据迁移到8.x版本集群上。

logstash工具

  1. 在一个技术体系内。
  2. 可以在过程中做一些数据处理。这里和开发程序类似。
  3. 同时又和dump工具很像,可以做跨版本迁移。

速度相对较慢

迁移全量或增量数据,且对实时性要求不高的场景

需要对迁移的数据通过 es query 进行简单的过滤的场景

需要对迁移的数据进行复杂的过滤或处理的场景

版本跨度较大的数据迁移场景


无版本要求

快照

数据迁移速度极快。取决于磁盘的IO速度,默认下可以40M/s

  1. 只能做跨集群迁移。
  2. 只能做同版本迁移。
  3. 两个不同的集群需要有相同的快照仓库。可以使共享目录,可以是文件存储系统,前提是都能访问到。
  4. 无法通过条件过滤数据

跨集群同版本快速迁移数据。数据量大的场景(GB、TB、PB 级别)

对迁移速度要求较高的场景


有严格版本要求

文件拷贝

速度极快。甚至可以比快照更快。

  1. 存在风险,官方不建议这么操作。es的文件相对脆弱。很可能存在文件损坏的问题。导致不能恢复。
  2. 操作麻烦,需要把一个节点的数据拷贝到另外一个集群的节点上。

跨集群同版本快速迁移数据。


有严格版本要求,必须是同版本。

利用节点平衡

一种新思路,适合跨集群,跨机房,跨网络迁移。

  1. 操作相对麻烦
  2. 只能做同版本
  3. 需要两个集群网络互通

例如需要将大量的数据从一个机房迁移到另外一个机房集群上。这是一个很好的思路,在网络互通下,可以把节点先组成同一个集群,然后利用节点的平衡机制,将数据排到另外一个机房。

有严格版本要求

四、总结

存在即合理,每种迁移方式都有其适用的场景。每个方式各有所长,取决于迁移需求的具体要求。如果追求速度,推荐用快照。如果要跨版本,推荐用dump工具,或者logstash。如果要跨机房,大量数据同步,利用节点平衡机制也可以,相对简单一些。请注意,数据迁移时务必考虑版本兼容性和数据完整性,以确保成功迁移和数据安全。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
oGEad7UlSFFQ