一种基于storm的数据ETL系统及处理方法

文档序号:9453105阅读:334来源:国知局
一种基于storm的数据ETL系统及处理方法
【技术领域】
[0001]本发明公开一种基于storm的数据ETL系统及处理方法,属于数据ETL管理技术领域。
【背景技术】
[0002]数据集成是把不同来源、格式和特点的数据在逻辑上或物理上有机地集中,从而提供全面的数据共享,是企业商务智能、数据仓库系统的重要组成部分。ETL是企业数据集成的主要解决方案。ETL中三个字母分别代表的是Extract、Transform、Load,即抽取、转换、加载。数据抽取是从数据源中抽取数据的过程。随着企业数据量的不断增加,原始关系型数据库已经无法满足用户的需求,需要往能够横向扩展的数据仓库,例如hadoop或者MPP架构的平台上进行数据迀移。从数据库中抽取数据的方式一般为直接导出备份数据和通过JDBC (Java Data Base Connectivity)等接口读数据等方式。其中通过JDBC等接口读取的方式比较灵活,但是通过JDBC等接口抽取数据的方式如果不采用多线程并行的话效率会很低,特别是大数据时代经常需要抽取上亿条数据的数据库表的情况,导致JDBC效率不高。目前从经济和效率综合考虑,主流的大数据平台利用ETL工具进行数据的迀移,但是基于流数据处理框架的ETL工具目前还没有成型的产品。本发明提供一种基于storm的数据ETL系统及处理方法,利用storm作为数据ETL的计算引擎,并且利用控制器与用户交互,用户无需编写代码,只需输入命令就可实现利用storm进行数据的ETL操作,并且自动设置storm并发起ETL任务;将所有可支持的数据源和目标数据存储的连接驱动都封装在连接器中,供控制器自动选择调用,本发明系统及处理方法应用于利用流数据框架将关系型数据库中的数据集成到数据仓库中具有很强的实用性。

【发明内容】

[0003]本发明针对基于流数据处理框架的ETL工具目前还没有成型的产品,不能很好的解决大量流数据迀移的问题,提供一种基于storm的数据ETL系统及处理方法,应用于利用流数据框架将关系型数据库中的数据集成到数据仓库中具有很强的实用性。
[0004]本发明提出的具体方案是:
一种基于storm的数据ETL系统,包括控制器模块、连接器模块和分布式计算引擎;控制器模块负责接收用户输入信息,替分布式计算引擎选择数据源和目标数据存储的连接器,设置分布式计算引擎的ETL拓扑结构,设置完成后调用分布式计算引擎发起ETL任务;
连接器模块内置关系型数据库、Hbase数据库和HDFS的连接驱动,供分布式计算引擎在连接数据源和目标数据存储时调用;
分布式计算引擎采用分布式的流数据处理框架storm进行ETL处理,由控制器模块配置并发起任务,负责数据的抽取、清洗和加载任务,将数据写入目标数据存储。
[0005]所述拓扑结构包括执行的线程数、每个线程需要抽取的数据源划分、需要清洗的数据字段等。
[0006]一种基于storm的数据ETL处理方法,利用所述一种基于storm的数据ETL系统,控制器模块解析用户输入信息,从连接器模块中选择数据源和目标存储的连接驱动,控制器模块配置分布式计算引擎的拓扑结构,分配连接驱动并启动ETL任务;分布式计算引擎从数据源抽取数据,进行数据清洗,然后将数据写入目标数据存储。
[0007]所述的用户输入信息包括sql语句、数据源表名、数据源连接字符串、目标数据存储的连接字符串、执行ETL的线程数、目标数据的字段分隔符和换行符等。
[0008]所述的控制器模块配置分布式计算引擎的拓扑结构的过程为:控制器模块查询数据源表的总条数,对sql语句进行改写,根据用户输入的线程数设置每个ETL线程的数据边界,控制器模块从关系型数据库中抽取数据的spout、负责清洗数据的bolt和往目标数据存储写数据的bolt,将连接驱动分别赋给spout和写目标数据的bolt,完成storm的spout和bolt的拓扑结构的配置。
[0009]本发明的有益之处是:
本发明提供了一种基于storm的数据ETL系统及处理方法,系统分为控制器模块、连接器模块和分布式计算引擎;控制器模块负责接收用户命令,解析命令设置并启动数据ETL任务;连接器模块内置关系型数据库、Hbase数据库和HDFS的连接驱动,供分布式计算引擎在连接数据源和目标数据存储的时候调用;采用storm作为分布式计算引擎,接收控制模块设置的参数,进行数据ETL任务。实现用户无需编写storm代码,只需输入命令,控制器模块负责解析用户命令,并且自动设置storm并发起ETL任务;将所有可支持的数据源和目标数据存储的连接驱动都封装在连接器中,供控制器自动选择调用。本系统配合处理方法应用于利用流数据框架将关系型数据库中的数据集成到数据仓库中具有很强的实用性。
【附图说明】
[0010]图1本发明系统架构示意图。
【具体实施方式】
[0011]结合附图对本发明做进一步说明。
[0012]一种基于storm的数据ETL系统,包括控制器模块、连接器模块和分布式计算引擎;
控制器模块负责接收用户输入信息,替分布式计算引擎选择数据源和目标数据存储的连接器,设置分布式计算引擎的ETL拓扑结构,设置完成后调用分布式计算引擎发起ETL任务;
拓扑结构包括执行的线程数、每个线程需要抽取的数据源划分、需要清洗的数据字段等。
[0013]连接器模块内置关系型数据库、Hbase数据库和HDFS的连接驱动,供分布式计算引擎在连接数据源和目标数据存储时调用;
分布式计算引擎采用分布式的流数据处理框架storm进行ETL处理,由控制器模块配置并发起任务,负责数据的抽取、清洗和加载任务,将数据写入目标数据存储。storm框架中,一个storm任务的拓扑结构由spout和bolt组成,spout用来接收数据流,并把数据流传送给bolt,bolt负责清洗数据,并发数据写入下一个bolt或者目标数据存储。spout和bolt可以设置多个并组成复杂的DAG图。spout和bolt组成storm任务的拓扑结构,这些可以由控制器模块根据用户的命令自动生成。
[0014]一种基于storm的数据ETL处理方法,利用上述系统,控制器模块解析用户输入信息,用户输入信息包括sql语句、数据源表名、数据源连接字符串、目标数据存储的连接字符串、执行ETL的线程数、目标数据的字段分隔符和换行符等;
控制器模块从连接器模块中选择数据源和目标存储的连接驱动;
控制器模块配置分布式计算引擎的拓扑结构,分配连接驱动并启动ETL任务;
控制器模块配置分布式计算引擎的拓扑结构的过程为:控制器模块查询数据源表的总条数,对sql语句进行改写,根据用户输入的线程数设置每个ETL线程的数据边界,控制器模块从关系型数据库中抽取数据的spout、负责清洗数据的bolt和往目标数据存储写数据的bolt,将连接驱动分别赋给spout和写目标数据的bolt,完成storm的spout和bolt的拓扑结构的配置。
[0015]控制器启动storm的任务,storm开始执行数据的ETL操作:分布式计算引擎从数据源抽取数据,进行数据清洗,然后将数据写入目标数据存储。
【主权项】
1.一种基于Storm的数据ETL系统,其特征是包括控制器模块、连接器模块和分布式计算引擎; 控制器模块负责接收用户输入信息,替分布式计算引擎选择数据源和目标数据存储的连接器,设置分布式计算引擎的ETL拓扑结构,设置完成后调用分布式计算引擎发起ETL任务; 连接器模块内置关系型数据库、Hbase数据库和HDFS的连接驱动,供分布式计算引擎在连接数据源和目标数据存储时调用; 分布式计算引擎采用分布式的流数据处理框架storm进行ETL处理,由控制器模块配置并发起任务,负责数据的抽取、清洗和加载任务,将数据写入目标数据存储。2.根据权利要求1所述的一种基于storm的数据ETL系统,其特征是所述拓扑结构包括执行的线程数、每个线程需要抽取的数据源划分、需要清洗的数据字段。3.—种基于storm的数据ETL处理方法,其特征是利用权利要求1或2所述一种基于storm的数据ETL系统,控制器模块解析用户输入信息,从连接器模块中选择数据源和目标存储的连接驱动,控制器模块配置分布式计算引擎的拓扑结构,分配连接驱动并启动ETL任务;分布式计算引擎从数据源抽取数据,进行数据清洗,然后将数据写入目标数据存储。4.据权利要求3所述的一种基于storm的数据ETL处理方法,其特征是所述的用户输入信息包括sql语句、数据源表名、数据源连接字符串、目标数据存储的连接字符串、执行ETL的线程数、目标数据的字段分隔符和换行符。5.据权利要求4所述的一种基于storm的数据ETL处理方法,其特征是所述的控制器模块配置分布式计算引擎的拓扑结构的过程为:控制器模块查询数据源表的总条数,对sql语句进行改写,根据用户输入的线程数设置每个ETL线程的数据边界,控制器模块从关系型数据库中抽取数据的spout、负责清洗数据的bolt和往目标数据存储写数据的bolt,将连接驱动分别赋给spout和写目标数据的bolt,完成storm的spout和bolt的拓扑结构的配置。
【专利摘要】本发明公开一种基于storm的数据ETL系统及处理方法,属于数据ETL管理技术领域;本发明系统分为控制器模块、连接器模块和分布式计算引擎;控制器模块负责接收用户命令,解析命令设置并启动数据ETL任务;连接器模块内置关系型数据库、Hbase数据库和HDFS的连接驱动,供分布式计算引擎在连接数据源和目标数据存储的时候调用;采用storm作为分布式计算引擎,接收控制模块设置的参数,进行数据ETL任务。实现用户无需编写storm代码,只需输入命令,控制器模块负责解析用户命令,并且自动设置storm并发起ETL任务;将所有可支持的数据源和目标数据存储的连接驱动都封装在连接器中,供控制器自动选择调用。
【IPC分类】G06F17/30
【公开号】CN105205105
【申请号】CN201510533323
【发明人】曹连超, 卢军佐, 亓开元
【申请人】浪潮集团有限公司
【公开日】2015年12月30日
【申请日】2015年8月27日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1