分布式大数据迁移工具 (一)

一 、 背景介绍 :

P2P公司不断的发展,系统不断的迭代,业务越来越多,系统也越来越多,最终整个公司技术部分根据业务划分成:借款端、理财端、和移动端 ,目前公司的数据库也拆成了三大块,基于诸多历史原因,表结构不明确、各个端表设计冗余、数据冗余,为业务部门梳理公司业务和制作有效报表带来了极大的困难。

二 、 需求与设计:

基于之上的历史原因,公司要求创建一个数仓,专门用来进行数据分析和智能报表研发。为此需要作出一款工具,将线上数据根据一定的规则,分发到对应的数据库所对应的表中, 并能进行数据更新同步。

需求用例:

id 主键 u_id 用户id u_name 姓名 u_sex 性别 u_age 年龄 u_id_card 身份证
user.user_info
id 主键 u_id 用户id u_role 自然人 或 企业 u_type 借款方 或 投资方 register_time 创建时间 status 状态
uinfo.user_detail

user_info 和 user_detail 一对多的关系,同一个用户可以同时是 借款方 和 投资方,角色可以是自然人或 企业 。

此时需要将用户只具备一个类型 (只能是借款人 或者 投资人 )的数据集合到数据库 report下的user_manager表中,并去掉u_id

id 主键 u_name 姓名 sex 性别 age 年龄 id_card 身份证 role 角色 type 类型 register_time 注册时间 status 状态
report.user_manager

结合上图能看到几个需求点

源来自不同的库 ( user 、 uinfo ),不同的表(user_info、user_detail)

目标于不同的库 、 不同的表 、 不同的字段

字段名称可以不一致

字段可丢失 (u_id)

对应一对一的数据,才能迁移,否则不参与同步

另外:还要能做到不定时地将源表中产生了更新的数据,同步更新到对应的目标表中

三、设计预期

能满足 对数据迁移自定义规则、 能处理大量数据 、 能高效处理

欢迎互粉交流 春叁十娘

经验分享 程序员 微信小程序 职场和发展