CN107784026B - 一种etl数据处理方法及装置 - Google Patents
一种etl数据处理方法及装置 Download PDFInfo
- Publication number
- CN107784026B CN107784026B CN201610794785.3A CN201610794785A CN107784026B CN 107784026 B CN107784026 B CN 107784026B CN 201610794785 A CN201610794785 A CN 201610794785A CN 107784026 B CN107784026 B CN 107784026B
- Authority
- CN
- China
- Prior art keywords
- data
- parameter
- loading
- parameters
- etl
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种ETL数据处理方法及装置,该方法包括:获取不同类型源数据的配置参数;所述配置参数包括:每种类型源数据的抽取参数、加载参数和ETL处理模式参数;所述抽取参数至少包括:源数据仓库信息;所述加载参数至少包括:目的数据仓库信息;解析所有配置参数,创建包含多个ETL处理操作的ETL任务;所述每个ETL处理操作用于针对一种类型的源数据,按照抽取参数从源数据仓库抽取待处理数据,按照加载参数和ETL处理模式参数将待处理数据加载至加载参数对应的目的数据仓库;执行所述ETL任务中的每个ETL处理操作。应用本发明实施例,提高了数据处理效率。
Description
技术领域
本发明涉及数据集成技术领域,特别涉及一种ETL数据处理方法及装置。
背景技术
信息是现代企业的重要资源,是企业运用科学管理、决策分析的基础。企业通过ETL(Extract-Transform-Load,提取、转换、加载)技术手段,抽取来自不同数据源的异构源数据,对抽取的源数据进行清洗、转换、加载处理,并将处理后的数据置入第一目的数据仓库中。
目前,为了将数据置入第一目的数据仓库中,一般将不同类型的多种源数据转换为CSV(Comma Separated Value,逗号分隔值)格式文件,在对CSV格式文件统一进行ETL数据处理。这里,将不同类型的源数据转换为CSV格式文件,实际上也是一次ETL处理过程,也就是,抽取不同类型的源数据,将不同类型的源数据转换为CSV格式文件,将CSV格式文件加载至第二目的数据仓库中,这可以理解为执行了一次ETL数据处理操作。在将CSV格式文件加载至第二目的数据仓库之后,再从第二目的数据仓库中抽取CSV格式文件,进行一次正常的ETL数据处理操作,最终实现将不同类型的源数据加载至第一目的数据仓库中。
基于上述情况,一个ETL任务中,将一个数据存储至目的数据仓库时,需要进行两次ETL数据处理过程,使得数据处理过程耗时增加,数据处理效率低下。
发明内容
本发明实施例公开了一种ETL数据处理方法及装置,以提高数据处理效率。
为达到上述目的,本发明实施例公开了一种ETL数据处理方法,所述方法包括:
获取不同类型源数据的配置参数;所述配置参数包括:每种类型源数据的抽取参数、加载参数和ETL处理模式参数;所述抽取参数至少包括:源数据仓库信息;所述加载参数至少包括:目的数据仓库信息;
解析所有配置参数,创建包含多个ETL处理操作的ETL任务;所述每个ETL处理操作用于针对一种类型的源数据,按照抽取参数从源数据仓库抽取待处理数据,按照加载参数和ETL处理模式参数将待处理数据加载至加载参数对应的目的数据仓库;
执行所述ETL任务中的每个ETL处理操作。
可选的,所述ETL处理模式参数包括:不同类型源数据的处理顺序;
所述解析所有配置参数,创建包含多个ETL处理操作的ETL任务,包括:
解析所有配置参数,创建对应不同类型源数据的多个ETL处理操作;
按照所述处理顺序,确定所述多个ETL处理操作的执行顺序,并将每种源数据的抽取参数和加载参数输入对应的ETL处理操作中,创建ETL任务。
可选的,所述抽取参数包括:类型参数、统一资源定位符URL和格式参数;
所述执行所述ETL任务中的每个ETL处理操作,包括:
对于每种类型源数据,访问该种源数据的第一抽取参数中的URL,抽取与所述第一抽取参数中的类型参数匹配的数据,确定第一待处理数据;根据预设的字段分割符,对所述第一待处理数据进行分割,并判断分割后的所述第一待处理数据是否与所述第一抽取参数中的格式参数匹配;若为是,将分割后的所述第一待处理数据转换为第一键值对数据集;根据该种源数据的第一加载参数,将所述第一键值对数据集加载至所述第一加载参数对应的目的数据仓库。
可选的,所述格式参数包括:每行数据的目的字段个数;
所述根据预设的字段分割符,对所述第一待处理数据进行分割,并判断分割后的所述第一待处理数据是否与所述第一抽取参数中的格式参数匹配,包括:
根据预设的字段分割符,对所述第一待处理数据中每行数据进行分割,获得所述每行数据的第一字段个数和至少一个第一字段;
判断所述每行数据的第一字段个数是否均与所述第一抽取参数中的第一目的字段个数相同;
若为是,判定分割后的所述第一待处理数据与所述第一抽取参数中的格式参数匹配;
若为否,过滤第一字段个数与所述第一目的字段个数不相同的每行数据;判定分割后的所述第一待处理数据与所述第一抽取参数中的格式参数匹配;
所述将分割后的所述第一待处理数据转换为第一键值对数据集,包括:
对于每行数据,将每一第一字段转换为第一键值对数据集。
可选的,所述将每一第一字段转换为第一键值对数据集,包括:
将每一第一字段的标识和该第一字段的值存储在预设的映射表中;
将所述映射表的第一行数据作为主键,并将所述主键和所述映射表中的数据转换为针对每行数据的第一键值对数据集。
可选的,所述加载参数包括:目的数据仓库的类型和目的存储形式;
所述根据该种源数据的第一加载参数,将所述第一键值对数据集加载至所述第一加载参数对应的目的数据仓库,包括:
调用与该种源数据的第一加载参数中的目的数据仓库的类型匹配的写入接口;
通过所述写入接口,以所述第一加载参数中的目的存储形式将针对每行数据的所述第一键值对数据集加载至所述第一加载参数对应的目的数据仓库。
可选的,在所述执行所述ETL任务中的每个ETL处理操作之后,所述方法还包括:
根据加载结果,生成提示信息。
为达到上述目的,本发明实施例公开了一种ETL数据处理装置,所述装置包括:
获取单元,用于获取不同类型源数据的配置参数;所述配置参数包括:每种类型源数据的抽取参数、加载参数和ETL处理模式参数;所述抽取参数至少包括:源数据仓库信息;所述加载参数至少包括:目的数据仓库信息;
创建单元,用于解析所有配置参数,创建包含多个ETL处理操作的ETL任务;所述每个ETL处理操作用于针对一种类型的源数据,按照抽取参数从源数据仓库抽取待处理数据,按照加载参数和ETL处理模式参数将待处理数据加载至加载参数对应的目的数据仓库;
执行单元,用于执行所述ETL任务中的每个ETL处理操作。
可选的,所述ETL处理模式参数包括:不同类型源数据的处理顺序;
所述创建单元,具体用于:
解析所有配置参数,创建对应不同类型源数据的多个ETL处理操作;按照所述处理顺序,确定所述多个ETL处理操作的执行顺序,并将每种源数据的抽取参数和加载参数输入对应的ETL处理操作中,创建ETL任务。
可选的,所述抽取参数包括:类型参数、统一资源定位符URL和格式参数;
所述执行单元,具体用于:
对于每种类型源数据,访问该种源数据的第一抽取参数中的URL,抽取与所述第一抽取参数中的类型参数匹配的数据,确定第一待处理数据;根据预设的字段分割符,对所述第一待处理数据进行分割,并判断分割后的所述第一待处理数据是否与所述第一抽取参数中的格式参数匹配;若为是,将分割后的所述第一待处理数据转换为第一键值对数据集;根据该种源数据的第一加载参数,将所述第一键值对数据集加载至所述第一加载参数对应的目的数据仓库。
可选的,所述格式参数包括:每行数据的目的字段个数;
所述执行单元,包括:
分割子单元,用于根据预设的字段分割符,对所述第一待处理数据中每行数据进行分割,获得所述每行数据的第一字段个数和至少一个第一字段;
判断子单元,用于判断所述每行数据的第一字段个数是否均与所述第一抽取参数中的第一目的字段个数相同;
判定子单元,用于在判断子单元判断结果为是的情况下,判定分割后的所述第一待处理数据与所述第一抽取参数中的格式参数匹配;在判断子单元判断结果为否的情况下,过滤第一字段个数与所述第一目的字段个数不相同的每行数据;判定分割后的所述第一待处理数据与所述第一抽取参数中的格式参数匹配;
转换子单元,用于对于每行数据,将每一第一字段转换为第一键值对数据集。
可选的,所述转换子单元,具体用于:
对于每行数据,将每一第一字段的标识和该第一字段的值存储在预设的映射表中;将所述映射表的第一行数据作为主键,并将所述主键和所述映射表中的数据转换为针对每行数据的第一键值对数据集。
可选的,所述加载参数包括:目的数据仓库的类型和目的存储形式;
所述执行单元,包括:
调用子单元,用于调用与该种源数据的第一加载参数中的目的数据仓库的类型匹配的写入接口;
加载子单元,用于通过所述写入接口,以所述第一加载参数中的目的存储形式将针对每行数据的所述第一键值对数据集加载至所述第一加载参数对应的目的数据仓库。
可选的,所述装置还包括:
生成单元,用于在所述执行所述ETL任务中的每个ETL处理操作之后,根据加载结果,生成提示信息。
本发明实施例提供了一种ETL数据处理方法及装置,获取不同类型源数据的配置参数;解析所有配置参数,创建包含多个ETL处理操作的ETL任务,执行所述ETL任务中的每个ETL处理操作,按照抽取参数从源数据仓库抽取待处理数据,按照加载参数和ETL处理模式参数将待处理数据加载至加载参数对应的目的数据仓库,此时,只需执行一次ETL任务,就可以将对应每种类型源数据对应的待处理数据加载至对应的目的数据仓库,提高了数据处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种ETL数据处理方法的流程示意图;
图2为本发明实施例提供的一种ETL数据处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面通过具体实施例,对本发明进行详细说明。
参考图1,图1为本发明实施例提供的一种ETL数据处理方法的流程示意图,该方法包括:
S101:获取不同类型源数据的配置参数;
其中,配置参数包括:每种类型源数据的抽取参数、加载参数和ETL处理模式参数。抽取参数至少包括:源数据仓库信息;加载参数至少包括:目的数据仓库信息。
在本发明的一个实施例中,抽取参数可以包括:类型参数、URL(Uniform ResourceLocator,统一资源定位符)和格式参数。URL实际可以理解为源数据仓库的URL,或源数据的URL。一般地,类型参数的表达形式可以为:job1.etl.input.type=hdfs,这表明,ETL处理操作job1对应源数据的类型参数为hdfs;URL的表达形式可以为:job1.etl.input.hdfs.path=hdfs://host/file,这表明,ETL处理操作job1对应类型参数为hdfs的源数据的URL为:hdfs://host/file。格式参数可以包括:每行数据的目的字段个数、主键、字段的名称(字段的标识)与字段的值在每行数据中的坐标,如:job1.etl.input.colums={len:4,rowkey:2,user_id:1,time:3},其中,len表示每行数据的目的字段个数,len:4表示每行数据的目的字段个数为4,在执行ETL任务时可以根据len对无效数据进行过滤;rowkey表示主键,rowkey:2,表示每行数据的第二字段为主键;user_id、time为字段的名字,user_id:1表示第一个字段为user_id,time:3表示第三个字段为time。
在本发明的其他实施例中,格式参数中的rowkey可以不进行配置,如:job1.etl.input.colums={len:4,user_id:1,time:3},这样,在执行ETL任务时可以根据具体的算法生成rowkey。一个实施例中,可以定义一个rowkey生成的表达式,如下:
hashFormatAndInsert(formatDateString(ALARMTIME,'yyyyMM')+'_'+PASSID+'_'+formatDateString(ALARMTIME,'ddHHmmssSSS'),50,0,'%04d',6)。
对第一个参数arg1(ALARMTIME)获取哈希值hashcode,以获取的hashcode对50取模,然后加上起始值0,然后将值格式化为四位数字,最后将此值放入arg1的第6位后,此时得到的字符可以作为主键。
加载参数指源数据加载到目的数据仓库的具体描述,包括:目的数据仓库的类型和待处理数据在目的数据仓库中的目的存储形式。一般地,目的数据仓库的类型的表达形式可以为:job1.etl.load.type=hbase,这表明,ETL处理操作job1的目的数据仓库的类型为hbase;源数据在目的数据仓库中的目的存储形式的表达形式可以为:job1.etl.load.hbase.table=test_table,这表明,ETL处理操作job1对应的待处理数据需要存储在hbase的test_table中。另外,在本发明的其他实施例中,待处理数据在目的数据仓库中的目的存储形式还可以包括:加载至目的数据仓库的列、字段、主键等的具体描述。
ETL处理模式参数指ETL任务具体执行的上下文内容,可以包括:不同类型源数据的处理顺序、采用的算法等。如:etl.run.type=spark,这表示采用spark执行ETL任务,这里,spark为一种大数据计算框架;etl.root.run=job1,job2,这表示执行ETL任务时,先对ETL处理操作job1对应的待处理数据进行ETL处理,再对ETL处理操作job2对应的待处理数据进行ETL处理;再如job1.etl.model=csv load hbase,这表示从ETL处理操作job1为CSV源数据仓库中抽取待处理数据加载到hbase目的数据仓库中。
S102:解析所有配置参数,创建包含多个ETL处理操作的ETL任务;
其中,所述ETL任务包括按照每种类型源数据的抽取参数、加载参数和ETL处理模式参数创建的多个ETL处理操作。一个ETL处理操作针对一种类型的源数据,ETL处理操作用于按照抽取参数从源数据仓库抽取待处理数据,按照加载参数和ETL处理模式参数将待处理数据加载至加载参数对应的目的数据仓库。
在本发明的一个实施例中,在获取到不同类型源数据的配置参数后,需要将配置参数提交到ETL主程序中。ETL主程序是一个可执行的main函数,这种情况下,可以通过args变量或以配置文件的形式将配置参数提到ETL主程序中。
ETL主程序获取到配置参数后,可以按照ETL处理模式参数中包括的不同类型源数据的处理顺序,解析不同类型源数据的配置参数,如上述etl.root.run=job1,job2,此时可以先解析ETL处理操作job1对应的源数据的配置参数,再解析ETL处理操作job21对应的源数据的配置参数。另外,根据上述源数据的处理顺序确定这多个ETL处理操作的执行顺序,如上述etl.root.run=job1,job2,此时还可以确定ETL任务包括2个ETL处理操作分别为job1、job2,在执行ETL任务时,先执行ETL处理操作job1,后执行对应ETL处理操作job2。确定ETL处理操作后,将解析获得的抽取参数和加载参数输入对应的ETL处理操作中,这样,创建ETL任务完成。
S103:执行ETL任务中的每个ETL处理操作。
执行ETL任务的过程包括:数据抽取、数据转换和数据加载。
其中,数据抽取的过程可以包括:
对于每种类型源数据,访问该种源数据的第一抽取参数中的URL,从该URL对应的源数据仓库中抽取与第一抽取参数中的类型参数匹配的数据,将抽取到的数据确定为第一待处理数据。
在本发明的其他实施例中,可以根据spark抽取数据,spark可以提供支持不同类型的源数据(如:文件、关系型数据库、非关系型数据库等类型的源数据等类型的源数据)的接口。在数据抽取过程中,可以根据解析获得抽取参数,从spark提供的、对应该源数据类型的接口抽取待处理数据。
其中,数据转换的过程可以包括:
对于每种类型源数据,根据预设的字段分割符,对第一待处理数据进行分割,并判断分割后的第一待处理数据是否与第一抽取参数中的格式参数匹配;若为是,将分割后的第一待处理数据转换为第一键值对数据集。
在本发明的一个实施例中,所述根据预设的字段分割符,对第一待处理数据进行分割,并判断分割后的第一待处理数据是否与第一抽取参数中的格式参数匹配,可以包括:
根据预设的字段分割符,对第一待处理数据中每行数据进行分割,获得每行数据的第一字段个数和至少一个第一字段;
判断每行数据的第一字段个数是否均与第一抽取参数中的第一目的字段个数相同;
若为是,判定分割后的第一待处理数据与第一抽取参数中的格式参数匹配;
若为否,过滤第一字段个数与第一目的字段个数不相同的每行数据;判定分割后的第一待处理数据与第一抽取参数中的格式参数匹配。
假设,一种源数据的抽取参数中字段个数(目的字段个数)配置为len:4,对第一待处理数据中每行数据进行分割后,若每行数据的第一字段个数都是4个,则判定分割后的第一待处理数据与该种源数据的抽取参数中的格式参数匹配;若存在某一行数据的第一字段个数不是4个,则判定该行数据为无效数据,过滤掉该行数据,此时若其他各行数据的第一字段个数都是4个,仍可以判定分割后的第一待处理数据与该种源数据的抽取参数中的格式参数匹配。
这种情况下,所述将分割后的第一待处理数据转换为第一键值对数据集,可以包括:
对于每行数据,将每一第一字段转换为第一键值对数据集。
如上述通过spark抽取待处理数据,在分割后的待处理数据与该种源数据的抽取参数中的格式参数匹配的情况下,运行spark,将每行数据对应的字段的名称和字段的值存储在一个map表(映射表)中,其中,字段的名称为键值对的key,字段的值为键值对的value;再将rowkey字段与map表中的数据转换为spark中键值对rdd(Resilient DistributedDatasets,弹性分布式数据集)。
假设,如表1所示的通过spark抽取到的待处理数据。
表1
001.51.016.000 | 001.051.031.255 | 中国 | 江苏 | 南京 | 南京艺术学院 | 教育网 |
001.51.032.000 | 001.051.055.255 | 中国 | 江苏 | 常州 | 常州大学 | 教育网 |
001.51.056.000 | 001.051.063.255 | 中国 | 江苏 | 南京 | 江苏教育学院 | 教育网 |
针对该待处理数据的格式参数为{len:7,StarIP:0,EndIP:1,nation:2,province:3,city:4,area:5,network:6}。以第一行数据为例,对该第一行数据进行转换时,对该第一行数据进行分割,获得7个第一字段,与len:7相同,判定该行数据与抽取参数中的格式参数匹配,将该第一行数据对应的字段的名称和字段的值存储在一个map表,如下:
继续运行spark,因为未定义rowkey字段,因此将map表中的第一行数据“Map<String,String>”转换为rowkey,结合map表中的数据,获得键值对rdd,如下:
其中,数据加载的过程可以包括:
对于每种类型源数据,根据该种源数据的第一加载参数,将所述第一键值对数据集加载至第一加载参数对应的目的数据仓库。
在本发明的一个实施例中,上述根据该种源数据的第一加载参数,将所述第一键值对数据集加载至第一加载参数对应的目的数据仓库,可以包括:
调用与该种源数据的第一加载参数中的目的数据仓库的类型匹配的写入接口;
通过写入接口,以第一加载参数中的目的存储形式将针对每行数据的第一键值对数据集加载至第一加载参数对应的的目的数据仓库。
假设,目的数据仓库的类型为hbase,目的存储形式为test_table,htable putapi接口与hbase匹配,则在将待处理数据写入hbase时,调用htable put api接口,通过htable put api接口将待处理数据以test_table的形式写入hbase。
在本发明的一实施例中,通过spark执行ETL任务,这种情况下,在加载数据时,可以采用action算子的foreachpartition,调用与目的数据仓库的类型匹配的写入接口,这样在写入待处理数据时,减少了在反复写入数据的循环内创建htable连接的开销。
通过spark执行ETL任务,需要将每行数据的键值对rdd中的数据转换为htableput对象存储至目的数据仓库中。假设,需要将上述表1中所示的第一行数据对应的键值对rdd中的数据存储至目的数据仓库中,则需要根据rowkey生成一个put对象,这里,put对象的结构如下:
通过entrySet迭代map表中的key和value,通过put对象的add方法,将key(字段的名字)置入put对象中的qualifier中,将value(字段的值)置入put对象的value中,对于put对象的family则时可以通过用户自定义配置的,也可以为预设标识。
在本发明的一个实施例中,执行ETL任务完毕后,也就是将待处理数据加载至第一加载参数对应的目的数据仓库之后,还可以根据加载结果,生成提示信息,ETL主程序接收到提示信息后,可以将提示信息输出给用户,以便于用户确定哪些数据加载成功,哪些数据加载未成功,及时对加载未成功的数据进行再次处理。
本发明实施例提供了一种ETL数据处理方法,获取不同类型源数据的配置参数;解析所有配置参数,创建包含多个ETL处理操作的ETL任务,执行ETL任务中的每个ETL处理操作,按照抽取参数从源数据仓库抽取待处理数据,按照加载参数和ETL处理模式参数将待处理数据加载至加载参数对应的目的数据仓库,此时,只需执行一次ETL任务,就可以将对应每种类型源数据对应的待处理数据加载至对应的目的数据仓库,提高了数据处理效率。
参考图2,图2为本发明实施例提供的一种ETL数据处理装置的结构示意图,该装置包括:
获取单元201,用于获取不同类型源数据的配置参数;所述配置参数包括:每种类型源数据的抽取参数、加载参数和ETL处理模式参数;所述抽取参数至少包括:源数据仓库信息;所述加载参数至少包括:目的数据仓库信息;
创建单元202,用于解析所有配置参数,创建包含多个ETL处理操作的ETL任务;所述每个ETL处理操作用于针对一种类型的源数据,按照抽取参数从源数据仓库抽取待处理数据,按照加载参数和ETL处理模式参数将待处理数据加载至加载参数对应的目的数据仓库;
执行单元203,用于执行所述ETL任务中的每个ETL处理操作。
在本发明的其他实施例中,所述ETL处理模式参数包括:不同类型源数据的处理顺序;
所述创建单元202,具体用于:
解析所有配置参数,创建对应不同类型源数据的多个ETL处理操作;按照所述处理顺序,确定所述多个ETL处理操作的执行顺序,并将每种源数据的抽取参数和加载参数输入对应的ETL处理操作中,创建ETL任务。
在本发明的其他实施例中,所述抽取参数包括:类型参数、统一资源定位符URL和格式参数;
所述执行单元203,具体用于:
对于每种类型源数据,访问该种源数据的第一抽取参数中的URL,抽取与所述第一抽取参数中的类型参数匹配的数据,确定第一待处理数据;根据预设的字段分割符,对所述第一待处理数据进行分割,并判断分割后的所述第一待处理数据是否与所述第一抽取参数中的格式参数匹配;若为是,将分割后的所述第一待处理数据转换为第一键值对数据集;根据该种源数据的第一加载参数,将所述第一键值对数据集加载至所述第一加载参数对应的目的数据仓库。
在本发明的其他实施例中,所述格式参数包括:每行数据的目的字段个数;
所述执行单元203,可以包括:
分割子单元(图2中未示出),用于根据预设的字段分割符,对所述第一待处理数据中每行数据进行分割,获得所述每行数据的第一字段个数和至少一个第一字段;
判断子单元(图2中未示出),用于判断所述每行数据的第一字段个数是否均与所述第一抽取参数中的第一目的字段个数相同;
判定子单元(图2中未示出),用于在判断子单元判断结果为是的情况下,判定分割后的所述第一待处理数据与所述第一抽取参数中的格式参数匹配;在判断子单元判断结果为否的情况下,过滤第一字段个数与所述第一目的字段个数不相同的每行数据;判定分割后的所述第一待处理数据与所述第一抽取参数中的格式参数匹配;
转换子单元(图2中未示出),用于对于每行数据,将每一第一字段转换为第一键值对数据集。
在本发明的其他实施例中,所述转换子单元,具体用于:
对于每行数据,将每一第一字段的标识和该第一字段的值存储在预设的映射表中;将所述映射表的第一行数据作为主键,并将所述主键和所述映射表中的数据转换为针对每行数据的第一键值对数据集。
在本发明的其他实施例中,所述加载参数可以包括:目的数据仓库的类型和目的存储形式;
所述执行单元203,可以包括:
调用子单元(图2中未示出),用于调用与该种源数据的第一加载参数中的目的数据仓库的类型匹配的写入接口;
加载子单元(图2中未示出),用于通过所述写入接口,以所述第一加载参数中的目的存储形式将针对每行数据的所述第一键值对数据集加载至所述第一加载参数对应的目的数据仓库。
在本发明的其他实施例中,所述ETL数据处理装置还可以包括:
生成单元(图2中未示出),用于在所述执行所述ETL任务中的每个ETL处理操作之后,根据加载结果,生成提示信息。
本发明实施例提供了一种ETL数据处理装置,获取不同类型源数据的配置参数;解析所有配置参数,创建包含多个ETL处理操作的ETL任务,执行ETL任务中的每个ETL处理操作,按照抽取参数从源数据仓库抽取待处理数据,按照加载参数和ETL处理模式参数将待处理数据加载至加载参数对应的目的数据仓库,此时,只需执行一次ETL任务,就可以将对应每种类型源数据对应的待处理数据加载至对应的目的数据仓库,提高了数据处理效率。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种ETL数据处理方法,其特征在于,所述方法包括:
获取不同类型源数据的配置参数;所述配置参数包括:每种类型源数据的抽取参数、加载参数和ETL处理模式参数;所述抽取参数至少包括:源数据仓库信息、类型参数、统一资源定位符URL和格式参数;所述加载参数至少包括:目的数据仓库信息;
解析所有配置参数,创建包含多个ETL处理操作的ETL任务;所述每个ETL处理操作用于针对一种类型的源数据,按照抽取参数从源数据仓库抽取待处理数据,按照加载参数和ETL处理模式参数将待处理数据加载至加载参数对应的目的数据仓库;
对于每种类型源数据,访问该种源数据的第一抽取参数中的URL,抽取与所述第一抽取参数中的类型参数匹配的数据,确定第一待处理数据;根据预设的字段分割符,对所述第一待处理数据进行分割,并判断分割后的所述第一待处理数据是否与所述第一抽取参数中的格式参数匹配;若为是,将分割后的所述第一待处理数据转换为第一键值对数据集;根据该种源数据的第一加载参数,将所述第一键值对数据集加载至所述第一加载参数对应的目的数据仓库。
2.根据权利要求1所述的方法,其特征在于,所述ETL处理模式参数包括:不同类型源数据的处理顺序;
所述解析所有配置参数,创建包含多个ETL处理操作的ETL任务,包括:
解析所有配置参数,创建对应不同类型源数据的多个ETL处理操作;
按照所述处理顺序,确定所述多个ETL处理操作的执行顺序,并将每种源数据的抽取参数和加载参数输入对应的ETL处理操作中,创建ETL任务。
3.根据权利要求1所述的方法,其特征在于,所述格式参数包括:每行数据的目的字段个数;
所述根据预设的字段分割符,对所述第一待处理数据进行分割,并判断分割后的所述第一待处理数据是否与所述第一抽取参数中的格式参数匹配,包括:
根据预设的字段分割符,对所述第一待处理数据中每行数据进行分割,获得所述每行数据的第一字段个数和至少一个第一字段;
判断所述每行数据的第一字段个数是否均与所述第一抽取参数中的第一目的字段个数相同;
若为是,判定分割后的所述第一待处理数据与所述第一抽取参数中的格式参数匹配;
若为否,过滤第一字段个数与所述第一目的字段个数不相同的每行数据;判定分割后的所述第一待处理数据与所述第一抽取参数中的格式参数匹配;
所述将分割后的所述第一待处理数据转换为第一键值对数据集,包括:
对于每行数据,将每一第一字段转换为第一键值对数据集。
4.根据权利要求3所述的方法,其特征在于,所述将每一第一字段转换为第一键值对数据集,包括:
将每一第一字段的标识和该第一字段的值存储在预设的映射表中;
将所述映射表的第一行数据作为主键,并将所述主键和所述映射表中的数据转换为针对每行数据的第一键值对数据集。
5.根据权利要求1所述的方法,其特征在于,所述加载参数包括:目的数据仓库的类型和目的存储形式;
所述根据该种源数据的第一加载参数,将所述第一键值对数据集加载至所述第一加载参数对应的目的数据仓库,包括:
调用与该种源数据的第一加载参数中的目的数据仓库的类型匹配的写入接口;
通过所述写入接口,以所述第一加载参数中的目的存储形式将针对每行数据的所述第一键值对数据集加载至所述第一加载参数对应的目的数据仓库。
6.根据权利要求1所述的方法,其特征在于,在执行所述ETL任务中的每个ETL处理操作之后,所述方法还包括:
根据加载结果,生成提示信息。
7.一种ETL数据处理装置,其特征在于,所述装置包括:
获取单元,用于获取不同类型源数据的配置参数;所述配置参数包括:每种类型源数据的抽取参数、加载参数和ETL处理模式参数;所述抽取参数至少包括:源数据仓库信息、类型参数、统一资源定位符URL和格式参数;所述加载参数至少包括:目的数据仓库信息;
创建单元,用于解析所有配置参数,创建包含多个ETL处理操作的ETL任务;所述每个ETL处理操作用于针对一种类型的源数据,按照抽取参数从源数据仓库抽取待处理数据,按照加载参数和ETL处理模式参数将待处理数据加载至加载参数对应的目的数据仓库;
执行单元,用于对于每种类型源数据,访问该种源数据的第一抽取参数中的URL,抽取与所述第一抽取参数中的类型参数匹配的数据,确定第一待处理数据;根据预设的字段分割符,对所述第一待处理数据进行分割,并判断分割后的所述第一待处理数据是否与所述第一抽取参数中的格式参数匹配;若为是,将分割后的所述第一待处理数据转换为第一键值对数据集;根据该种源数据的第一加载参数,将所述第一键值对数据集加载至所述第一加载参数对应的目的数据仓库。
8.根据权利要求7所述的装置,其特征在于,所述ETL处理模式参数包括:不同类型源数据的处理顺序;
所述创建单元,具体用于:
解析所有配置参数,创建对应不同类型源数据的多个ETL处理操作;按照所述处理顺序,确定所述多个ETL处理操作的执行顺序,并将每种源数据的抽取参数和加载参数输入对应的ETL处理操作中,创建ETL任务。
9.根据权利要求7所述的装置,其特征在于,所述格式参数包括:每行数据的目的字段个数;
所述执行单元,包括:
分割子单元,用于根据预设的字段分割符,对所述第一待处理数据中每行数据进行分割,获得所述每行数据的第一字段个数和至少一个第一字段;
判断子单元,用于判断所述每行数据的第一字段个数是否均与所述第一抽取参数中的第一目的字段个数相同;
判定子单元,用于在判断子单元判断结果为是的情况下,判定分割后的所述第一待处理数据与所述第一抽取参数中的格式参数匹配;在判断子单元判断结果为否的情况下,过滤第一字段个数与所述第一目的字段个数不相同的每行数据;判定分割后的所述第一待处理数据与所述第一抽取参数中的格式参数匹配;
转换子单元,用于对于每行数据,将每一第一字段转换为第一键值对数据集。
10.根据权利要求9所述的装置,其特征在于,所述转换子单元,具体用于:
对于每行数据,将每一第一字段的标识和该第一字段的值存储在预设的映射表中;将所述映射表的第一行数据作为主键,并将所述主键和所述映射表中的数据转换为针对每行数据的第一键值对数据集。
11.根据权利要求7所述的装置,其特征在于,所述加载参数包括:目的数据仓库的类型和目的存储形式;
所述执行单元,包括:
调用子单元,用于调用与该种源数据的第一加载参数中的目的数据仓库的类型匹配的写入接口;
加载子单元,用于通过所述写入接口,以所述第一加载参数中的目的存储形式将针对每行数据的所述第一键值对数据集加载至所述第一加载参数对应的目的数据仓库。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
生成单元,用于在执行所述ETL任务中的每个ETL处理操作之后,根据加载结果,生成提示信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610794785.3A CN107784026B (zh) | 2016-08-31 | 2016-08-31 | 一种etl数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610794785.3A CN107784026B (zh) | 2016-08-31 | 2016-08-31 | 一种etl数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107784026A CN107784026A (zh) | 2018-03-09 |
CN107784026B true CN107784026B (zh) | 2021-08-20 |
Family
ID=61451627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610794785.3A Active CN107784026B (zh) | 2016-08-31 | 2016-08-31 | 一种etl数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107784026B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108769122B (zh) * | 2018-04-26 | 2021-04-13 | 北京百分点科技集团股份有限公司 | 数据交换方法、装置及存储介质 |
CN110569090A (zh) * | 2018-06-05 | 2019-12-13 | 中移(苏州)软件技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN109739828B (zh) * | 2018-12-29 | 2021-06-29 | 咪咕文化科技有限公司 | 一种数据处理方法、设备及计算机可读存储介质 |
CN109960708A (zh) * | 2019-03-22 | 2019-07-02 | 蔷薇智慧科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN110413669A (zh) * | 2019-06-21 | 2019-11-05 | 深圳中琛源科技股份有限公司 | 一种基于etl的数据处理方法、装置、终端设备及存储介质 |
CN110471977B (zh) * | 2019-08-22 | 2022-04-22 | 杭州数梦工场科技有限公司 | 一种数据交换方法、装置、设备、介质 |
CN110704526B (zh) * | 2019-09-27 | 2022-07-19 | 北京深度制耀科技有限公司 | 不良事件的信息的获取方法、装置、设备及存储介质 |
CN110704527A (zh) * | 2019-10-10 | 2020-01-17 | 北京东软望海科技有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN111080243A (zh) * | 2019-12-05 | 2020-04-28 | 北京百度网讯科技有限公司 | 业务处理的方法、装置、系统、电子设备及存储介质 |
CN112035468A (zh) * | 2020-08-24 | 2020-12-04 | 杭州览众数据科技有限公司 | 基于内存计算、web可视化配置的多数据源ETL工具 |
CN112632147B (zh) * | 2020-12-11 | 2023-10-24 | 邦彦技术股份有限公司 | 数据差异化比较方法、系统和存储介质 |
CN115357657B (zh) * | 2022-10-24 | 2023-03-24 | 成都数联云算科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101105793A (zh) * | 2006-07-11 | 2008-01-16 | 阿里巴巴公司 | 数据仓库中的数据处理方法及系统 |
CN102999537A (zh) * | 2011-09-19 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据迁移系统和方法 |
CN104778236A (zh) * | 2015-04-02 | 2015-07-15 | 上海烟草集团有限责任公司 | 一种基于元数据的etl实现方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050251533A1 (en) * | 2004-03-16 | 2005-11-10 | Ascential Software Corporation | Migrating data integration processes through use of externalized metadata representations |
US9411864B2 (en) * | 2008-08-26 | 2016-08-09 | Zeewise, Inc. | Systems and methods for collection and consolidation of heterogeneous remote business data using dynamic data handling |
-
2016
- 2016-08-31 CN CN201610794785.3A patent/CN107784026B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101105793A (zh) * | 2006-07-11 | 2008-01-16 | 阿里巴巴公司 | 数据仓库中的数据处理方法及系统 |
CN102999537A (zh) * | 2011-09-19 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据迁移系统和方法 |
CN104778236A (zh) * | 2015-04-02 | 2015-07-15 | 上海烟草集团有限责任公司 | 一种基于元数据的etl实现方法及系统 |
Non-Patent Citations (1)
Title |
---|
面向大数据的ETL设计与实现;王晓伟;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140615(第06期);正文第13-26页,图2.1-2.13 * |
Also Published As
Publication number | Publication date |
---|---|
CN107784026A (zh) | 2018-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107784026B (zh) | 一种etl数据处理方法及装置 | |
CN109739894B (zh) | 补充元数据描述的方法、装置、设备及存储介质 | |
AU2017101864A4 (en) | Method, device, server and storage apparatus of reviewing SQL | |
CN109376196B (zh) | 一种redo日志批量同步方法及装置 | |
CN108984155B (zh) | 数据处理流程设定方法和装置 | |
AU2019201821B2 (en) | Generating an execution script for configuration of a system | |
KR101617696B1 (ko) | 데이터 정규표현식의 마이닝 방법 및 장치 | |
US10311111B2 (en) | Search method and apparatus and storage medium | |
KR101535813B1 (ko) | 복합 이벤트 처리를 위한 이벤트 구성 규칙의 동적 업데이트를 위한 시스템 및 방법 | |
JP7098327B2 (ja) | 情報処理システム、関数作成方法および関数作成プログラム | |
CA2956207C (en) | Program code comparison and reporting | |
CN109376153B (zh) | 一种基于NiFi的数据写入图数据库的系统及方法 | |
US11386331B2 (en) | Detecting correlation among sets of time series data | |
EP3474158A1 (en) | Method and device for executing distributed computing task | |
WO2018059430A1 (zh) | 数据库搜索 | |
Hondo et al. | Data provenance management for bioinformatics workflows using NoSQL database systems in a cloud computing environment | |
CN105718468A (zh) | 一种数据仓库ods层的建立方法和装置 | |
CN113157978A (zh) | 数据的标签建立方法和装置 | |
US9135300B1 (en) | Efficient sampling with replacement | |
CN106547883B (zh) | 一种用户定义函数udf运行情况的处理方法及系统 | |
CN111858963A (zh) | 网页客服知识抽取方法及装置 | |
JPWO2016178312A1 (ja) | 情報処理装置、情報処理方法およびプログラム | |
KR101638048B1 (ko) | 맵리듀스를 이용한 sql 질의처리방법 | |
CN111143356A (zh) | 报表检索方法及装置 | |
KR20160031807A (ko) | 스프레드시트 기반 빅데이터 분석 시스템 및 그 방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |