数据增量抽取转换与分发系统及方法_2

文档序号:9350073阅读:来源:国知局
直观的图形化编辑界面,用户可以使用图形化的方式设计出转换规则文件(KTR文件),并使用API的方式或者操作系统调度执行设计好的KTR文件,也可以通过集群的方式在多台机器上部署。
[0042]2.抽取转换设计器可以让用户灵活地设计转换规则。它除了支持特定转换规则的设计,还支持SQL语句、java脚本、正则表达式等自定义的转换规则。这种多样化的支持能力使设计转换过程显得更具有灵活性。同一种转换规则可以通过不同的设计方式和不同的设计流程实现。并且实现了对多种数据库的支持,可以将数据源和目标定义为所需的数据库。
[0043]3.抽取转换执行器为用户提供了大量的功能组件来支撑各种数据转换,这种强大的转换能力体现在可以对源数据中各种类型的数据进行清洗,并且可以针对关系型数据库,进行多数据库之间的表关联,同时具有自定义Java脚本、DB存储过程等功能。
[0044]4.抽取转换监控单元提供了监控日志的功能,可以对具体的转换过程进行监控,写入日志。抽取转换设计器提供了写入日志等管理组件,用户可以在转换设计过程中加入日志管理组件,以便在抽取转换执行时监测所需的信息。
【附图说明】
[0045]图1为本发明的架构图;
【具体实施方式】
[0046]下面结合附图与实施例对本发明作进一步说明。
[0047]数据增量抽取转换与分发系统,如图1所示,包括抽取转换设计器、抽取转换执行器和抽取转换监控单元三部分。
[0048]所述抽取转换设计器是基于ETL实现的,采用了 “定义数据源》设计转换规则》定义数据目标”的流程化设计模式,并且通过节点连接形成的流,将数据信息或字段从前一个模块传送到下一个模块中。在定义数据源中,定义数据源的连接信息;在转换规则设计中,使用kettle强大的转换设计功能设计多样化的转换规则;在定义数据目标中,定义数据目标的连接信息。
[0049]定义数据源模块能够编辑源数据库的连接信息,Oracle stream的配置信息,选择数据库的类型,以及数据库的连接方式(JDBC、0DBC、0C1、JNDI)。如果是文本文件,编辑文件的路径、字段和格式;如果是DB,编辑中间库的连接信息。
[0050]转换规则设计模块可以重命名字段,即源数据表中有些字段需要重新命名后映射到目标表中;筛选字段,包括选择字段和删除字段,源数据表中只需要一部分字段映射到目标表;改变数据类型;改变字段精度;拆分字段;新增字段,可以在源数据表的基础上增加新的字段;字符串替换,可以将string类型字段中的某个字符串全部替换成另一个字符串O
[0051]抽取转换执行器,利用Oracle stream技术捕获增量数据并调用Kettle API执行设计好的KTR文件来实现对源数据库增量数据的实时抽取和清洗转换,并实时地装载到目标数据库中。
[0052]抽取转换执行器能够实时捕获源数据库的增量数据,并且分析增量数据来源于哪个数据库的哪张表的哪个操作(插入、更新、删除),将增量数据交给服务器,服务器分析得到的信息并选择调用对应的KTR文件(即对应的转换规则)进行转换处理。它包括捕获增量数据模块、TCP消息发送模块、数据暂存模块和执行转换模块。
[0053]捕获增量数据模块可以实时捕获源数据库的增量数据,并且分析增量数据来源于哪个数据库的哪张表的哪个操作(插入、更新、删除)。模块中的捕获进程会挖掘对源数据库产生变化的归档日志,捕获到增量数据,并且将增量数据暂存到消息队列中。
[0054]捕获增量数据模块会给应用进程配置一个处理函数,TCP消息发送模块在处理函数中识别增量数据的操作类型(“插入”、“更新”、“删除”),根据操作类型的不同调用不同的存储过程,并且在处理函数中使用TCP协议将增量数据以字符串的形式发送给服务器。
[0055]数据暂存模块,当增量数据发送到服务器后会以二维表的结构暂时存储到TXT文件中。这样可以对增量数据进行批量处理,提高效率。对处理过的TXT文件,系统会将其删除,节约存储空间。
[0056]执行转换模块会执行设计好的转换规则,基于ETL实现的抽取转换设计器能够将设计完成的转换规则包装成一个个KTR文件(一种XML文件)。在需要执行这些转换的时候,可以通过调用对应的API来执行这些转换,并将转换后的数据装载到目标数据库中。在数据增量抽取转换与分发系统中,抽取转换设计器和抽取转换执行器都是基于ETL实现的,将这两部分功能分开的好处在于,设计器有助于开发人员基于java的脚本编写功能,灵活地自定义ETL过程,执行器能够批量的执行KTR文件,这也为本系统能够多线程地执行多个转换规则提供了技术支撑。
[0057]抽取转换监控单元,包括日志解析模块和监控信息反馈模块。它能够监测规则的运行情况和控制数据同步的开始和停止,可以监测每一条转换规则当前是否正在进行数据同步,最近一次同步的数据量等信息。同时数据监控还可以监测服务器的内存、CPU运行情况,根据这些信息来判断服务器所受压力是否能够支撑大数据的同步。另外,数据监控能够控制服务器的运行和停止,从而达到控制数据同步的运行和停止的效果。
[0058]日志解析模块中的监控日志用XML语言规范地记录了抽取转换设计器设计转换规则的过程和抽取转换执行器的执行状态。并且用XML解析器解析监控日志,将具体的信息反馈给用户。
[0059]监控信息反馈模块能够将监控日志中的信息以Web的形式展现给用户。让用户可以直观地了解数据抽取转换的状态和服务器的负载。具体监控信息有监测数据源和目标库的连接信息包括监测源数据库和目标数据库的IP地址,数据库的实例名,数据库类型,连接用户和连接口令;单个转换规则的运行情况,单个转换规则是否正在运行,对于这个规则的最近一个数据同步的开始时间、结束时间和同步的数据量,以及这个转换规则的详细内容;目标数据库的同步情况,目标数据库有哪些规则开启了同步,最近一次同步的开始时间、结束时间、同步数据量和历史最大同步数据量;服务器的负载情况;服务器的内存、CPU运行情况,根据这些信息来判断服务器所受的压力是否能够支撑大数据的同步。
[0060]一种数据增量抽取转换与分发系统的方法,包括:
[0061]步骤一,首先对源数据库的数据源进行定义,设计转换规则然后定义数据目标,将设计完成的转换规则包装成KTR文件,通过节点连接形成的流,将数据信息或字段在模块之间进行传送;
[0062]步骤二,实时捕获源数据库的增量数据,并且分析增量数据的来源,将增量数据交给服务器,服务器分析得到的信息并选择调用对应的转换规则进行转换处理;批量的执行KTR文件;
[0063]步骤三,能够监测规则的运行情况和控制数据同步的开始和停止,监测每一条转换规则当前是否正在进行数据同步,最近一次同步的数据量;另外,能够控制服务器的运行或停止,从而达到控制数据同步的运行或停止的效果;监控日志记录了所述步骤一设计转换规则的过程和步骤二的执行状态,解析监控日志,将具体的信息反馈给用户;监测规则的运行情况和控制数据同步的开始和停止,将监控日志中的监控信息展现给用户。
[0064]所述步骤二包括:
[0065]实时捕获源数据库的增量数据,并且分析增量数据的来源;给应用进程配置一个处理函数;捕获进程会挖掘对源数据库产生变化的归档日志,捕获到增量数据,并且将增量数据暂存到消息队列中;
[0066]在捕获增量数据模块给应用进程配置的处理函数中识别增量数据的操作类型,所述操作类型包括插入、更新或删除,根据操作类型的不同调用不同的存储过程,并且在处理函数中使用TCP协议将增量数据以字符串的形式发送给服务器;
[0067]利用一个能释放的TXT文件作为临时存储空间,存储发送过来的TCP消息,并作为KTR的表输入段在抽取转换执行器中执行;当增量数据发送到服务器后会以二维表的结构暂时存储到
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1