CN109165225A - 一种基于字节流格式的kudu数据导入系统及方法 - Google Patents
一种基于字节流格式的kudu数据导入系统及方法 Download PDFInfo
- Publication number
- CN109165225A CN109165225A CN201811031094.3A CN201811031094A CN109165225A CN 109165225 A CN109165225 A CN 109165225A CN 201811031094 A CN201811031094 A CN 201811031094A CN 109165225 A CN109165225 A CN 109165225A
- Authority
- CN
- China
- Prior art keywords
- kudu
- data
- database
- source database
- source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于字节流格式的kudu数据导入系统及方法,属于软件服务数据同步技术领域。本发明的基于字节流格式的kudu数据导入系统,包括源数据库、源数据库抽取服务模块、消息中间件集群模块、kudu入库服务模块和kudu数据库,源数据库抽取服务模块获取源数据库的数据流,消息中间件集群模块转发源数据库的数据流,kudu入库服务模块解析出源数据库的表结构数据、源数据库的全量数据、源数据库的增量数据,并保存到kudu数据库。该发明的基于字节流格式的kudu数据导入系统支持分布式部署,能充分利用机器性能,有效提高数据入库速度,具有很好的推广应用价值。
Description
技术领域
本发明涉及软件服务数据同步技术领域,具体提供一种基于字节流格式的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数据库。
Claims (10)
1.一种基于字节流格式的kudu数据导入系统,其特征在于:该系统包括源数据库、源数据库抽取服务模块、消息中间件集群模块、kudu入库服务模块和kudu数据库,源数据库抽取服务模块获取源数据库的数据流,消息中间件集群模块转发源数据库的数据流,kudu入库服务模块解析出源数据库的表结构数据、源数据库的全量数据、源数据库的增量数据,并保存到kudu数据库。
2.根据权利要求1所述的基于字节流格式的kudu数据导入系统,其特征在于:所述消息中间件集群模块为CMSP消息中间件。
3.根据权利要求1或2所述的基于字节流格式的kudu数据导入系统,其特征在于:通过配置源数据类型和kudu数据类型的映射关系,将源数据库的表结构与kudu数据库进行转换。
4.根据权利要求 3所述的基于字节流格式的kudu数据导入系统,其特征在于:通过接收含有源数据库的表结构数据内容的字节流,解析出源数据库的表结构的字段内容,获取kudu数据库的表结构对应的字段格式,将源数据库的表结构的字段内容转换成kudu数据库的表结构对应的字段格式,完成表结构数据的同步,然后将源数据库现有数据批量导入到kudu数据库中,完成全量数据的导入。
5.根据权利要求4所述的基于字节流格式的kudu数据导入系统,其特征在于:源数据库的全量数据导入至kudu数据库的过程支持多线程操作。
6.根据权利要求5所述的基于字节流格式的kudu数据导入系统,其特征在于:源数据库的全量数据导入至kudu数据库中后,将源数据库的增删改操作,同步到kudu数据库中,完成源数据库的增量数据同步导入至kudu数据库。
7.根据权利要求6所述的基于字节流格式的kudu数据导入系统,其特征在于:源数据库的增量数据同步导入至kudu数据库的过程采用单线程操作。
8.一种基于字节流格式的kudu数据导入方法,其特征在于:该方法包括以下步骤:
S1:读取配置文件启动线程操作需要同步的源数据库的表;
S2:判断源数据库的表是否存在,若存在执行步骤S4,否则执行步骤S3;
S3:接收创建源数据库的表的语句创建源数据库的表,创建成功执行步骤S4,否则按错误处理,继续重复执行本步骤;
S4:接收源数据库的全量数据存入kudu数据库,判断源数据库的全量数据是否入库成功,若入库成功则执行步骤S5,否则按错误处理;
S5:判断源数据库的全量数据是否同步结束,若结束执行步骤S6,否则返回步骤S4;
S6:判断是否需要处理源数据库的增量数据,若是则执行步骤S7,否则结束;
S7:处理源数据库的增量数据,并判断源数据库的增量数据是否处理成功,若成功继续重复执行该步骤,否则按错误处理。
9.根据权利要求8所述的基于字节流格式的kudu数据导入方法,其特征在于:通过接收含有源数据库的表结构数据内容的字节流,解析出源数据库的表结构的字段内容,获取kudu数据库的表结构对应的字段格式,将源数据库的表结构的字段内容转换成kudu数据库的表结构对应的字段格式,完成表结构数据的同步,然后将源数据库现有数据批量导入到kudu数据库中,完成全量数据的导入。
10.根据权利要求9所述的基于字节流格式的kudu数据导入方法,其特征在于:源数据库的全量数据导入至kudu数据库中后,将源数据库的增删改操作,同步到kudu数据库中,完成源数据库的增量数据同步导入至kudu数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811031094.3A CN109165225A (zh) | 2018-09-05 | 2018-09-05 | 一种基于字节流格式的kudu数据导入系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811031094.3A CN109165225A (zh) | 2018-09-05 | 2018-09-05 | 一种基于字节流格式的kudu数据导入系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109165225A true CN109165225A (zh) | 2019-01-08 |
Family
ID=64894029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811031094.3A Pending CN109165225A (zh) | 2018-09-05 | 2018-09-05 | 一种基于字节流格式的kudu数据导入系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109165225A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110401851A (zh) * | 2019-08-28 | 2019-11-01 | 浪潮软件集团有限公司 | 一种基于cmsp的视频转码方法 |
CN110493244A (zh) * | 2019-08-28 | 2019-11-22 | 浪潮软件集团有限公司 | 一种基于cmsp的视频采集方法 |
CN111221667A (zh) * | 2020-01-09 | 2020-06-02 | 浪潮软件股份有限公司 | 一种基于cmsp的数据分布式预处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752372A (zh) * | 2012-06-18 | 2012-10-24 | 天津神舟通用数据技术有限公司 | 一种基于文件的数据库同步方法 |
CN103607469A (zh) * | 2013-11-28 | 2014-02-26 | 东莞中国科学院云计算产业技术创新与育成中心 | 一种实现分布式异构数据共享的云平台及其数据共享方法 |
CN105005618A (zh) * | 2015-07-21 | 2015-10-28 | 杭州合众数据技术有限公司 | 一种异构数据库之间的数据同步方法及系统 |
CN107943979A (zh) * | 2017-11-29 | 2018-04-20 | 山东鲁能软件技术有限公司 | 一种数据库之间数据的准实时同步方法及装置 |
CN108228735A (zh) * | 2017-12-12 | 2018-06-29 | 浪潮软件股份有限公司 | 一种数据处理方法、装置及系统 |
-
2018
- 2018-09-05 CN CN201811031094.3A patent/CN109165225A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752372A (zh) * | 2012-06-18 | 2012-10-24 | 天津神舟通用数据技术有限公司 | 一种基于文件的数据库同步方法 |
CN103607469A (zh) * | 2013-11-28 | 2014-02-26 | 东莞中国科学院云计算产业技术创新与育成中心 | 一种实现分布式异构数据共享的云平台及其数据共享方法 |
CN105005618A (zh) * | 2015-07-21 | 2015-10-28 | 杭州合众数据技术有限公司 | 一种异构数据库之间的数据同步方法及系统 |
CN107943979A (zh) * | 2017-11-29 | 2018-04-20 | 山东鲁能软件技术有限公司 | 一种数据库之间数据的准实时同步方法及装置 |
CN108228735A (zh) * | 2017-12-12 | 2018-06-29 | 浪潮软件股份有限公司 | 一种数据处理方法、装置及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110401851A (zh) * | 2019-08-28 | 2019-11-01 | 浪潮软件集团有限公司 | 一种基于cmsp的视频转码方法 |
CN110493244A (zh) * | 2019-08-28 | 2019-11-22 | 浪潮软件集团有限公司 | 一种基于cmsp的视频采集方法 |
CN111221667A (zh) * | 2020-01-09 | 2020-06-02 | 浪潮软件股份有限公司 | 一种基于cmsp的数据分布式预处理方法 |
CN111221667B (zh) * | 2020-01-09 | 2024-03-22 | 浪潮软件股份有限公司 | 一种基于cmsp的数据分布式预处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106250543B (zh) | 一种自动化数据查询同步存储方法 | |
CN110489445B (zh) | 一种基于多形态复合的海量数据快速查询方法 | |
CN102346775A (zh) | 一种基于日志的异构多源数据库同步方法 | |
TWI521363B (zh) | Method, device and system for implementing incremental data extraction | |
CN104572689B (zh) | 数据同步方法、装置及系统 | |
CN105550293B (zh) | 一种基于Spark‑SQL大数据处理平台的后台刷新方法 | |
CN106897322B (zh) | 一种数据库和文件系统的访问方法和装置 | |
CN103617176B (zh) | 一种实现多源异构数据资源自动同步的方法 | |
CN109165225A (zh) | 一种基于字节流格式的kudu数据导入系统及方法 | |
CN112286941B (zh) | 一种基于Binlog+HBase+Hive的大数据同步方法和装置 | |
US20150032695A1 (en) | Client and server integration for replicating data | |
US10452655B2 (en) | In-memory cursor duration temp tables | |
CN111581214B (zh) | 适用于能源区块链的并行merkle树构建与验证方法 | |
CN103699620A (zh) | 面向对象中利用orm框架实现数据库操作的方法及系统 | |
CN105447156A (zh) | 资源描述框架分布式引擎及增量式更新方法 | |
US20220343047A1 (en) | Method and system for processing simulation data | |
CN106339498A (zh) | 数据同步方法、装置和系统 | |
CN104683472A (zh) | 一种支持大数据量的数据传输方法 | |
CN111694799B (zh) | 基于日志解析同步的并行日志解析方法和数据同步系统 | |
US8600990B2 (en) | Interacting methods of data extraction | |
CN113177090A (zh) | 数据处理方法及装置 | |
US20090248691A1 (en) | Interacting methods of data summarization | |
CN103034553B (zh) | 一种报表设计器智能验证的算法、方法及装置 | |
CN104125300A (zh) | 机卡分离型家庭网关业务配置数据的同步方法 | |
CN112559629B (zh) | 一种基于日志解析同步的大对象初始化方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190108 |
|
RJ01 | Rejection of invention patent application after publication |