面向多源异构数据源的接口系统、通用接口及其实现方法与流程

    专利查询2022-07-07  233



    1.本发明属于多源异构数据源的接口技术领域,尤其是涉及一种面向多源异构数据源的接口系统、通用接口及其实现方法。


    背景技术:

    2.大数据的应用需求促进了大数据技术的蓬勃发展。近年来围绕着大数据处理的各个层面,大量的软件系统、技术被开发与应用,百花齐放,形成了大数据技术的生态体系,但同时也存在一些问题和不足之处,主要在于,目前使用的系统普遍存在大数据架构松散,缺少统一的底层设计,主次模糊,数据的核心地位不突出等问题。如典型的数据湖系统deltalake系统,它作为一个集大成的数据源,向下只能支持为数不多的底层数据源,向上只能支持有限的应用(只支持spark),不支持数据源或应用的扩展,缺乏顶层设计,可扩展性、可移植性很弱。


    技术实现要素:

    3.本发明的目的是针对上述问题,提供一种面向多源异构数据源的接口系统、通用接口及其实现方法。
    4.为达到上述目的,本发明采用了下列技术方案:一种面向多源异构数据源的通用接口实现方法,包括以下方法:新建一个工程,并在工程内建立一个通用接口;在通用接口中建立相互独立的数据集合和操作集合;其中,数据集合被定义为能够被具体数据类型继承,且包括数据基类和继承数据基类的二级数据类;操作集合包括操作基类和继承操作基类的二级操作类;且所述的二级操作类被定义有其适用的具体数据类型以实现数据集合与操作集合的解耦与正交。
    5.在上述的面向多源异构数据源的通用接口实现方法中,所述的二级数据类包括结构化数据、半结构化数据、非结构化数据和二进制数据。
    6.在上述的面向多源异构数据源的通用接口实现方法中,所述的数据集合采用面向对象编程方法将数据抽象为类,并将数据划分为多个二级数据类。
    7.在上述的面向多源异构数据源的通用接口实现方法中,所述的二级操作类包括构造器、生产器、观察器和变值器。
    8.在上述的面向多源异构数据源的通用接口实现方法中,所述的操作集合采用面向切面编程方法将操作抽象为接口,并以此抽象接口的形式定义二级操作类所适用的具体数据类型以与相应数据源抽象对接。
    9.一种基于上述方法实现的面向多源异构数据源的通用接口,包括相互解耦且正交的操作抽象模块和数据抽象模块,所述的操作抽象模块包括操作基类、继承操作基类的多
    个二级操作类和定义二级操作类所适用的具体数据类型的抽象接口,所述的数据抽象模块被定义为能够被具体数据类型继承且包括数据基类和继承数据基类的多个二级数据类。
    10.一种面向多源异构数据源的接口系统,包括所述的通用接口和与通用接口同位于所述工程中且继承所述通用接口的自定义接口,所述的通用接口包括相互解耦且正交的操作抽象模块和数据抽象模块,所述的操作抽象模块包括操作基类、继承操作基类的多个二级操作类和定义二级操作类所适用的具体数据类型的抽象接口,所述的数据抽象模块被定义为能够被具体数据类型继承且包括数据基类和继承数据基类的多个二级数据类,所述的自定义接口包括多个针对具体数据类型且继承相应二级数据类的接口子类,本接口系统通过所述的接口子类与相应数据源物理对接。
    11.在上述的面向多源异构数据源的接口系统中,所述的接口子类还用于指定该类具体数据类型所能够进行的操作。
    12.在上述的面向多源异构数据源的接口系统中,所述结构化数据的接口子类包括关系型数据库接口,主要支持与db2、oracle、mysql、sqlserver等关系型数据库的连接;所述半结构化数据的接口子类包括非关系型数据库接口,主要支持与mongo、neo4j、hbase、redis等非关系型数据库的连接;所述非结构化数据的接口子类包括文件、文本、视频、音频和图像中的任意一种或多种接口;所述二进制数据的接口子类包括二进制文件和编码数据中的任意一种或多种接口。
    13.本发明的优点在于:提供以数据与操作为核心的通用接口,突出数据的核心地位,并对共性功能沉淀,作为接口系统的顶层架构,支持用户自定义继承通用接口并实现自身独有的接口,用户在使用时,直接针对需求动态增加或减少数据类型即可实现数据类型的动态增加减少,具有很强的可扩展性和可移植性;本方案中数据和操作形成两个独立的集合,并将操作抽象为接口,实现数据与操作的解耦和正交,数据和操作能够自由地组合,不同数据类型的相同操作可以复用,最大限度实现接口的复用;本方案的通用接口架构设计简单,不依赖于任何体系结构,可以实现对任意数据形式和数据源操作;本方案基于通用接口实现的接口系统独立存在,不依赖任何体系结构,增加数据源和数据应用直接在接口系统上扩展即可,无需对接口系统再做开发,能够实现按需定制,实现源源不断的扩展;本方案的接口系统能够对接各种系统,扩充和完善上层接口和下层接口,使得各种系统在底层数据源方面从支持为数不多的底层数据源扩展为可以支持结构化、半结构化、非结构化、二进制等数据类型,每种数据类型又支持多种具体数据源,在上层应用方面,从只支持部分应用(如现有技术中delta lake只支持spark)扩展为支持关系型数据库、非关系型数据库、spark串口、蓝牙等数十种应用,在一定程度上实现了对下管理数据资源,对上提供数据服务的功能。
    附图说明
    14.图1为本发明面向多源异构数据源的通用接口的代码结构图;图2为本发明面向多源异构数据源的接口系统中操作与数据的正交原理图;图3为本发明面向多源异构数据源的接口系统基于deltalake实现的操作系统的代码结构图;图4为对数据抽象成类的示意图;图5为操作抽象成接口的示意图;图6为针对数据湖系统开发的接口系统的自定义接口代码结构图;图7为将本发明接口系统应用于任意数据源实现的操作系统架构图;图8为将本发明接口系统应用于deltalake实现的操作系统架构图;图9为将本发明接口系统应用于deltalake的数据流入湖图;图10为将本发明接口系统应用于deltalake的数据流出湖图;图11为deltalake数据湖系统在接入本接口系统前后所支持的数据源和应用的对比图。
    具体实施方式
    15.下面结合附图本方案进行进一步说明:实施例一如图1和图2所示,本实施例提供了一种面向多源异构数据源的通用接口,包括相互解耦且正交的操作抽象模块和数据抽象模块,操作抽象模块提供操作集合,数据抽象模块提供数据集合,以实现数据集合与操作集合的解耦,所述的操作抽象模块包括操作基类和继承操作基类的多个二级操作类,所述的数据抽象模块包括数据基类和继承数据基类的多个二级数据类。其具体实现方法包括:新建一个工程,并在工程内建立一个通用接口;在通用接口中建立相互独立的数据集合和操作集合;其中,数据集合被定义为能够被具体数据类型继承,且数据集合包括数据基类和继承数据基类的二级数据类;操作集合包括操作基类和继承操作基类的二级操作类;且所述的二级操作类被定义有其适用的具体数据类型以实现数据集合与操作集合的正交。数据和操作形成两个独立的集合,能够自由地组合,不同数据类型的相同操作可以复用,最大限度实现接口的复用。而且数据与操作分别各自地以集合的形式存在,不仅数据类型可以自己定义、动态增加或减少,各种数据类型的操作类型,及操作类型所支持的数据类型也可以动态增加、减少。
    16.如图3所示,本实施例新建了一个[aibd-os-system.git]工程,并在该工程下将数据基类、二级数据类、操作基类、二级操作类实现为core,该core即通用接口,能够被具体数据类型继承,用户在开发接口系统时,针对具体的数据源将相应的自定义接口移植到该新建的工程中并继承通用接口即可(或者直接在该工程中开发相应的自定义接口并继承通用接口)。
    [0017]
    具体地,如图4所示,所述的二级数据类包括结构化数据、半结构化数据、非结构化
    数据和二进制数据,且如图5所示,数据集合采用面向对象编程方法(oop)将数据抽象为类,并将数据划分为多个二级数据类;二级操作类包括构造器、生产器、观察器和变值器,且操作集合采用面向切面编程方法(aop)将操作抽象为接口并以此抽象接口的形式定义二级操作类所适用的具体数据类型以与相应数据源抽象对接。
    [0018]
    本实施例的通用接口架构设计简单,不依赖于任何体系结构,可以实现对任意数据形式和数据源操作。同时以数据与操作为核心,突出数据的核心地位,通过能够被继承的数据基类和二级数据类对接口的共性功能沉淀,作为接口系统顶层架构,支持用户自定义继承通用接口并实现自身独有的接口,如需要对接文件型系统的数据源时,则继承非结构化扩展文件接口即可,如需要对接比较全面的数据源(如数据湖),则继承所有二级数据类,并扩展各二级数据类的具体数据源的接口,将操作集合与数据集合解耦并存在core中,通过具体数据源的接口(即实施例二中的接口子类)与数据源物理对接,通过抽象接口与数据源抽象对接,从而使数据与操作在使用数据源过程中实现对接,如数据接口的接口子类有关系型数据库接口,在对关系型数据进行操作时,直接通过抽象接口对接到具体的操作,数据本身无需携带操作。针对已有自定义接口的,用户在使用时,直接针对需求在core所在工程中动态增加或减少具体数据类型即可实现数据类型的动态增加减少,具有很强的可扩展性和可移植性,能够被适用于数据湖系统、文件系统、数据库等所有数据源和应用。
    [0019]
    实施例二本实施例提出了一种面向多源异构数据源的接口系统,包括实施例一中所述的通用接口和继承所述通用接口的自定义接口,所述的通用接口包括相互解耦且正交的操作抽象模块和数据抽象模块,所述的操作抽象模块包括操作基类、继承操作基类的多个二级操作类,所述的数据抽象模块包括数据基类和继承数据基类的多个二级数据类,所述的自定义接口包括多个针对具体数据类型且继承相应二级数据类的接口子类,各接口子类打包为数据接口,本接口系统通过数据接口,即各对应的接口子类与相应数据源对接。
    [0020]
    图3中,sikuquanshu对应的文件为自定义接口。本实施例以deltalake数据湖系统作为数据源为例,如图6所示,自定义接口包括具有继承于结构化数据structured、半结构化数据semistructured、非结构化数据unstructured和二进制数据binary四类二级数据类的多个接口子类,每个二级数据类对应有多种接口子类,具体地,结构化数据的接口子类包括各类关系数据库sql,如db2、oracle、mysql、sqlserver中的任意一个或多个接口;半结构化数据的接口子类包括各类非关系型数据库nosql,如mongo、neo4j、hbase、redis中的任意一种或多种接口,所支持的对应格式为csv、xml、json、html等;非结构化数据的接口子类包括文件、文本、视频、音频和图像中的任意一种或多种接口;二进制数据的接口子类包括二进制文件和编码数据中的任意一种或多种接口。
    [0021]
    如图7所示,本接口系统能够实现源源不断的扩展,用户能够根据数据源的实际情况按需定制。同时,本接口系统通过用户自定义能够被应用于任意数据源。
    [0022]
    如图8所示,本实施例的接口系统具有较全面的数据接口,能够被应用于集成各种数据的数据湖系统。如图9所示,本实施例将接口系统应用于deltalake数据湖系统,deltalake数据湖系统作为一个jar包引用即可,各类关系型数据库、非关系型数据库、非结构数据文件和二进制数据文件等数据源可以通过本接口系统被数据湖系统读取,同样地,
    数据湖系统读取到的关系结构化数据、半结构化数据、非结构化数据和二进制数据等能够通过本接口系统存储到相应的关系数据库、非关系型数据库、非结构化数据文件下和二进制数据文件下等。使本接口系统连接于deltalake,即可使得deltalake数据湖系统在底层数据源方面从支持为数不多的底层数据源扩展为可以支持结构化、半结构化、非结构化、二进制等数据类型,每种数据类型又支持多种具体数据源,如可以支持hadoop分布式系统、minio文件、azure数据库、ceph存储数据、本地fs、远程fs、二进制数据源等底层数据源;在上层应用方面,从只支持部分应用(如现有技术中delta lake只支持spark)扩展为支持关系型数据库、非关系型数据库、spark串口、蓝牙等数十种应用,实现了对下管理数据资源(使deltalake支持多种底层数据源类型,能够使deltalake从各种数据源读取数据),对上提供数据服务的操作系统功能(能够使deltalake支持将读取的数据存储到各种数据库、数据文件)。
    [0023]
    当然,本实施例的接口系统也能够被应用于其他数据湖系统,如hudi等。
    [0024]
    进一步地,本实施例中,接口子类还用于指定该类具体数据类型所能够进行的操作,用户在自定义扩展接口子类时可以进一步对相应的接口子类指定相应的操作,用户在基于通用接口开发接口系统或操作系统时,若自定义接口子类指定操作的,可以对接口子类指定相应的操作或在抽象接口中指定操作作用于具体数据,或同时双向指定。 本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
    [0025]
    尽管本文较多地使用了通用接口、数据集合、操作集合、数据基类、二级数据类、操作基类、二级操作类、操作抽象模块、数据抽象模块等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。
    转载请注明原文地址:https://tc.8miu.com/read-1092.html

    最新回复(0)