CN105808778B - 一种海量数据抽取、转换、加载方法及装置 - Google Patents
一种海量数据抽取、转换、加载方法及装置 Download PDFInfo
- Publication number
- CN105808778B CN105808778B CN201610192563.4A CN201610192563A CN105808778B CN 105808778 B CN105808778 B CN 105808778B CN 201610192563 A CN201610192563 A CN 201610192563A CN 105808778 B CN105808778 B CN 105808778B
- Authority
- CN
- China
- Prior art keywords
- data
- file
- loaded
- task
- information
- 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
- 238000011068 loading method Methods 0.000 title claims abstract description 198
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 9
- 239000000284 extract Substances 0.000 title abstract 2
- 238000012545 processing Methods 0.000 claims abstract description 95
- 238000000034 method Methods 0.000 claims description 56
- 238000007781 pre-processing Methods 0.000 claims description 25
- 238000012795 verification Methods 0.000 claims description 12
- 238000013075 data extraction Methods 0.000 claims description 8
- 241001269238 Data Species 0.000 abstract 1
- 230000008569 process Effects 0.000 description 16
- 230000001960 triggered effect Effects 0.000 description 6
- 230000006837 decompression Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000013501 data transformation Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
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
本发明实施例提供一种海量数据抽取、转换、加载方法,包括:根据待加载的数据文件注册信息,配置数据字典信息;根据配置的所述数据字典信息创建数据表以及生成加载控制文件模板;执行接收待加载的数据文件的任务;执行对所述待加载的数据文件进行加载的任务:根据待加载的数据文件注册信息、所述加载控制文件模板生成加载控制文件,利用所述加载控制文件将所述待加载的数据文件加载到创建的所述数据表中。本发明实施例提供了一种自动、灵活、高效的海量数据抽取、转换、加载方法,可以批量处理海量的结构化数据,提高了数据处理的效率和准确率。
Description
技术领域
本发明实施例涉及计算机技术领域,具体涉及一种海量数据抽取、转换、加载方法及装置。
背景技术
数据抽取、转换、加载(英文全称为Extract-Transform-Load,英文缩写为ETL)是一种将数据从数据源端经过抽取、转换、加载至目的端的技术。ETL是一种重要的数据处理技术,可以方便用户从数据源中抽取出所需的数据,经过数据清洗,按照预先定义的格式,加载到目的数据库中。
现有技术存在的ETL技术,可以将结构化的数据文件加载到目标***中。现有技术针对源数据文件,会创建对应的表,以将源数据文件中的数据经过抽取、转换、加载到创建的表中。这种方式可以提供基础的数据导入与加载。然而,当面临海量的结构化数据时,现有技术提供的方法无法实现海量数据的批量处理,存在处理效率低的缺陷。
发明内容
本发明实施例提供了一种海量数据抽取、转换、加载方法及装置,可以通过文配置数据字典信息,自动建立数据表以及加载控制文件模板,并根据加载控制文件模板实现数据的自动化加载,可以批量处理海量的结构化数据,提高了数据处理的效率和准确率。
为此,本发明实施例提供如下技术方案:
第一方面,本发明实施例提供了一种海量数据抽取、转换、加载方法,包括:
根据待加载的数据文件注册信息,配置数据字典信息;
根据配置的所述数据字典信息创建数据表以及生成加载控制文件模板;
执行接收待加载的数据文件的任务;
执行对所述待加载的数据文件进行加载的任务;其中,所述执行对所述待加载的数据文件进行加载的任务包括:根据待加载的数据文件注册信息、所述加载控制文件模板生成加载控制文件,利用所述加载控制文件将所述待加载的数据文件加载到创建的所述数据表中。
进一步地,所述根据待加载的数据文件注册信息,配置数据字典信息包括:
根据待加载的数据文件注册信息,配置待加载的数据文件注册信息数据表信息、数据表字段信息以及数据文件信息;所述数据表信息、数据表字段信息以及数据文件信息与所述待加载的数据文件注册信息具有对应关系。
进一步地,所述根据配置的所述数据字典信息创建数据表以及生成加载控制文件模板包括:
根据所述数据字典信息生成创建数据表任务以及生成加载控制文件模板任务,执行所述创建数据表任务以及生成加载控制文件模板任务,创建数据表以及生成加载控制文件模板;其中,创建的所述数据表与所述数据表信息具有对应关系。
进一步地,所述根据所述数据字典信息生成创建数据表任务以及生成加载控制文件模板任务包括:
根据所述数据字典信息定期触发生成创建数据表任务以及生成加载控制文件模板任务;或者,
当所述数据字典信息发生变化时,触发生成创建数据表任务以及生成加载控制文件模板任务。
进一步地,在接收待加载的数据文件之后,所述方法还包括:
执行对所述待加载的数据文件进行预处理的任务;
其中,所述对所述待加载的数据文件进行预处理包括下述中的任意一个或多个步骤:
对所述待加载的数据文件进行解包处理;
对所述待加载的数据文件进行解压处理;
对所述待加载的数据文件进行转码处理。
进一步地,所述方法还包括:
执行对所述待加载的数据文件进行归档处理的任务;所述执行对所述待加载的数据文件进行归档处理的任务包括:对所述待加载的数据文件进行文件信息校验处理,将校验通过的数据文件进行归档处理,保存文件归档信息。
进一步地,所述根据待加载的数据文件注册信息、所述加载控制文件模板生成加载控制文件包括:
根据待加载的数据文件注册信息,对所述加载控制文件模板实例化,生成与所述待加载的数据文件对应的加载控制文件。
进一步地,所述利用所述加载控制文件将所述待加载的数据文件加载到创建的所述数据表中包括:
根据所述待加载的数据文件注册信息与所述数据表信息的对应关系、所述数据表信息以及创建的数据表的对应关系,利用所述加载控制文件将所述待加载的数据文件加载到与所述待加载的数据文件对应的数据表中。
进一步地,所述方法还包括:
获取文件状态表信息,根据所述文件状态表信息调度任务的执行;所述任务包括所述接收待加载的数据文件的任务、对所述待加载的数据文件进行预处理的任务、对所述待加载的数据文件进行归档的任务、所述对所述待加载的数据文件进行加载的任务中的一种或多种。
进一步地,所述文件状态表包括当前文件处理状态、文件处理状态序列,所述根据所述文件状态表信息调度任务的执行包括:
当判断当前文件处理状态符合预设条件时,获取所述文件处理状态序列中当前文件处理状态之后的文件处理状态,调度与所述当前文件处理状态之后的文件处理状态对应的任务。
进一步地,所述根据所述文件状态表信息调度任务的执行包括:
根据预先配置的文件优先级,优先调度优先级高的文件的任务的执行。
进一步地,所述方法还包括:
在调度任务的执行时,根据当前任务占用的线程数、等待队列的线程数量动态调整所述任务占用的线程数。
进一步地,所述方法还包括:
将所述任务分配至两个以上的任务机上执行,所述两个以上的任务机共享磁盘或者磁盘组
第二方面,本发明实施例提供了一种海量数据抽取、转换、加载装置,包括:
配置单元,用于根据待加载的数据文件注册信息,配置数据字典信息;
创建单元,用于根据配置的所述数据字典信息创建数据表以及生成加载控制文件模板;
接收单元,用于执行接收待加载的数据文件的任务;
加载单元,用于执行对所述待加载的数据文件进行加载的任务;其中,所述执行对所述待加载的数据文件进行加载的任务包括:根据待加载的数据文件注册信息、所述加载控制文件模板生成加载控制文件,利用所述加载控制文件将所述待加载的数据文件加载到创建的所述数据表中。
其中,所述配置单元具体用于:
根据待加载的数据文件注册信息,配置数据表信息、数据表字段信息以及数据文件信息;所述数据表信息、数据表字段信息以及数据文件信息与所待加载的数据文件注册信息具有对应关系。
其中,所述创建单元具体用于:
根据所述数据字典信息生成创建数据表任务以及生成加载控制文件模板任务,执行所述创建数据表任务以及生成加载控制文件模板任务,创建数据表以及生成加载控制文件模板;其中,创建的所述数据表与所述数据表信息具有对应关系。
其中,所述装置还包括:
预处理单元,用于在接收待加载的数据文件之后,执行对所述待加载的数据文件进行预处理的任务。
其中,所述预处理单元包括下述中的任意一个或多个子单元:
解包子单元,用于对所述待加载的数据文件进行解包处理;
解压子单元,用于对所述待加载的数据文件进行解压处理;
转码子单元,用于对所述待加载的数据文件进行转码处理。
其中,所述装置还包括:
归档单元,用于执行对所述待加载的数据文件进行归档处理的任务;所述执行对所述待加载的数据文件进行归档处理的任务包括:对所述待加载的数据文件进行文件信息校验处理,将校验通过的数据文件进行归档处理,保存文件归档信息。
其中,所述加载单元具体用于:
根据待加载的数据文件注册信息,对所述加载控制文件模板实例化,生成与所述待加载的数据文件对应的加载控制文件。
其中,所述加载单元具体用于:
根据所述待加载的数据文件注册信息与所述数据表信息的对应关系、所述数据表信息以及创建的数据表的对应关系,利用所述加载控制文件将所述待加载的数据文件加载到与所述待加载的数据文件对应的数据表中。
其中,所述装置还包括:
任务调度单元,用于获取文件状态表信息,根据所述文件状态表信息调度任务的执行;所述任务包括所述接收待加载的数据文件的任务、对所述待加载的数据文件进行预处理的任务、对所述待加载的数据文件进行归档的任务、所述对所述待加载的数据文件进行加载的任务中的一种或多种。
其中,所述任务调度单元具体用于:
当判断当前文件处理状态符合预设条件时,获取文件处理状态序列中当前文件处理状态之后的文件处理状态,调度与所述当前文件处理状态之后的文件处理状态对应的任务。
其中,所述任务调度单元具体用于:
根据预先配置的文件优先级,优先调度优先级高的文件的任务的执行。
其中,所述装置还包括:
线程调整单元,用于在调度任务的执行时,根据当前任务占用的线程数、等待队列的线程数量动态调整所述任务占用的线程数。
其中,所述装置还包括:
任务分配单元,用于将所述任务分配至两个以上的任务机上执行,所述两个以上的任务机共享磁盘或者磁盘组。
本发明实施例提供的海量数据抽取、转换、加载方法及装置,可以根据待加载的数据文件注册信息,配置数据字典信息,并根据配置的所述数据字典信息自动创建数据表以及生成加载控制文件模板,在接收待加载的数据文件后,根据待加载的数据文件注册信息、所述加载控制文件模板生成加载控制文件,利用所述加载控制文件将所述待加载的数据文件自动加载到创建的所述数据表中。本发明可以根据待加载的数据文件的数据结构配置数据字典信息,并通过配置的数据字典信息自动创建数据表,并实现数据文件的自动加载,可以批量处理结构化的海量数据,并提高了数据加载处理的效率和准确率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的海量数据抽取、转换、加载方法流程图;
图2为本发明另一实施例提供的海量数据抽取、转换、加载方法流程图;
图3为本发明一实施例提供的海量数据抽取、转换、加载装置示意图。
具体实施方式
本发明实施例提供了一种海量数据抽取、转换、加载方法及装置,可以通过文配置数据字典信息,自动建立数据表以及加载控制文件模板,并根据加载控制文件模板实现数据的自动化加载,可以批量处理海量的结构化数据,提高了数据处理的效率和准确率。
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
下面将结合附图1至附图2对本发明示例性实施例示出的海量数据抽取、转换、加载法进行介绍。
参见图1,为本发明一实施例提供的海量数据抽取、转换、加载方法流程图。如图1所示,可以包括:
S101,根据待加载的数据文件注册信息,配置数据字典信息。
具体实现时,根据待加载的数据文件注册信息,配置待加载的数据文件注册信息数据表信息、数据表字段信息以及数据文件信息。其中,所述数据表信息、数据表字段信息以及数据文件信息与所待加载的数据文件注册信息具有对应关系。其中,待加载的数据文件注册信息至少包括数据文件的数据结构信息,例如包括表名称、表包括的字段的名称等。待加载的数据文件注册信息还可以包括数据文件的创建日期、文件名称、文件的附加信息等。文件的附加信息可以包括数据文件的来源、文件的类型、文件的属性等。文件的来源例如可以是来源于哪个***、哪个地区等。文件类型例如可以是属于对公数据或者对私数据等。所述数据字典信息中的数据表信息可以包括表的名称、数据表加载信息中的一种或者多种。其中数据表加载信息用于表明所述数据表在加载阶段是否要加载。所述数据表字段信息可以包括字段的名称、字段的含义、字段的类型、长度、格式、字段与数据表的对应关系等。所述数据文件信息可以包括文件的创建日期、文件名称、文件的数据结构、文件的附加信息、数据表与数据文件的对应关系中的一种或多种,可以根据需要保存在数据字典中。
在一些实施方式中,本发明实施例还可以将高频访问数据缓存在内存中,以提高数据访问效率。例如,将数据文件注册信息存储在内存中。
S102,根据配置的所述数据字典信息创建数据表以及生成加载控制文件模板。
具体实现时,根据所述数据字典信息生成创建数据表任务以及生成加载控制文件模板任务,执行所述创建数据表任务以及生成加载控制文件模板任务,创建数据表以及生成加载控制文件模板。其中,创建的所述数据表与所述数据表信息具有对应关系。在本发明实施例中,可以根据数据字典信息自动生成创建数据表任务以及生成加载控制文件模板任务。
在一些实施方式中,可以根据所述数据字典信息定期触发生成创建数据表任务以及生成加载控制文件模板任务。举例说明,可以根据数据文件更新或者加载的周期,定期触发生成创建数据表任务以及生成加载控制文件模板任务。例如,按照月、周、日定期触发生成相应的任务。
在一些实施方式中,当所述数据字典信息发生变化时,触发生成创建数据表任务以及生成加载控制文件模板任务。举例说明,所述数据字典信息发生变化包括新增或者变更数据字典信息时,即可以触发生成创建数据表的任务以及生成加载控制文件模板的任务。
在触发生成所述任务后,任务执行线程将扫描所述创建数据表的任务以及生成加载控制文件模板的任务,执行所述任务,自动化生成建表脚本并执行,由此自动创建数据表,并生成加载控制文件模板。所述加载控制文件模板用于在加载时生成加载控制文件。所述加载控制模板与数据表信息一一对应,同属于一个数据表的多个待加载数据文件,在加载时利用同一个加载控制模板进行实例化,从而得到与所述多个待加载数据文件对应的多个加载控制文件。这时,加载数据文件与加载控制文件存在一一对应关系。
S103,执行接收待加载的数据文件的任务。
具体实现时,可以扫描接收目录源***发送的待加载的数据文件,对所述数据文件进行检查,检查通过后,即可以放入接收队列,以便接收所述数据文件。对所述数据文件检查例如可以包括文件名规范性检查、文件类型检查、文件的数据日期检查等。
S104,执行对所述待加载的数据文件进行加载的任务;其中,所述执行对所述待加载的数据文件进行加载的任务包括:根据待加载的数据文件注册信息、所述加载控制文件模板生成加载控制文件,利用所述加载控制文件将所述待加载的数据文件加载到创建的所述数据表中。
在一些实施方式中,在接收待加载的数据文件之后,在执行对所述待加载的数据文件进行加载的任务之前,还可以包括:对所述数据文件进行备份处理。
在一些实施方式中,在接收待加载的数据文件之后,在执行对所述待加载的数据文件进行加载的任务之前,还可以包括:执行对所述待加载的数据文件进行预处理的任务。其中,所述对所述待加载的数据文件进行预处理包括下述中的任意一个或多个步骤:
对所述待加载的数据文件进行解包处理。
对所述待加载的数据文件进行解压处理。
对所述待加载的数据文件进行转码处理。
在一些实施方式中,在接收待加载的数据文件之后,在执行对所述待加载的数据文件进行加载的任务之前,还可以包括:执行对所述待加载的数据文件进行归档处理的任务。所述执行对所述待加载的数据文件进行归档处理的任务包括:对所述待加载的数据文件进行文件信息校验处理,将校验通过的数据文件进行归档处理,保存文件归档信息。其中,所述文件归档信息可以包括逻辑文件名、归档日期、物理存储路径、物理文件名、文件的附加信息(所述***、所述区域)中的一种或者多种。
具体实现时,可以根据数据字典中配置的数据表加载信息获取待加载的数据表的列表,以便生成加载任务。在具体执行加载任务时,可以根据待加载的数据文件注册信息,对所述加载控制文件模板实例化,生成与所述待加载的数据文件对应的加载控制文件。需要说明的是,由于传输的一类数据文件具有相同的或者类似的数据结构,因此,可以根据数据字典信息中的数据结构、数据表信息、数据字段信息生成加载控制模板。又由于对数据文件所需加载的数据项可能有所不同,因此针对不同的待加载数据文件,可以对统一的加载控制模板进行实例化,从而生成与所述待加载数据文件对应的加载控制文件。举例说明,同样对于账户数据表,可能需要加载数据文件A的前10个字段,需要加载数据文件B的前20个字段,这时,就需要根据加载控制模板以及待加载文件的注册信息,生成相应的加载控制文件以控制加载过程。在生成加载控制文件后,即可以根据所述待加载的数据文件注册信息与所述数据表信息的对应关系、所述数据表信息以及创建的数据表的对应关系,利用所述加载控制文件将所述待加载的数据文件加载到与所述待加载的数据文件对应的数据表中。前面提到,待加载的数据文件注册信息与所述数据表信息具有对应关系,所述数据表信息与创建的数据表具有对应关系,因此可以获取待加载的数据文件应当加载的创建的数据实体表,从而实现数据的加载。在具体加载时,可以对数据文件的全字段进行加载,也可以抽取部分自动进行加载。
在一些实施方式中,获取文件状态表信息,根据所述文件状态表信息调度任务的执行;所述任务包括所述接收待加载的数据文件的任务、对所述待加载的数据文件进行预处理的任务、对所述待加载的数据文件进行归档的任务、所述对所述待加载的数据文件进行加载的任务中的一种或多种。其中,所述文件状态信息表包括当前文件处理状态以及文件处理状态序列,所述根据所述文件状态表信息调度任务的执行包括:当判断当前文件处理状态符合预设条件时,获取所述文件处理状态序列中当前文件处理状态之后的文件处理状态,调度与所述当前文件处理状态之后的文件处理状态对应的任务。其中,所述文件处理状态序列用于表明文件处理的顺序。所述当前文件状态可以包括正在进行、处理成功或者处理失败等,可以根据文件处理的进度更新文件处理状态。举例说明,文件状态处理序列可以包括接收、预处理、归档、加载。当执行接收任务时,更新当前文件处理状态为正在接收。当接收任务完成时,更新当前文件处理状态为接收成功。当判断当前文件处理状态为接收成功时,则确定符合预设条件,则获取文件处理状态序列中接收处理状态后的文件处理状态为预处理,这时触发对文件进行预处理的任务。当然,文件状态处理序列还可以包括其他文件状态或者任务,可以根据需要进行调整。在这种实现方式中,根据文件处理状态实现了任务的自动调度,提高了文件处理的效率。
在一些实施方式中,所述根据所述文件状态表信息调度任务的执行包括:根据预先配置的文件优先级,优先调度优先级高的文件的任务的执行。举例说明,当加载的文件较多时,如果按照文件接收的先后顺序处理,就有可能导致重要的文件处理延后。本发明实施例中,可以根据数据文件的重要程度或者其他指标,设置文件处理的优先级,在调度任务的执行时,优先处理优先级高的文件对应的任务的执行。例如,优先接收优先级高的数据文件,优先加载优先级高的数据文件等。
在本发明实施例中,各任务是并发执行的,可以根据各处理阶段的情况,动态调整线程数。具体地,在调度任务的执行时,根据当前任务占用的线程数、等待队列的线程数量动态调整所述任务占用的线程数。举例说明,可以设置最大线程数、最小线程数,根据当前任务占用的线程数、等待队列的线程数量动态调整所述任务占用的线程数。例如,当前任务为接收数据文件任务,占用的线程数是10,等待队列中有20个待接收的数据文件,这时,可以调整接收数据文件任务占用的线程数,使之增加50%,变为15个,具体的调整规则可以根据需要设定。又如,当前接收任务占用15个线程,等待队列中仅有2个待接收的数据文件,这时,可以调整当前接收任务占用的线程数量为最小线程数。具体的调整规则可以是灵活多样的,在此不进行限定。由于在本发明实施例中可以动态调整各任务所占用的线程数,能够有效利用资源,提高数据处理效率。
在一些实施方式中,为了提供数据处理的效率,可以将各任务分配至两个以上的任务机上执行,所述两个以上的任务机共享磁盘或者磁盘组。具体实现时,本发明可以采用远程方法调用技术,支持分布式多机部署。也就是说,本发明可以将不同的任务分配至多个任务机上执行,所述多个任务机共享磁盘或者磁盘组。
本发明实施例由于创建了数据字典,因此对后续加载数据的使用提供了便利。在一些实施方式中,所述方法还包括:响应于查询命令,根据数据字典信息输出与所述查询命令对应的查询结果。所述查询结果可以是数据表的列表或者字段的含义等。举例说明,可以设置查询关键字,当查询关键字为账户信息时,通过数据字典中保存的数据表、数据表字段的对应关系,可以查询到所有包含账户信息字段的数据表,并展示给用户。当然,还可以有其他应用,在此不进行限制。
在一些实施方式中,数据字典除了提供查询功能外,还可以根据数据字典历史版本的记录,提供便利的重新加载功能以及历史数据加载功能。例如,在一些实施方式中,所述方法还包括:响应于重新加载数据文件的命令,获取与所述数据文件对应的数据字典信息,加载所述数据文件。举例说明,若某些文件加载失败,这时可以重新加载所述数据文件。这时,会根据数据文件自动创建表,生成加载控制文件,加载所述数据文件到创建的数据表中。又如,在一些情形下,需要加载历史数据,这时可以根据保存的历史数据字典记录,加载历史数据文件。即,响应于加载历史数据文件的请求,获取与所述历史数据文件对应的数据字典信息,加载所述历史数据文件。
在本发明实施例中,提供了一种自动、灵活、高效的海量数据抽取、转换、加载方法,可以根据待加载的数据文件注册信息,配置数据字典信息,并根据配置的所述数据字典信息自动创建数据表以及生成加载控制文件模板,在接收待加载的数据文件后,根据待加载的数据文件注册信息、所述加载控制文件模板生成加载控制文件,利用所述加载控制文件将所述待加载的数据文件自动加载到创建的所述数据表中。本发明可以根据待加载的数据文件的数据结构配置数据字典信息,并通过配置的数据字典信息自动创建数据表,并实现数据文件的自动加载,可以批量处理结构化的海量数据,并提高了数据加载处理的效率和准确率。
为了便于本领域技术人员更清楚地理解本申请在具体场景下的实施方式,下面以一个具体示例对本申请实施方式进行介绍。需要说明的是,该具体示例仅为使得本领域技术人员更清楚地了解本发明,但本发明的实施方式不限于该具体示例。
参见图2,为本发明另一实施例提供的海量数据抽取、转换、加载方法流程图。
S201,根据待加载的数据文件注册信息,配置数据字典信息。
具体实现请参见图1所示实施例的实现,在此不赘述。
S202,根据配置的所述数据字典信息创建数据表以及生成加载控制文件模板。
定期触发或者在数据字典信息变更时触发生成建表任务及生成控制文件模版任务。任务执行线程扫描建表任务及生成控制模板任务并执行,自动化生成建表脚本并执行,加载控制文件模板。
S203,执行接收待加载的数据文件的任务。
扫描接收目录中源***传来的数据文件,对文件名进行规范检查、日期检查等,检查通过放入接收队列。接收成功后,更新文件状态表信息。根据文件文件状态表信息调度任务的执行。具体地,当判断当前文件处理状态符合预设条件时,获取所述文件处理状态序列中当前文件处理状态之后的文件处理状态,调度与所述当前文件处理状态之后的文件处理状态对应的任务。例如,文件处理状态序列包括接收、备份、预处理、归档、加载。若当前文件处理状态为接收成功,则获取接收状态后的文件处理状态为备份状态,调度备份待加载的数据文件的任务。以此类推,备份成功后,调度预处理任务;预处理成功后,调度归档任务;归档成功后,调度加载任务。需要说明的是,每一文件状态下可以包括若干子状态,每一任务下可以包括若干子任务。举例说明,对应预处理文件状态,可以包括解压、解包、转码等子处理状态,相应的预处理任务也可以包括解压、解包、转码等子任务。
在调度任务的执行时,可以根据预先配置的文件优先级,优先调度优先级高的文件的任务的执行。在调度任务的执行时,还可以根据当前任务占用的线程数、等待队列的线程数量动态调整所述任务占用的线程数。在一些实施方式中,还可以将各任务分配至两个以上的任务机上执行,所述两个以上的任务机共享磁盘或者磁盘组。
S204,执行备份待加载的数据文件的任务。
S205,执行对所述待加载的数据文件进行预处理的任务。
具体实现时,备份完成后执行文件的预处理相关流程,包括文件解包、解压、转码等,生成统一格式的数据文件放入文件处理队列。
S206,执行对所述待加载的数据文件进行归档处理的任务。
具体实现时,扫描文件处理队列,进行指定的文件信息校验,校验完成后移入归档目录,并记录文件归档信息。
S207,生成加载任务。
具体实现时,可以根据数据字典中配置的数据表加载信息获取待加载的数据表的列表,以便生成加载任务。
S208,执行所述加载任务。
S209,输出加载结果。
在本发明具体实现时,还可以包括监控模块,用于监控数据接收、备份、校验、归档和加载的过程和结果、监控创建数据表和生成控制文件过程、监控执行过程中各阶段线程数等。
进一步地,还可以根据各任务执行的过程和结果,生成加载日志。
进一步地,还可以根据分析加载结果,生成监控表。所述监控表例如可以提示用户接收文件的数量、加载成功的文件数量、加载失败的文件数量等。
本发明实施例中,通过文件状态自动驱动、调度任务机制、线程数动态分配、优先级设置、缓存机制、数据字典标准化和结构化管理,实现了自动灵活高效的ETL处理流程,支持应用***高效处理海量数据。
参见图3,为本发明一实施例提供的海量数据抽取、转换、加载装置示意图。
一种海量数据抽取、转换、加载装置300,包括:
配置单元301,用于根据待加载的数据文件注册信息,配置数据字典信息;
创建单元302,用于根据配置的所述数据字典信息创建数据表以及生成加载控制文件模板;
接收单元303,用于执行接收待加载的数据文件的任务;
加载单元304,用于执行对所述待加载的数据文件进行加载的任务;其中,所述执行对所述待加载的数据文件进行加载的任务包括:根据待加载的数据文件注册信息、所述加载控制文件模板生成加载控制文件,利用所述加载控制文件将所述待加载的数据文件加载到创建的所述数据表中。
其中,所述配置单元具体用于:
根据待加载的数据文件注册信息,配置数据表信息、数据表字段信息以及数据文件信息;所述数据表信息、数据表字段信息以及数据文件信息与所待加载的数据文件注册信息具有对应关系。
其中,所述创建单元具体用于:
根据所述数据字典信息生成创建数据表任务以及生成加载控制文件模板任务,执行所述创建数据表任务以及生成加载控制文件模板任务,创建数据表以及生成加载控制文件模板;其中,创建的所述数据表与所述数据表信息具有对应关系。
其中,所述装置还包括:
预处理单元,用于在接收待加载的数据文件之后,执行对所述待加载的数据文件进行预处理的任务。
其中,所述预处理单元包括下述中的任意一个或多个子单元:
解包子单元,用于对所述待加载的数据文件进行解包处理;
解压子单元,用于对所述待加载的数据文件进行解压处理;
转码子单元,用于对所述待加载的数据文件进行转码处理。
其中,所述装置还包括:
归档单元,用于执行对所述待加载的数据文件进行归档处理的任务;所述执行对所述待加载的数据文件进行归档处理的任务包括:对所述待加载的数据文件进行文件信息校验处理,将校验通过的数据文件进行归档处理,保存文件归档信息。
其中,所述加载单元具体用于:
根据待加载的数据文件注册信息,对所述加载控制文件模板实例化,生成与所述待加载的数据文件对应的加载控制文件。
其中,所述加载单元具体用于:
根据所述待加载的数据文件注册信息与所述数据表信息的对应关系、所述数据表信息以及创建的数据表的对应关系,利用所述加载控制文件将所述待加载的数据文件加载到与所述待加载的数据文件对应的数据表中。
其中,所述装置还包括:
任务调度单元,用于获取文件状态表信息,根据所述文件状态表信息调度任务的执行;所述任务包括所述接收待加载的数据文件的任务、对所述待加载的数据文件进行预处理的任务、对所述待加载的数据文件进行归档的任务、所述对所述待加载的数据文件进行加载的任务中的一种或多种。
其中,所述任务调度单元具体用于:
当判断当前文件处理状态符合预设条件时,获取文件处理状态序列中当前文件处理状态之后的文件处理状态,调度与所述当前文件处理状态之后的文件处理状态对应的任务。
其中,所述任务调度单元具体用于:
根据预先配置的文件优先级,优先调度优先级高的文件的任务的执行。
其中,所述装置还包括:
线程调整单元,用于在调度任务的执行时,根据当前任务占用的线程数、等待队列的线程数量动态调整所述任务占用的线程数。
其中,所述装置还包括:
任务分配单元,用于将所述任务分配至两个以上的任务机上执行,所述两个以上的任务机共享磁盘或者磁盘组。
其中,本发明装置各单元或模块的设置可以参照图1至图2所示的方法而实现,在此不赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (20)
1.一种海量数据抽取、转换、加载方法,其特征在于,包括:
根据待加载的数据文件注册信息,配置数据字典信息;
根据配置的所述数据字典信息创建数据表,以及根据配置的所述数据字典信息生成加载控制文件模板;
执行接收待加载的数据文件的任务;
执行对所述待加载的数据文件进行加载的任务;其中,所述执行对所述待加载的数据文件进行加载的任务包括:根据待加载的数据文件注册信息、所述加载控制文件模板生成加载控制文件,利用所述加载控制文件将所述待加载的数据文件加载到创建的所述数据表中。
2.根据权利要求1所述的方法,其特征在于,所述根据待加载的数据文件注册信息,配置数据字典信息包括:
根据待加载的数据文件注册信息,配置待加载的数据文件注册信息数据表信息、数据表字段信息以及数据文件信息;所述数据表信息、数据表字段信息以及数据文件信息与所述待加载的数据文件注册信息具有对应关系。
3.根据权利要求2所述的方法,其特征在于,所述根据配置的所述数据字典信息创建数据表,以及根据配置的所述数据字典信息生成加载控制文件模板包括:
根据所述数据字典信息生成创建数据表任务以及生成加载控制文件模板任务,执行所述创建数据表任务以及生成加载控制文件模板任务,创建数据表以及生成加载控制文件模板;其中,创建的所述数据表与所述数据表信息具有对应关系。
4.根据权利要求3所述的方法,其特征在于,所述根据所述数据字典信息生成创建数据表任务以及生成加载控制文件模板任务包括:
根据所述数据字典信息定期触发生成创建数据表任务以及生成加载控制文件模板任务;或者,
当所述数据字典信息发生变化时,触发生成创建数据表任务以及生成加载控制文件模板任务。
5.根据权利要求1所述的方法,其特征在于,在接收待加载的数据文件之后,所述方法还包括:
执行对所述待加载的数据文件进行预处理的任务;
其中,所述对所述待加载的数据文件进行预处理包括下述中的任意一个或多个步骤:
对所述待加载的数据文件进行解包处理;
对所述待加载的数据文件进行解压处理;
对所述待加载的数据文件进行转码处理。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
执行对所述待加载的数据文件进行归档处理的任务;所述执行对所述待加载的数据文件进行归档处理的任务包括:对所述待加载的数据文件进行文件信息校验处理,将校验通过的数据文件进行归档处理,保存文件归档信息。
7.根据权利要求1所述的方法,其特征在于,所述根据待加载的数据文件注册信息、所述加载控制文件模板生成加载控制文件包括:
根据待加载的数据文件注册信息,对所述加载控制文件模板实例化,生成与所述待加载的数据文件对应的加载控制文件。
8.根据权利要求3所述的方法,其特征在于,所述利用所述加载控制文件将所述待加载的数据文件加载到创建的所述数据表中包括:
根据所述待加载的数据文件注册信息与所述数据表信息的对应关系、所述数据表信息以及创建的数据表的对应关系,利用所述加载控制文件将所述待加载的数据文件加载到与所述待加载的数据文件对应的数据表中。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取文件状态表信息,根据所述文件状态表信息调度任务的执行;所述任务包括所述接收待加载的数据文件的任务、对所述待加载的数据文件进行预处理的任务、对所述待加载的数据文件进行归档的任务、所述对所述待加载的数据文件进行加载的任务中的一种或多种。
10.根据权利要求9所述的方法,其特征在于,所述文件状态表包括当前文件处理状态、文件处理状态序列,所述根据所述文件状态表信息调度任务的执行包括:
当判断当前文件处理状态符合预设条件时,获取所述文件处理状态序列中当前文件处理状态之后的文件处理状态,调度与所述当前文件处理状态之后的文件处理状态对应的任务。
11.根据权利要求9所述的方法,其特征在于,所述根据所述文件状态表信息调度任务的执行包括:
根据预先配置的文件优先级,优先调度优先级高的文件的任务的执行。
12.根据权利要求9所述的方法,其特征在于,所述方法还包括:
在调度任务的执行时,根据当前任务占用的线程数、等待队列的线程数量动态调整所述任务占用的线程数。
13.根据权利要求9所述的方法,其特征在于,所述方法还包括:
将所述任务分配至两个以上的任务机上执行,所述两个以上的任务机共享磁盘或者磁盘组。
14.一种海量数据抽取、转换、加载装置,其特征在于,包括:
配置单元,用于根据待加载的数据文件注册信息,配置数据字典信息;
创建单元,用于根据配置的所述数据字典信息创建数据表,以及根据配置的所述数据字典信息生成加载控制文件模板;
接收单元,用于执行接收待加载的数据文件的任务;
加载单元,用于执行对所述待加载的数据文件进行加载的任务;其中,所述执行对所述待加载的数据文件进行加载的任务包括:根据待加载的数据文件注册信息、所述加载控制文件模板生成加载控制文件,利用所述加载控制文件将所述待加载的数据文件加载到创建的所述数据表中。
15.根据权利要求14所述的装置,其特征在于,所述创建单元具体用于:
根据所述数据字典信息生成创建数据表任务以及生成加载控制文件模板任务,执行所述创建数据表任务以及生成加载控制文件模板任务,创建数据表以及生成加载控制文件模板。
16.根据权利要求14所述的装置,其特征在于,所述加载单元具体用于:
根据待加载的数据文件注册信息,对所述加载控制文件模板实例化,生成与所述待加载的数据文件对应的加载控制文件。
17.根据权利要求14或16所述的装置,其特征在于,所述加载单元具体用于:
根据所述待加载的数据文件注册信息与所述数据表信息的对应关系、所述数据表信息以及创建的数据表的对应关系,利用所述加载控制文件将所述待加载的数据文件加载到与所述待加载的数据文件对应的数据表中。
18.根据权利要求14所述的装置,其特征在于,所述装置还包括:
任务调度单元,用于获取文件状态表信息,根据所述文件状态表信息调度任务的执行;所述任务包括所述接收待加载的数据文件的任务、对所述待加载的数据文件进行预处理的任务、对所述待加载的数据文件进行归档的任务、所述对所述待加载的数据文件进行加载的任务中的一种或多种。
19.根据权利要求18所述的装置,其特征在于,所述装置还包括:
线程调整单元,用于在调度任务的执行时,根据当前任务占用的线程数、等待队列的线程数量动态调整所述任务占用的线程数。
20.根据权利要求18所述的装置,其特征在于,所述装置还包括:
任务分配单元,用于将所述任务分配至两个以上的任务机上执行,所述两个以上的任务机共享磁盘或者磁盘组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610192563.4A CN105808778B (zh) | 2016-03-30 | 2016-03-30 | 一种海量数据抽取、转换、加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610192563.4A CN105808778B (zh) | 2016-03-30 | 2016-03-30 | 一种海量数据抽取、转换、加载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105808778A CN105808778A (zh) | 2016-07-27 |
CN105808778B true CN105808778B (zh) | 2019-04-26 |
Family
ID=56459112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610192563.4A Active CN105808778B (zh) | 2016-03-30 | 2016-03-30 | 一种海量数据抽取、转换、加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105808778B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107784039A (zh) * | 2016-08-31 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 一种数据加载方法、装置及*** |
CN109325053A (zh) * | 2018-06-29 | 2019-02-12 | 平安科技(深圳)有限公司 | 报表***的数据处理方法、装置及计算机可读存储介质 |
CN109299032B (zh) * | 2018-10-25 | 2019-10-01 | 掌阅科技股份有限公司 | 数据分析方法、电子设备及计算机存储介质 |
CN109542875B (zh) * | 2018-11-20 | 2021-09-24 | 中国银行股份有限公司 | 一种配置文件的生成方法及装置 |
CN109542878B (zh) * | 2018-11-21 | 2021-03-09 | 广州方硅信息技术有限公司 | 一种列表创建方法及装置 |
CN110851520A (zh) * | 2019-11-19 | 2020-02-28 | 中国银行股份有限公司 | 数据加载方法及*** |
CN113076320A (zh) * | 2021-04-20 | 2021-07-06 | 北京沃东天骏信息技术有限公司 | 配置数据表的方法、装置、设备和计算机可读介质 |
CN113626514B (zh) * | 2021-10-12 | 2022-02-25 | 中国光大银行股份有限公司 | 一种自动化的数据加载方法及装置 |
CN115543977B (zh) * | 2022-09-29 | 2024-07-19 | 河北雄安睿天科技有限公司 | 一种供水行业数据清洗方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904952A (zh) * | 2012-10-12 | 2013-01-30 | 北京锐安科技有限公司 | 一种自适应性的高效处理海量数据入库的***及方法 |
CN103559217A (zh) * | 2013-10-17 | 2014-02-05 | 北京航空航天大学 | 一种面向异构数据库的海量组播数据入库实现方法 |
CN103853713A (zh) * | 2012-11-28 | 2014-06-11 | 成都勤智数码科技股份有限公司 | 海量数据高效入库方法 |
CN104298779A (zh) * | 2014-11-04 | 2015-01-21 | 中国银行股份有限公司 | 海量数据加工的处理方法和*** |
CN104657462A (zh) * | 2015-02-10 | 2015-05-27 | 北京宇航***工程研究所 | 一种海量测量数据准实时入库方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4687253B2 (ja) * | 2005-06-03 | 2011-05-25 | 株式会社日立製作所 | ストリームデータ処理システムのクエリ処理方法 |
-
2016
- 2016-03-30 CN CN201610192563.4A patent/CN105808778B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904952A (zh) * | 2012-10-12 | 2013-01-30 | 北京锐安科技有限公司 | 一种自适应性的高效处理海量数据入库的***及方法 |
CN103853713A (zh) * | 2012-11-28 | 2014-06-11 | 成都勤智数码科技股份有限公司 | 海量数据高效入库方法 |
CN103559217A (zh) * | 2013-10-17 | 2014-02-05 | 北京航空航天大学 | 一种面向异构数据库的海量组播数据入库实现方法 |
CN104298779A (zh) * | 2014-11-04 | 2015-01-21 | 中国银行股份有限公司 | 海量数据加工的处理方法和*** |
CN104657462A (zh) * | 2015-02-10 | 2015-05-27 | 北京宇航***工程研究所 | 一种海量测量数据准实时入库方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105808778A (zh) | 2016-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105808778B (zh) | 一种海量数据抽取、转换、加载方法及装置 | |
US11340803B2 (en) | Method for configuring resources, electronic device and computer program product | |
JP6695984B2 (ja) | マルチタスクスケジューリング方法、システム、アプリケーションサーバ及びコンピュータの読み取り可能な記憶媒体 | |
CN106919449B (zh) | 一种计算任务的调度控制方法及电子设备 | |
CN109901918B (zh) | 一种处理超时任务的方法和装置 | |
CN102880503A (zh) | 数据分析***及数据分析方法 | |
US10305817B1 (en) | Provisioning system and method for a distributed computing environment using a map reduce process | |
CN109614271B (zh) | 多个集群数据一致性的控制方法、装置、设备及存储介质 | |
US10855750B2 (en) | Centralized management of webservice resources in an enterprise | |
WO2015085736A1 (en) | Method and system for accessing a distributed file system | |
CN114443294B (zh) | 大数据服务组件部署方法、***、终端及存储介质 | |
CN111258726A (zh) | 任务调度方法和装置 | |
US9436509B2 (en) | Pre-provisioned web application platform site collections | |
CN111813758A (zh) | 数据库文件分布式分析方法、装置、服务器及存储介质 | |
CN108958933B (zh) | 任务执行器的配置参数更新方法、装置及设备 | |
CN109766131B (zh) | 基于多线程技术实现软件智能化自动升级的***及方法 | |
CN112948096A (zh) | 一种批量调度方法、装置和设备 | |
CN104700255B (zh) | 多进程处理方法、装置和*** | |
CN111767126A (zh) | 分布式批量处理的***和方法 | |
US8347299B2 (en) | Association and scheduling of jobs using job classes and resource subsets | |
CN105760215A (zh) | 基于映射规约模型分布式文件***作业的运行方法 | |
CN112148705A (zh) | 数据迁移的方法和装置 | |
CN115328496A (zh) | 一种文件生成方法及装置 | |
EP3657331B1 (en) | Module assignment management | |
CN114116245A (zh) | 数据处理方法、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |