一种基于etl的数据优化方法及设备的制作方法

文档序号:6374505阅读:560来源:国知局
专利名称:一种基于etl的数据优化方法及设备的制作方法
技术领域
本发明关于数据处理技术,特别是关于数据迁移转换过程中的处理技术,具体的讲是一种基于ETL的数据优化方法及设备。
背景技术
在企业信息化建设过程中,经常涉及到对大量、分散、异构的数据进行处理,数据抽取、转换、装载的过程(Extract-Transform-Load, ETL)是该过程中必不可少的一部分。现有技术中主要有如下几种方式来实现ETL过程 I、硬编码硬编码是通过高级语言(如C、C++)或脚本等编译出的一个独立运行的程序或嵌入ETL框架运行的动态链接库。这种方式的优点是灵活,只要是采用的编程语言能支持的数据类型和处理逻辑,在ETL过程中,都能得以实现。相对其“灵活”的优点来说,“硬编码”方式的缺点也十分显著由于该方式将所有ETL过程的实现逻辑,都封装到了一个硬编码程序中,ETL过程中的处理逻辑是不可见的,一旦要维护该ETL过程中的某个逻辑,则需要开发人员来进行。其可重用性、可移植性、可维护性差,难以文档化,而且工作量较大,开发周期一般较长。不适用与环境复杂多样、变化频繁的数据处理场景。2、存储过程数据库存储过程,是一组为了完成特定功能的SQL语句集,与程序中的函数类似,存储过程是在数据库中创建的。当要对数据库做一个较为复杂的操作时,可以通过存储过程将操作封装起来,并可以与事务处理等结合使用。存储过程实现ETL过程,将所有数据处理单元都存储在数据库中,随着需求的变动与添加,存储过程的数量会越来越大,导致该ETL过程的维护越来越困难。存储过程是脚本形式,不利于理解与工作交接,维护与调试难度大。同时,存储过程依赖与数据库系统,基本不具可移植性,比如=Oracle中的存储过程无法迁移到SQL Server中存储运行。3、批量序列处理根据ETL过程的需求,将数据以“数据包”的形式,按顺序在各数据处理单元之间传递,数据包内的所有数据,在一个数据处理单元内处理完成,形成新的数据包后,才传递给下一个数据单元处理。这种做法层次分明、结构简单、易理解,是ETL过程中最常用的实现方式。需要将所有数据以数据包形式,全部加载到内存,内存资源消耗情况依赖于所处理的数据包的大小,当数据包较大的时候,其处理效率呈加速下降的趋势。综上所述,上述三种处理方式主要存在如下缺陷I、无可复用性、可移植性 这些实现方式,通常是针对特定的外部数据和加载目标,有特定的数据处理逻辑,这些逻辑固化在了一个ETL程序中;所以这样的实现方式只能用于特定的ETL场景,在其他场景中,无法将之前的成果一直到新的场景、或重复利用起来,只能再针对新的特定场景完成一个新的实现;
2、维护性、易用性差有些技术方案是通过“脚本”或“代码”的方式,描述从外部数据到加载目标的ETL过程。维护这样的ETL过程,涉及到对大量的“脚本”或“代码”的管理,非常混乱,而且这对实施人员的技术水平提出了相当高的要求,否则难以实现。3、无元数据管理有些技术方案比如“硬编码”和“存储过程”,缺乏了对元数据进行存储和管理的过程,导致对ETL过程的运行、跟踪 和分析,以及后期的维护调整,都非常难以进行。4、效率低下这类技术方案通常采用分布串行处理方式,这种方式能够满足小量数据简单的ETL过程需求。随着发展,各行业系统中的数据量越来越大,ETL过程通常要面对海量数据进行处理,对实时性要求越来越高,因此对ETL过程的效率就提出了越来越高的要求,传统的处理方式已经不能满足要求。5、资源占用大这类技术方案通过将要处理的各种异构数据,抽取到内存块中;甚至在转换过程中,需要实时连接外部数据如关系数据库。这就导致了大量的内存、CPU、带宽资源被占用。

发明内容
本发明实施例提供了一种基于ETL的数据优化方法及设备,通过预先设置数据处理单元以及通信机制,实现了对数据的简化优化、分支并行优化以及记录间并行优化,提高了数据优化的处理效率,节约硬件资源。本发明的目的之一是,提供一种基于ETL的数据优化方法,所述的方法包括根据数据抽取、转换、装载的过程ETL预先设置多个数据处理单元;对所述的数据处理单元预先设置通信机制;采集用户输入的包括来源数据的指令信息;根据所述的来源数据构建与所述的指令信息对应的数据处理流程;根据所述的数据处理单元以及预设的通信机制对所述的数据处理流程进行优化。本发明的目的之一是,提供一种基于ETL的数据优化设备,所述的设备包括数据单元设置装置,用于根据数据抽取、转换、装载的过程ETL预先设置多个数据处理单元;通信机制设置装置,用于对所述的数据处理单元预先设置通信机制;指令信息采集装置,用于采集用户输入的包括来源数据的指令信息;数据流程构建装置,用于根据所述的来源数据构建与所述的指令信息对应的数据处理流程;数据优化装置,用于根据所述的数据处理单元以及预设的通信机制对所述的数据处理流程进行优化。本发明的有益效果在于,通过预先设置数据处理单元以及通信机制,实现了对数据的简化优化、分支并行优化以及记录间并行优化,提高了数据优化的处理效率,节约硬件资源、网络资源,提高了系统的稳定性,以及优化设备的易用性、可复用性和可移植性。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为本发明实施例提供的一种基于ETL的数据优化方法的流程图;图2为本发明实施例提供的一种基于ETL的数据优化方法的实施方式二的流程图;图3为本发明实施例提供的一种基于ETL的数据优化方法的实施方式三的流程图;图4为本发明实施例提供的一种基于ETL的数据优化方法的实施方式四的流程图;图5为图I中的步骤S105的具体流程图; 图6为本发明实施例提供的一种基于ETL的数据优化设备的结构框图;图7为本发明实施例提供的一种基于ETL的数据优化设备的实施方式二的结构框图;图8为本发明实施例提供的一种基于ETL的数据优化设备的实施方式三的结构框图;图9为本发明实施例提供的一种基于ETL的数据优化设备的实施方式四的结构框图;图10为本发明实施例提供的一种基于ETL的数据优化设备的实施方式五的结构框图;图11为本发明实施例提供的一种数据处理单元的组合示意图;图12为步骤S3065中将多个数据处理单元转化为单步数据进行处理的示意图;图13是本发明实施例中根据某学校的指令信息生成的数据处理流程图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在企业信息化建设过程中,特别是面向分析与挖掘的商业智能业务过程,经常涉及到对大量、分散、异构的数据进行处理,ETL是这个过程中必不可少的一部分。下面首先介绍与本发明相关的缩略语与关键术语。ETL Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程。其负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。SQL :结构化查询语言(Structured Query Language),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。外部数据ETL处理数据的来源,一般包括各个厂商的数据库及版本、平面数据文件、Excel、及其他数据文件;数据处理单元ETL中定义的一条对数据进行处理的,可划分的最小逻辑单元;如查询、过滤、排序等。数据处理单元序列ETL对数据的处理过程,可以被认为是由若干个数据处理单元组成的,一条带有分支的,有序的流程;数据处理单元序列,就是从此流程中任意截取的一段有序流程;例如A->B->C->D是ETL过程,那么A->B、B_>C、B->D都是数据处理单元序列。可优化的数据处理单元有些数据处理单元在某些情况下可以被优化,或者其参与的数据处理单元序列,在某些情况下可以被优化。则这种数据处理单元被称为可优化的数据处理单元;如本方案中,可优化的数据处 理单元有查询、过滤、分组统计、排序、表关联、表合并、字段计算。可优化序列可优化的数据处理单元序列,以数据处理单元序列的方式参与优化,可以将该序列的多个数据处理步骤统一优化为单步数据处理,这种序列被称为可优化序列。例如可优化为一条SQL语句的数据处理单元序列。元数据管理元数据是关于数据的数据,其对于ETL来说尤其重要。ETL中大量的数据源定义、映射规则、转换规则、装载策略等都属于元数据范畴,这些信息不仅关系到ETL过程能否顺利完成,而且影响到后期的使用和维护。硬编码硬编码是指使用高级语言或脚本将整个数据处理流程固化与特定的ETL场景中。这样的好处是考虑的场景和逻辑少,便于开发,但是牺牲了代码的可重用性和可移植性。标准化为在一定的范围内获得最佳秩序,对实际的或潜在的问题制定共同的和重复使用的规则的活动,称为标准化。ETL中的很多数据处理逻辑,是常用并可重复使用的,可以抽象出来作为一个标准数据处理单元。关系数据库关系数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。当前主流的关系型数据库有Oracle、DB2、Microsoft SQL Server、Microsoft Access、My SQL 等。异构数据库不同体系结构的数据库系统,如Oracle与SQL Server。数据集数据的集合,通常以表格形式出现,每行表示数据集的一个成员,每列表示了成员的一个属性,一个数据集通常有多个成员构成。数据记录数据集的一个成员或一行数据,被称为一条数据记录。图I为本发明实施例提供的一种基于ETL的数据优化方法的流程图,由图I可知,所述的方法包括SlOl :根据数据抽取、转换、装载的过程ETL预先设置多个数据处理单元,数据处理单元包括抽取类、加载类以及转换类三种类型。表I即为本发明预先设置的多个标准化的数据处理单元。
抽取加载转换
文本输入文本输出字段计算
权利要求
1.一种基于数据抽取、转换、装载的过程ETL的数据优化方法,其特征是,所述的方法包括 根据数据抽取、转换、装载的过程ETL预先设置多个数据处理单元; 对所述的数据处理单元预先设置通信机制; 采集用户输入的包括来源数据的指令信息; 根据所述的来源数据构建与所述的指令信息对应的数据处理流程; 根据所述的数据处理单元以及预设的通信机制对所述的数据处理流程进行优化。
2.根据权利要求I所述的方法,其特征是,所述的数据处理单元包括抽取类、加载类以及转换类三种类型。
3.根据权利要求2所述的方法,其特征是,对所述的数据处理单元预先设置通信机制具体包括 当所述的数据处理单元为抽取类时,在所述的数据处理单元上加载输出接口 ; 当所述的数据处理单元为加载类时,在所述的数据处理单元上加载输入接口 ; 当所述的数据处理单元为转换类时,在所述的数据处理单元上加载输入接口、输出接□。
4.根据权利要求I所述的方法,其特征是,根据所述的数据处理单元以及预设的通信机制对所述的数据处理流程进行优化具体包括 当所述的数据处理流程中第一个数据处理单元处理的数据不是数据库数据源时,对所述的数据处理流程进行并行处理。
5.根据权利要求4所述的方法,其特征是,对所述的数据处理流程进行并行处理具体包括 筛选所述的数据处理流程中的多条分支; 采用多线程方式对所述的多条分支进行并行处理。
6.根据权利要求4所述的方法,其特征是,对所述的数据处理流程进行并行处理具体包括 筛选所述的数据处理流程中的串行数据处理单元; 将输入至所述的串行数据处理单元的数据分解为多条数据记录; 对每条数据记录分配单线程以处理所述的数据记录。
7.根据权利要求I所述的方法,其特征是,根据所述的数据处理单元以及预设的通信机制对所述的数据处理流程进行优化具体包括 当所述的数据处理流程中第一个数据处理单元处理的数据为数据库数据源时,将所述的第一个数据处理单元添加至可优化序列; 依次判断所述的数据处理流程中的下一个数据处理单元是否属于“查询、过滤、分组、统计、排序、计算”集合中的一个; 当判断为是时,将所述的数据处理单元添加至可优化序列; 当判断为否时,继续判断所述的数据处理单元是否带分支; 当判断为是时,继续判断所述的数据处理单元相关联的分支上的数据处理单元处理的数据是否为数据库数据源; 当判断为是时,将所述的数据处理单元以及相关联的分支上的数据处理单元添加至可优化序列; 将所述的可优化序列中的数据处理单元转化为单步进行处理。
8.一种基于ETL的数据优化设备,其特征是,所述的设备包括 数据单元设置装置,用于根据数据抽取、转换、装载的过程ETL预先设置多个数据处理单元; 通信机制设置装置,用于对所述的数据处理单元预先设置通信机制; 指令信息采集装置,用于采集用户输入的包括来源数据的指令信息; 数据流程构建装置,用于根据所述的来源数据构建与所述的指令信息对应的数据处理流程; 数据优化装置,用于根据所述的数据处理单元以及预设的通信机制对所述的数据处理流程进行优化。
9.根据权利要求8所述的设备,其特征是,所述的数据处理单元包括抽取类、加载类以及转换类三种类型。
10.根据权利要求9所述的设备,其特征是,所述的通信机制设置装置具体包括 第一设置单元,用于当所述的数据处理单元为抽取类时,在所述的数据处理单元上加载输出接口; 第二设置单元,用于当所述的数据处理单元为加载类时,在所述的数据处理单元上加载输入接口; 第三设置单元,用于当所述的数据处理单元为转换类时,在所述的数据处理单元上加载输入接口、输出接口。
11.根据权利要求8所述的设备,其特征是,所述的数据优化装置具体包括 并行处理装置,用于当所述的数据处理流程中第一个数据处理单元处理的数据不是数据库数据源时,对所述的数据处理流程进行并行处理。
12.根据权利要求11所述的设备,其特征是,所述的并行处理装置具体包括 第一筛选单元,用于筛选所述的数据处理流程中的多条分支; 并行处理单元,用于采用多线程方式对所述的多条分支进行并行处理。
13.根据权利要求11所述的设备,其特征是,所述的并行处理装置具体包括 第二筛选单元,用于筛选所述的数据处理流程中的串行数据处理单元; 分解单元,用于将输入至所述的串行数据处理单元的数据分解为多条数据记录; 单线程分配单元,用于对每条数据记录分配单线程以处理所述的数据记录。
14.根据权利要求8所述的设备,其特征是,所述的数据优化装置具体包括 第一判断单元,用于判断所述的数据处理流程里第一个数据处理单元处理的数据是否为数据库数据源,当判断为是时,执行添加单元,否则执行第二判断单元; 所述的添加单元,用于将所述的数据处理单元添加至可优化序列; 所述的第二判断单元,用于依次判断所述的数据处理流程中的下一个数据处理单元是否属于“查询、过滤、分组、统计、排序、计算”集合中的一个,当判断为是时,执行所述的添加单元,否则执行第三判断单元; 所述的第三判断单元,用于继续判断所述的数据处理单元是否带分支,当判断为是时,执行第四判断单元;所述的第四判断单元,用于继续判断所述的数据处理单元相关联的分支上的数据处理单元处理的数据是否为数据库数据源,当判断为是时,执行所述的添加单元; 处理单元,用于将所述的可优化序列中的数据处理单元转化为单步进行处理。
全文摘要
本发明实施例提供了提供一种基于ETL的数据优化方法及设备,所述的方法包括根据数据抽取、转换、装载的过程ETL预先设置多个数据处理单元;对所述的数据处理单元预先设置通信机制;采集用户输入的包括来源数据的指令信息;根据所述的来源数据构建与所述的指令信息对应的数据处理流程;根据所述的数据处理单元以及预设的通信机制对所述的数据处理流程进行优化。通过预先设置数据处理单元以及通信机制,实现了对数据的简化优化、分支并行优化以及记录间并行优化,提高了数据优化的处理效率,节约硬件资源。
文档编号G06F17/30GK102819589SQ20121027709
公开日2012年12月12日 申请日期2012年8月6日 优先权日2012年8月6日
发明者李纪洲, 周徐波, 王星宇 申请人:北京久其软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1