一种整合数据源中的数据的方法及装置与流程

文档序号:17288565发布日期:2019-04-03 03:46阅读:231来源:国知局
一种整合数据源中的数据的方法及装置与流程

本发明涉及大数据处理技术领域,尤其涉及一种整合数据源中的数据的方法及装置。



背景技术:

现有技术在对不同格式的数据(例如,各种格式的数据文件、json文件、xml文件等标准的数据文件格式)进行整合时,通常都是先将这些不同格式的数据都统一为一种数据格式(例如,json文件、xml文件等标准的数据文件格式中的一种或利用数据库临时表),然后再对这种统一格式的数据进行数据整合处理。

图1示出了现有技术所采用的一种数据整合方案。

如图1所示,这种现有技术方案首先将各种不同格式的源数据(即,数据a、数据b、数据c)分别抽取到一个数据平台中;然后在该数据平台中使用对应于不同格式数据的转换器(即,转换器a、转换器b、转换器c)将相应的源数据转换为统一格式的数据(即,数据x、数据y、数据z)并将其输入至第三方系统中;最后在第三方系统中对这些统一格式的数据进行映射、整合操作(例如,数据聚合、数据计算、数据清洗等操作)。

这种现有技术方案存在以下缺点:

1、仅仅适用于离线的、大量的、非实时性的数据整合操作。

2、需要同时维护数据平台和第三方系统,增加了维护成本。

3、数据平台和第三方系统之间需要进行交互,数据整合时的执行效率高度依赖于交互时的传输效率,导致高延迟数据处理。

4、由于第三方系统特有数据格式制约,导致转换器功能单一,不能自由地在不同系统之间直接实现数据转换,不能快速适应新系统数据格式,缺少灵活性。

5、一旦源数据结构变化,就需要调整整个流程,修改每个转换器,以及第三方系统的数据整合方式,增加数据处理流程的维护成本,在极端情况下,甚至需要重新设计数据处理流程。

图2示出了现有技术所采用的另一种数据整合方案。

如图2所示,这种现有技术方案无需借助第三方系统,数据提取、转换、整合的操作都在同一个数据平台上进行。尽管相对于图1所示的技术方案在维护成本、处理延迟等方面有了一定的改善,却仍然存在以下缺点:

1、需要先读取数据到数据平台之后再进行数据格式的统一,然后再进行数据整合处理。与图1所示的技术方案类似,在本地同样需要提前进行数据格式转换,因此,势必需要消耗本地的系统内存和磁盘资源,仍然可能存在效率低下的问题。

2、整合数据之前需将数据全部读取到数据平台中,势必会增加数据平台的负载压力。

3、由于每种不同的数据源都需要进行数据格式的统一,如果修改数据格式,则需要同时修改多个转换器流程,增加了流程设计难度以及维护成本。

因此,为了解决上述技术问题,需要提出新的技术方案。



技术实现要素:

根据本发明的整合数据源中的数据的方法,包括:

获取数据源和/或数据整合目标的数据记录的元数据信息;

基于数据源和/或数据整合目标的格式和元数据信息,从数据源提取数据记录,对所提取出的数据记录进行整合,得到相应的整合数据,

其中,元数据信息包括字段信息,数据记录包括具体的字段值。

根据本发明的整合数据源中的数据的方法,还包括:

定义元数据信息。

根据本发明的整合数据源中的数据的方法,其基于数据源和/或数据整合目标的格式和元数据信息,从数据源提取数据记录,对所提取出的数据记录进行整合,得到相应的整合数据的步骤包括:

使用第一接口,读取数据源和/或数据整合目标的格式和元数据信息;和/或

使用不同的第二接口,从数据源提取数据记录;和/或

从元数据信息中选择需要整合的具体元数据信息,将所选择的具体元数据信息所对应的数据记录中的数据整合在一起,作为相应的整合数据。

根据本发明的整合数据源中的数据的方法,其数据源和/或数据整合目标包括下列中的至少一种:csv文件、json文件、xml文件、excel文件、医疗行业标准hl7文件、数字交换文件edi。

根据本发明的整合数据源中的数据的方法,其从元数据信息中选择需要整合的具体元数据信息的步骤包括:

使用表达式来指定所选择的数据源和/或数据整合目标、所选择的数据源和/或数据整合目标的数据字段名和/或针对数据的具体操作,

其中,具体操作包括类型转换操作、格式转换操作、字符串操作、算术运算操作、逻辑运算操作。

根据本发明的整合数据源中的数据的装置,包括:

元数据信息获取模块,用于获取数据源和/或数据整合目标的数据记录的元数据信息;

数据整合模块,用于基于数据源和/或数据整合目标的格式和元数据信息,从数据源提取数据记录,对所提取出的数据记录进行整合,得到相应的整合数据,

其中,元数据信息包括字段信息,数据记录包括具体的字段值。

根据本发明的整合数据源中的数据的装置,还包括:

元数据信息定义模块,用于定义元数据信息。

根据本发明的整合数据源中的数据的装置,其数据整合模块还用于:

使用第一接口,读取数据源和/或数据整合目标的格式和元数据信息;和/或

使用不同的第二接口,从数据源提取数据记录;和/或

从元数据信息中选择需要整合的具体元数据信息,将所选择的具体元数据信息所对应的数据记录中的数据整合在一起,作为相应的整合数据。

根据本发明的整合数据源中的数据的装置,其数据源和/或数据整合目标包括下列中的至少一种:csv文件、json文件、xml文件、excel文件、医疗行业标准hl7文件、数字交换文件edi。

根据本发明的整合数据源中的数据的装置,其数据整合模块还用于:

使用表达式来指定所选择的数据源和/或数据整合目标、所选择的数据源和/或数据整合目标的数据字段名和/或针对数据的具体操作,

其中,具体操作包括类型转换操作、格式转换操作、字符串操作、算术运算操作、逻辑运算操作。

根据本发明的上述技术方案,提供了统一的标准化读写数据的元数据信息配置,无需统一数据格式就能实现不同格式的数据之间的转换、映射和整合。

附图说明

并入到说明书中并且构成说明书的一部分的附图示出了本发明的实施例,并且与相关的文字描述一起用于解释本发明的原理。在这些附图中,类似的附图标记用于表示类似的要素。下面描述中的附图是本发明的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他的附图。

图1示出了现有技术所采用的一种数据整合方案。

图2示出了现有技术所采用的另一种数据整合方案。

图3示出了根据本发明的总体构思的数据整合方案。

图4示例性地示出了根据本发明的整合数据源中的数据的方法的示意流程图。

图5示例性地示出了根据本发明的整合数据源中的数据的装置的示意框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

针对背景技术中所提出的现有技术方案中存在的以上技术问题,本发明提出了新的技术方案。

图3示出了根据本发明的总体构思的数据整合方案。

如图3所示,根据本发明的总体构思的数据整合方案基于独特数据流式记录(record)方式来读写数据,不需要一次提取所有数据记录,而是采用数据流方式,边提取边处理的方式,且各种数据源的原始数据不需要经过本地的统一数据格式转换处理。即,可针对原始数据流的每条记录直接进行数据整合操作。

更具体地,在图3所示的数据组件(对应于图5所示的装置500)中,使用不同的元数据读取模块和数据接口服务(即,元数据a+数据接口、元数据b+数据接口、元数据c+数据接口)、替换了图2所示的现有技术方案中的数据提取和统一格式转换两个独立模块(即,转换器a+数据x、转换器b+数据y、转换器c+数据z)。

图3所示的新技术方案能够提高数据处理效率,减少业务流程维护成本,简化数据处理难度,增强业务流程灵活度。

为了使本领域技术人员更清楚地理解根据本发明的上述技术方案,下面将结合图4和图5来描述根据本发明的上述总体构思的方法和装置。

图4示例性地示出了根据本发明的整合数据源中的数据的方法的示意流程图。

如图4的实线框所示,根据本发明的整合数据源中的数据的方法,包括:

步骤s402:获取数据源和/或数据整合目标的数据记录的元数据信息;

步骤s404:基于数据源和/或数据整合目标的格式和元数据信息,从数据源提取数据记录,对所提取出的数据记录进行整合,得到相应的整合数据,

其中,元数据信息包括字段描述信息,数据记录包括具体的字段值。

例如,上述元数据信息可以是根据源数据的具体数据信息所定义的、标准的元数据信息。

例如,对应于步骤s404,可以执行以下具体操作:

基于由数据接口提取到的数据,提供数据记录整合操作,其中的配置信息均采用标准的json格式进行配置。

上述元数据定义和数据接口服务操作可以一起构成一个特定数据格式的数据读取服务操作(对应于一个服务操作模块)。例如,可以针对xml、json、csv(字符分隔值)等数据格式,只需开发一次该数据格式的数据服务操作过程,将来即可重复利用该数据服务操作(模块),并根据数据源所对应的数据记录中的数据信息的不同定义来驱动数据记录的提取操作。

根据本发明的上述技术方案,通过获取预先定义的、与数据源所对应的数据记录中的数据信息(例如,通过用于提供读取对应数据源中的数据的服务接口/函数来读取流式record数据的方式),然后(例如,通过数据接口)进行数据记录的同步提取和数据整合操作,从而减少了本地内存消耗,减少了负载压力,提高了效率,降低了流程设计难度,减少了维护成本。

可选地,如图4的虚线框所示,根据本发明的整合数据源中的数据的方法,还包括:

步骤s406:定义元数据信息。

例如,元数据信息可以采用json格式的avro模式(schema)规范来描述定义。

例如,当csv文件格式的一个数据源中包括以下原始数据记录时:

101,张三,1998-12-03

105,李四,1988-05-03

203,王五,2000-01-25

则可以采用avro模式规范来定义该csv文件格式的数据源的数据记录的以下元数据信息:

即,上述avro模式规范定义表示,将该csv文件格式的数据源中采用逗号分割的数据记录中的第一列映射为id字段,类型为长整型(long);将其第二列映射为名字(name)字段,类型为字符串(string)类型;将其第三列映射为出生日期(birth)字段,类型为字符串(string)。

同理,可以采用avro模式规范来定义如下json文件:

该json文件格式的数据源的数据记录的元数据信息的avro模式可定义为:

即,上述avro模式规范所表示的json文件格式的数据源中的每条数据记录包括三个字段:id字段为长整型(long)类型,地址(addr)字段为字符串(string)类型,邮编(post)字段为整型(int)类型。

因此,当源数据格式、字段有所变化时,仅需修改数据记录的元数据信息(即avro模式定义)即可,无需修改相应数据记录格式的提取数据操作接口(函数)服务。这与现有技术方案需要修改(例如,图1和图2中的)转换器a、b、c不同,当进行具体的数据读取时,针对该数据格式所实现的相应格式的数据提取服务,仅仅需要根据数据格式类型一次实现接口服务,无需重复开发相同数据类型的数据提取服务,比如针对xml提取服务,仅需开发一次针对xml数据提取服务。提取数据时仅仅依赖于提供给记录提取服务的数据记录的元数据信息,以及针对该数据格式所实现的特有格式读取的数据服务(该服务仅需只需开发一次,无需修改)。

例如,avro模式名为csv_person的csv格式文件中新增加了性别“sex”值,即内容为:

101,张三,1998-12-03,男

105,李四,1988-05-03,女

203,王五,2000-01-25,男

则在avro模式的“fields”下新增如下内容:

无需修改或再次实现csv文件格式的接口服务。

可选地,步骤s402包括:

使用第一接口,读取数据源和/或数据整合目标的格式和元数据信息;和/或

使用不同的第二接口,从数据源提取数据记录;和/或

从元数据信息中选择需要整合的具体元数据信息,将所选择的具体元数据信息所对应的数据记录中的数据整合在一起,作为相应的整合数据。

例如,可以通过以下接口(即,第一接口)声明来构建数据提取服务:

通过特定数据格式的数据服务接口构建相应数据格式的数据记录读取器,然后由读取器根据数据记录的avro模式定义来进行具体的数据解析读取操作。

其中,数据记录提取服务顶层接口为:

该数据读取服务顶层接口仅提供一个数据记录读取器的构建方法,用于基于数据流及预先定义好的数据记录avro模式定义来构建相应的记录读取器,记录读取器也是一顶层接口(即,第二接口),其声明为:

该记录读取器提供了两个方法,一个是逐条读取每条记录(record),并通过参数控制记录是否强制进行数据的类型转换,以及将多余的字段丢弃掉;一个是获得当前记录读取器的avro模式定义。

可选地,上述数据源和/或数据整合目标包括下列中的至少一种:csv文件、json文件、xml文件、excel文件、医疗行业标准hl7文件、数字交换文件edi。

例如,对于定义了元数据信息的上述csv格式的文件(其avro模式名为csv_person)和json格式的文件(其avro模式名为person_addr),可以通过它们各自的记录读取器接口服务来获得各自的每条数据记录中的数据,然后根据它们相应的元数据信息,对数据记录进行映射和整合操作。

例如,可以将这两个文件中id字段的值相同的两条数据记录整合成一条数据记录,进行整合后的(即,上述数据整合目标中的)数据所对应的avro模式定义为:

即,整合后的最终数据记录(其avro模式名为person)包括id、名字(name)、年龄(age)、地址(address)、邮编(post)这五个字段。

例如,可以针对不同数据源的数据格式,实现相应格式的数据读取服务接口。即,可以通过顶层的recordreader记录读取器来实现不同数据格式各自的记录读取器(例如,分别对应于csv文件格式的数据源、json文件格式的数据源、xml文件格式的数据源的csvrecordreader、jsonrecordreader、xmlrecordreader等读取器)。

可选地,数据源并不限于上述几种现有格式的常用数据源,还可以包括其他格式的数据源。

可选地,在步骤s402中,从元数据信息中选择需要整合的具体元数据信息的步骤包括:

使用表达式来指定所选择的数据源和/或数据整合目标、所选择的数据源和/或数据整合目标的数据字段名和/或针对数据的具体操作,

其中,上述具体操作包括类型转换操作、格式转换操作、字符串操作、算术运算操作、逻辑运算操作。

例如,可以采用以下表达式配置方式来进行配置,从而通过对上述csv格式的文件(其avro模式名为csv_person)和json格式的文件(其avro模式名为person_addr)进行整合,得出包括id、名字(name)、年龄(age)、地址(address)、邮编(post)这五个字段的最终整合数据记录(其avro模式名为person):

其中,“field”的值为相应的整合后字段名,“exp”的值为映射字段的表达式,通过计算“exp”指定的表达式值来设置整合记录中对应字段的值,比如表达式“${csv_person.id}”表示获得计算“csv_person”的avro模式下的数据记录字段名为id字段值的结果,即整合字段id值直接等同于“csv_person”avro模式对应的数据记录id值。

例如,还可以针对数据记录进行以下具体数值转换操作和计算操作:

对于类型转换,比如整型(int)的年龄字段(age),需要通过字符串(string)类型的出生日期(birth)字段进行转换得到,即通过获得当前年份减去birth字段值中的出生年份即得年龄值,则表达式为“${now(‘yyyy’)}-${csv_person.birth:format(‘yyyy’)}”,“yyyy”表示提取年份信息。

例如,对于简单的映射操作,本质上是通过计算表达式后的值赋予新的字段名来实现,比如整合的地址“address”字段来源于“person_addr”avro模式对应的json文件中的地址字段“addr”,则可以通过表达式“${person_addr.addr}”来简单地映射表示。

例如,类型或格式转换操作包括但不限于:转换为字符串操作“tostring”、字符串转换为大写“toupper”、字符串转换为小写“tolower”、转换为数字操作“tonumber”、以及日期转换操作“todate”和提取操作“format”。

例如,字符串操作包括但不限于:去除首位空格字符“trim”、截取部分字符“substring”、末尾添加“append”、添加头部“prepend”、替换字符“replace”、字符串长度“length”、字符串的相等“equals”、字符串的包含“contains”、字符串是否为空“isempty”、字符串的开头“startswith”、以及字符串的结尾“endswith”。

例如,数字算术操作包括但不限于:支持数字四则运算的加“+”(支持字符串,同append操作)、减“-”、乘“*”、除“/”、支持数字的大于“>”、小于“<”、等于“=”、不等“!=”、组合的“>=”、“<=”、以及取模“%”。

例如,逻辑运算操作包括但不限于:并且“and”、或者“or”、非“not”、条件选择“if…else…”。

图5示例性地示出了根据本发明的整合数据源中的数据的装置500的示意框图。

如图5的实线框所示,根据本发明的整合数据源中的数据的装置500包括:

元数据信息获取模块501,用于获取数据源和/或数据整合目标的数据记录的元数据信息;

数据整合模块503,用于基于数据源和/或数据整合目标的格式和元数据信息,从数据源提取数据记录,对所提取出的数据记录进行整合,得到相应的整合数据,

其中,元数据信息包括字段描述信息,数据记录包括具体的字段值。

可选地,如图5的虚线框所示,整合数据源中的数据的装置500还包括:

元数据信息定义模块505,用于定义元数据信息。

可选地,数据整合模块503还用于:

使用第一接口,读取数据源和/或数据整合目标的格式和元数据信息;和/或

使用不同的第二接口,从数据源提取数据记录;和/或

从元数据信息中选择需要整合的具体元数据信息,将所选择的具体元数据信息所对应的数据记录中的数据整合在一起,作为相应的整合数据。

可选地,数据源和/或数据整合目标包括下列中的至少一种:csv文件、json文件、xml文件、excel文件、医疗行业标准hl7文件、数字交换文件edi。

可选地,数据整合模块503还用于:

使用表达式来指定所选择的数据源和/或数据整合目标、所选择的数据源和/或数据整合目标的数据字段名和/或针对数据的具体操作,

其中,上述具体操作包括类型转换操作、格式转换操作、字符串操作、算术运算操作、逻辑运算操作。

可选地,(例如,集成了各种数据服务模块的)上述装置500可以被包含在一个统一的数据组件单元中,以降低业务流程的维护成本。

由于该数据组件单元具有数据整合功能,使数据处理过程变得容易且可控,提高了数据的实时处理效率,优化了业务流程。还可以将整合后的数据统一提供给其他数据业务组件来使用,从而完成数据整合业务的整体操作。

根据本发明的上述技术方案,具有以下优点:

1、对于不同的数据源,提供统一的标准化读写数据的元数据信息配置。即,无需统一数据格式就能实现(例如,不同格式的)数据之间的转换、映射整合。

2、通过数据的元数据信息提供对数据的同步筛选功能,从而可以优化数据的本地处理能力,缩减数据量,无需进行全量数据的处理,能够减少本地内存消耗,减少本地平台的负担和负载压力,提高了效率。

3、无需第三方平台作为临时数据存储容器,仅依托于当前的本地平台。能够降低流程设计难度,减少维护成本,减少学习成本,减少系统负担,提高数据处理速度。

4、支持数据字段对于兼容类型的数据进行自动隐式的转换,无需显式的进行类型转换操作。

5、可针对各种源数据提供数据服务,灵活方便地扩展任何数据格式,对于新的数据格式,只需要针对其进行一次性开发即可,无需重复开发即可重复利用,从而进一步提高了工作效率,降低了使用难度,减少了维护成本,使系统开发和维护人员能够专注于其他业务。

6、还可以将数据整合操作集成到一个数据组件单元中,使整个数据的整合操作达到原子级别,不需要经过过多的数据外部处理环节,一次性的数据处理,以进一步提高数据处理效率,进一步减少维护成本。

上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例的技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1