Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

algorithm006-class02/DataMigrate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

2 Commits

Repository files navigation

项目介绍

  • 背景:本项目是从真实实践过的业务项目中拆分出来的,代码全部由本人独自开发
  • 实践:进行过线上两次数据迁移和多次数据清理工作,数据量级(亿级别,理论无上限)
  • 适用场景:【线上不停机】项目重构时的数据迁移,脏数据清理,更换数据库(eg,Qracle >> MySQL),数据修复等操作,且支持跨实例操作
  • 性能:视具体数据库性能而定(只要数据库性能足够好,此项目的处理性能就足够高)

使用介绍

日志排查 Log:处理的ID范围

  • 数据迁移表示例
数据迁移顺序 data:migrate:task data:migrate:offset .threadNum (默认) .qps (默认) .everyCommitCount (默认)
1 message.migrate source.message#id in [15550, 17037] 4 900 1500
... ... ... ... ... ...
  • 数据清理表示例
数据清理顺序 data:migrate:task data:migrate:offset .threadNum (默认) .qps (默认) .everyCommitCount (默认)
target.message【截止5月2日10点,2310087836条数据】 message.clean target.message#message_id in [16187, 17037] 4 900 1500
... ... ... ... ... ...

操作步骤:

  • 调用updateValueByKey接口更新data:migrate:offset的值(迁移或清理数据时的段起始值,具体含义可以去看代码)
  • 调用updateValueByKey接口更新data:migrate:task为具体的 task,开始进行数据迁移 or 数据清理任务
  • 观察日志,如果发现处理的数据已经超过了想要处理的阈值,调用updateValueByKey接口更新value为空字符串,来停止 task

About

数据迁移项目

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 90.1%
  • TSQL 9.9%

AltStyle によって変換されたページ (->オリジナル) /