kudu导出为mysql格式_一种基于字节流格式的kudu数据导入系统及方法与流程

84eb492d7fd264e69deb96f794777622.gif

本发明涉及软件服务数据同步技术领域,具体提供一种基于字节流格式的kudu数据导入系统及方法。

背景技术:

Apache Kudu是由Cloudera开源的存储引擎,可以同时提供低延迟的随机读写和高效的数据分析能力,是兼具HBase和HDFS的优点。Kudu数据库有着良好的应用前景,当前数据源大都存储在oracle、SqlServer、MySQL中,Kudu数据库虽然提供了高效的入库、批量扫描性能和强大的数据分析能力,但是如果没有数据导入方法将数据导入到Kudu数据库,它也是没法发挥其作用的,现在急需一款高效稳定的方法将数据导入到Kudu数据库中。

现有官方给出的入库Kudu数据库方法只支持通过impala入库kudu数据库,但是,这种方法不能支持常用的OLTP(如oracle、SqlServer、MySQL)业务数据的导入,有很大局限性。

技术实现要素:

本发明的技术任务是针对上述存在的问题,提供一种支持分布式部署,能充分利用机器性能,有效提高数据入库速度的基于字节流格式的kudu数据导入系统。

本发明进一步的技术任务是提供一种基于字节流格式的kudu数据导入方法。

为实现上述目的,本发明提供了如下技术方案:

一种基于字节流格式的kudu数据导入系统,该系统包括源数据库、源数据库抽取服务模块、消息中间件集群模块、kudu入库服务模块和kudu数据库,源数据库抽取服务模块获取源数据库的数据流,消息中间件集群模块转发源数据库的数据流,kudu入库服务模块解析出源数据库的表结构数据、源数据库的全量数据、源数据库的增量数据,并保存到kudu数据库。

只要是字节流格式是基于标准字节流的,都能够快速准确的导入到kudu数据库中,已经支持oracle、SqlServer、MySQL、DB2数据库,还可以很方便的进行扩展支持其它数据库数据的导入。

作为优选,所述消息中间件集群模块为CMSP(Cloud Message Service Platform即云消息服务平台)消息中间件。

作为优选,通过配置源数据类型和kudu数据类型的映射关系,将源数据库的表结构与kudu数据库进行转换。

所述映射关系为根据已知的源数据库数据类型,选择合适的表字段映射关系,从而保证源数据库数据能够完成保存到kudu数据库中。

该系统只需要通过修改配置文件,便可以扩展可支持的kudu数据库类型。

作为优选,通过接收含有源数据库的表结构数据内容的字节流,解析出源数据库的表结构的字段内容,获取kudu数据库的表结构对应的字段格式,将源数据库的表结构的字段内容转换成kudu数据库的表结构对应的字段格式,完成表结构数据的同步,然后将源数据库现有数据批量导入到kudu数据库中,完成全量数据的导入。

源数据库的全量数据指现有数据全部按照新增的操作插入到kudu数据库中。解析出源数据库的表结构的字段内容后,通过合适的转换,转换成kudu数据库的表结构的格式,调用kudu数据库入库API进行入库操作。此过程可以实现多个源数据库的表的并行同步。

作为优选,源数据库的全量数据导入至kudu数据库的过程支持多线程操作,同时该过程还增加了容错处理,保证程序的鲁棒性。

作为优选,源数据库的全量数据导入至kudu数据库中后,将源数据库的增删改操作,同步到kudu数据库中,完成源数据库的增量数据同步导入至kudu数据库。

作为优选,源数据库的增量数据同步导入至kudu数据库的过程采用单线程操作,同时该过程对顺序有着严格的要求。

一种基于字节流格式的kudu数据导入方法,该方法包括以下步骤:

S1:读取配置文件启动线程操作需要同步的源数据库的表;

S2:判断源数据库的表是否存在,若存在执行步骤S4,否则执行步骤S3;

S3:接收创建源数据库的表的语句创建源数据库的表,创建成功执行步骤S4,否则按错误处理,继续重复执行本步骤;

S4:接收源数据库的全量数据存入kudu数据库,判断源数据库的全量数据是否入库成功,若入库成功则执行步骤S5,否则按错误处理;

S5:判断源数据库的全量数据是否同步结束,若结束执行步骤S6,否则返回步骤S4;

S6:判断是否需要处理源数据库的增量数据,若是则执行步骤S7,否则结束;

S7:处理源数据库的增量数据,并判断源数据库的增量数据是否处理成功,若成功继续重复执行该步骤,否则按错误处理。

作为优选,通过接收含有源数据库的表结构数据内容的字节流,解析出源数据库的表结构的字段内容,获取kudu数据库的表结构对应的字段格式,将源数据库的表结构的字段内容转换成kudu数据库的表结构对应的字段格式,完成表结构数据的同步,然后将源数据库现有数据批量导入到kudu数据库中,完成全量数据的导入。

作为优选,源数据库的全量数据导入至kudu数据库中后,将源数据库的增删改操作,同步到kudu数据库中,完成源数据库的增量数据同步导入至kudu数据库。

与现有技术相比,本发明的基于字节流格式的kudu数据导入系统具有以下突出的有益效果:所述基于字节流格式的kudu数据导入系统支持分布式部署,能充分利用机器性能,有效提高数据导入kudu数据库的速度,实现了简单便捷的配置,并具有易扩展性,实现了常见OLTP(如oracle、SqlServer、MySQL)数据库到kudu数据库的表创建、源数据库的全量数据同步、源数据库的增量数据的同步功能,具有良好的推广应用价值。

附图说明

图1是本发明所述基于字节流格式的kudu数据导入系统的架构图;

图2是本发明所述基于字节流格式的kudu数据导入方法的流程图。

具体实施方式

下面将结合附图和实施例,对本发明的基于字节流格式的kudu数据导入系统及方法作进一步详细说明。

实施例

如图1所示,本发明的基于字节流格式的kudu数据导入系统,包括源数据库、源数据库抽取服务模块、消息中间件集群模块、kudu入库服务模块和kudu数据库,源数据库抽取服务模块获取源数据库的数据流,消息中间件集群模块转发源数据库的数据流,kudu入库服务模块解析出源数据库的表结构数据、源数据库的全量数据、源数据库的增量数据,并保存到kudu数据库。

通过配置源数据类型和kudu数据类型的映射关系,将源数据库的表结构与kudu数据库进行转换。

通过接收含有源数据库的表结构数据内容的字节流,解析出源数据库的表结构的字段内容,获取kudu数据库的表结构对应的字段格式,将源数据库的表结构的字段内容转换成kudu数据库的表结构对应的字段格式,完成表结构数据的同步,然后将源数据库现有数据批量导入到kudu数据库中,完成全量数据的导入。其中,源数据库的全量数据导入至kudu数据库的过程支持多线程操作,同时该过程还增加了容错处理,保证程序的鲁棒性。源数据库的全量数据导入至kudu数据库中后,将源数据库的增删改操作,同步到kudu数据库中,完成源数据库的增量数据同步导入至kudu数据库。源数据库的全量数据指现有数据全部按照新增的操作插入到kudu数据库中。解析出源数据库的表结构的字段内容后,通过合适的转换,转换成kudu数据库的表结构的格式,调用kudu数据库入库API进行入库操作。此过程可以实现多个源数据库的表的并行同步。

源数据库的增量数据同步导入至kudu数据库的过程采用单线程操作,该过程对顺序有着严格的要求。

如图2所示,本发明的基于字节流格式的kudu数据导入方法,包括以下步骤:

S1:读取配置文件启动线程操作需要同步的源数据库的表。

S2:判断源数据库的表是否存在,若存在执行步骤S4,否则执行步骤S3。

S3:接收创建源数据库的表的语句创建源数据库的表,创建成功执行步骤S4,否则按错误处理,继续重复执行本步骤。

S4:接收源数据库的全量数据存入kudu数据库,判断源数据库的全量数据是否入库成功,若入库成功则执行步骤S5,否则按错误处理。

该步骤中通过接收含有源数据库的表结构数据内容的字节流,解析出源数据库的表结构的字段内容,获取kudu数据库的表结构对应的字段格式,将源数据库的表结构的字段内容转换成kudu数据库的表结构对应的字段格式,完成表结构数据的同步,然后将源数据库现有数据批量导入到kudu数据库中,完成全量数据的导入。

S5:判断源数据库的全量数据是否同步结束,若结束执行步骤S6,否则返回步骤S4。

S6:判断是否需要处理源数据库的增量数据,若是则执行步骤S7,否则结束。

S7:处理源数据库的增量数据,并判断源数据库的增量数据是否处理成功,若成功继续重复执行该步骤,否则按错误处理。

该步骤中,源数据库的全量数据导入至kudu数据库中后,将源数据库的增删改操作,同步到kudu数据库中,完成源数据库的增量数据同步导入至kudu数据库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值