ES迁移到TiDB总结

        ES迁移到同构库可以直接用ES的集群迁移工具,但是异构库就不能直接用现有的工具了;
参考ES reindex工具的底层实现api,我们选择用ScroolApi来通过程序迁移;

迁移之前需要准备

  1. es表所有字段的长度的最大值,因为历史数据跨度5年,且是非结果化数据,所有长度没有固定长度,tidb的所有字段需要设置成最大值,或者按照业务允许的原则截取存储
  2. es因为是非结构化数据,历史数据可能的字段个数和名字都有不一样的,这种需要提前统计分析出来
  3. 评估迁移数量数量,以此评估目标数据库需要准备的磁盘空间大小及目标库的存储方案
  4. 评估迁移周期
  5. 评估迁移数据任务是否影响目标库的生产业务开展

迁移程序设计

  1. 数据准确性:迁移的数据字段数量,内容要保证准确性
    1. 有核对准确性的方案
  2. 数据的总量正确:迁移总的数据量要能核对上
    1. 需要考虑迁移过程中增量数据怎么办?
    2. 迁移过程中如果失败了是不是可以断点续传接着失败前的任务继续
      1. 程序可以自己恢复的重试
      2. 需要修复程序再重试
    3. 数据唯一性保证,不能有重复数据,因此需要唯一键保证
  3. 迁移的过程中任务的管控
    1. 启动新任务
    2. 暂停任务
    3. 恢复暂停的任务
    4. 一键暂停所有任务
    5. 任务终结后资源可以自动释放回收
  4. 可靠性及安全保障
    1. 指定时间段,可以配置指定速率,保证业务不受影

你可能感兴趣的:(系统设计,系统架构)