语义转换方法、引擎、电子设备和可读存储介质与流程

文档序号:29157941发布日期:2022-03-08 22:09阅读:155来源:国知局
语义转换方法、引擎、电子设备和可读存储介质与流程

1.本发明涉及数据处理技术领域,具体而言,涉及一种语义转换方法、引擎、电子设备和可读存储介质。


背景技术:

2.面对多源异构、错综复杂的多态数据,如何提升数据价值,成为当下大数据平台一个热门的命题,同时也是一个老大难的命题。基于这个目标,数据治理应运而生。数据治理的对象是元数据,并由此形成了数据标准化和数据质量管理。标准化是将数据从无序到有序的过程,在这个过程中,制定了大量的规则。这些定义好的规则需要作用于数据中,才能产生其价值,否则只能是纸上谈兵。而能将业务规则作用于数据的方法就是etl(extract-transform-load,数据仓库技术)。
3.etl作为数据仓库的核心模块之一,它的本质是对数据的清洗、转换、聚合等加工处理,以形成组织统一的数据结构,从而实现数据价值。因此,从本质上,数据标准化和etl是一致的,都是为了形成统一的标准化的组织数据。他们的关系是:数据标准化是为组织标准化的统一的数据提供一套理论框架,即为数据标准化给出了定义、流程支撑。而etl则为组织数据标准化提供了行之有效的实践方法,即为数据标准化实现了落地。
4.现在较为通用的做法是:领域专家制定数据标准化,业务专家对这些标准化进行拆解,形成数据开发的需求规格;最后,由数据开发人员将拆解好的需求规格转换成数据处理的程序代码,比如sql(structured query language,结构化查询语言)、mapreduce(一种编程模型,用于大规模数据集的并行运算)等。很显然,这种实现方式中,数据标准化规则和etl之间是静态隔离的,并没有形成有效的在线联通,双方各行其事,缺乏科学的管理,并且,当数据标准化内容进行改变时,需要更改程序代码。


技术实现要素:

5.本发明旨在解决上述技术问题的至少之一。
6.为此,本发明的第一目的在于提供一种语义转换方法。
7.本发明的第二目的在于提供一种语义转换引擎。
8.本发明的第三目的在于提供一种电子设备。
9.本发明的第四目的在于提供一种可读存储介质。
10.为实现本发明的第一目的,本发明的技术方案提供了一种语义转换方法,包括:构建数据的标准化规则;对标准化规则进行语义编码,将标准化规则抽象为对象和约束;根据对象、约束和应用程序的类型,进行语义解析,得到应用程序编程接口;应用程序以变量的方式嵌入应用程序编程接口,动态获取应用程序编程接口输出的程序片段,将程序片段替换变量,进行编译,得到程序单元。
11.本技术方案中,在后续数据标准化规则发生变更的情况下,本技术方案只需要维护语义,即可实现数据标准化的改变,而不需要修改应用程序,易于维护,节约人力成本,提
高工作效率。
12.另外,本发明提供的技术方案还可以具有如下附加技术特征:
13.上述技术方案中,构建数据的标准化规则,包括:采用自然语言,将对数据的标准化描述为规则,得到标准化规则。
14.本技术方案中,构建数据的标准化规则,将数据标准化与etl程序进行分离,易于程序的后期维护。
15.上述任一技术方案中,约束包括转换类约束、清洗类约束和/或聚合类约束。
16.本技术方案中,约束为作用于数据的指令集合,通过对数据的各种指令,使得数据趋于标准和统一,通过构建对象与约束的关系,更好的实现语义编码。
17.上述任一技术方案中,对标准化规则进行语义编码,将标准化规则抽象为对象和约束,包括:获取对象,对象包括数据元;获取约束,约束包括作用于对象的指令集合;根据标准化规则、对象和约束,得到单一对象的单一约束、单一对象的多重约束或多个对象的多重约束。
18.本技术方案给出了对象与约束的对应关系情况,使得本技术方案可以适用于更多复杂的数据标准化过程,通过本技术方案,可以构建出对象与约束的关系,更好的实现语义编码。
19.上述任一技术方案中,单一对象的单一约束中,标准化规则涉及单一对象,并且作用于单一对象的约束为单一的。
20.本技术方案中,通过构建单一对象的单一约束,可以更好的实现语义编码。
21.上述任一技术方案中,单一对象的多重约束中,标准化规则涉及单一对象,并且作用于单一对象的约束为多重的。
22.本技术方案中,通过构建单一对象的多重约束,可以更好的实现语义编码。
23.上述任一技术方案中,多个对象的多重约束中,标准化规则涉及多个对象,并且作用于多个对象的约束为多重的。
24.本技术方案中,通过构建多个对象的多重约束,可以更好的实现语义编码。
25.为实现本发明的第二目的,本发明的技术方案提供了一种语义转换引擎,包括:定义模块、编码模块、解析模块和编译模块;定义模块构建数据的标准化规则;编码模块对标准化规则进行语义编码,将标准化规则抽象为对象和约束;解析模块根据对象、约束和应用程序的类型,进行语义解析,得到应用程序编程接口;应用程序以变量的方式嵌入应用程序编程接口,动态获取应用程序编程接口输出的程序片段,将程序片段替换变量,通过编译模块进行编译,得到程序单元。
26.本技术方案中的语义转换引擎,可以实现数据标准化规则与应用程序之间的解耦,使得数据标准化专注于标准化规则的定义,而应用程序专注于数据逻辑的处理,分工明确,提高各自的效率。
27.为实现本发明的第三目的,本发明的技术方案提供了一种电子设备,包括:存储器和处理器,存储器存储有程序或指令,处理器执行程序或指令;其中,处理器在执行程序或指令时,实现如本发明任一技术方案的语义转换方法的步骤。
28.本技术方案提供的电子设备实现如本发明任一技术方案的语义转换方法的步骤,因而其具有如本发明任一技术方案的语义转换方法的全部有益效果,在此不再赘述。
29.为实现本发明的第四目的,本发明的技术方案提供了一种可读存储介质,可读存储介质存储有程序或指令,程序或指令被执行时,实现上述任一技术方案的语义转换方法的步骤。
30.本技术方案提供的可读存储介质实现如本发明任一技术方案的语义转换方法的步骤,因而其具有如本发明任一技术方案的语义转换方法的全部有益效果,在此不再赘述。
31.本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
32.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
33.图1为本发明一个实施例的语义转换方法流程示意图之一;
34.图2为本发明一个实施例的语义转换方法流程示意图之二;
35.图3为本发明一个实施例的语义转换方法流程示意图之三;
36.图4为本发明一个实施例的语义转换引擎组成示意图;
37.图5为本发明一个实施例的电子设备组成示意图;
38.图6为本发明一个实施例的规则引擎转换示意图;
39.图7为本发明一个实施例的语义转换方法流程示意图之四;
40.图8为本发明一个实施例的单一对象单一约束示意框图;
41.图9为本发明一个实施例的单一对象多重约束示意框图;
42.图10为本发明一个实施例的多个对象多重约束示意框图。
43.其中,图4至图10中附图标记与部件名称之间的对应关系为:
44.100:语义转换引擎,102:定义模块,104:编码模块,106:解析模块,108:编译模块,110:数据标准化规则,112:etl程序,114:第一对象,116:第一约束a,118:第一约束b,120:第二约束b,122:第二对象,124:第一约束c,126:第二约束c,128:第一约束d,130:第m对象,132:第h约束c,134:第一约束q,136:第二约束q,138:第p约束q,140:第n约束b,200:电子设备,210:存储器,220:处理器。
具体实施方式
45.为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本技术的实施例及实施例中的特征可以相互组合。
46.在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
47.下面参照图1至图10描述本发明一些实施例的一种语义转换方法、语义转换引擎100、电子设备200和可读存储介质。
48.实施例1:
49.如图1所示,本实施例提供了一种语义转换方法,包括以下步骤:
50.步骤s102,构建数据的标准化规则;
51.步骤s104,对标准化规则进行语义编码,将标准化规则抽象为对象和约束;
52.步骤s106,根据对象、约束和应用程序的类型,进行语义解析,得到应用程序编程接口;
53.步骤s108,应用程序以变量的方式嵌入应用程序编程接口,动态获取应用程序编程接口输出的程序片段,将程序片段替换变量,进行编译,得到程序单元。
54.本实施例中,标准化规则采用自然语言描述,具有不确定性,对标准化规则进行语义编码,将标准化规则抽象为对象和约束,即将自然语言的标准化规则转换成机器可以识别的语义,语义是确定的、定量的,不会出现二义性,便于后续通过机器语言实现。
55.本实施例中,应用程序可以为etl(extract-transform-load,数据仓库技术)程序,etl程序作为数据仓库的核心模块之一,本质是对数据的清洗、转换、聚合等加工处理,以形成组织统一的数据结构,从而实现数据价值。本实施例中,根据对象、约束和应用程序的类型,进行语义解析,得到应用程序编程接口api(application programming interface,应用程序接口),通过api接口,可以得到etl程序(片段),便于后续调用。
56.本实施例中,etl程序以变量的方式嵌入应用程序编程接口,但是,etl程序自身编译器是无法识别语义解析函数,需要动态获取应用程序编程接口输出的程序片段,将程序片段替换变量,进行编译,得到程序单元。
57.本实施例中,根据实际需求构建数据标准化规则,然后对据标准化规则进行语义编码、语义解析,再进行etl编译,实现数据标准化规则与etl程序之间的解耦,使得数据标准化专注于标准化规则的定义,而etl程序专注于数据逻辑的处理,分工明确,提高各自的效率。etl开发工程师只需关注在什么节点对数据初始化,不需要关心如何标准化,使得etl易于开发。在后续数据标准化规则发生变更的情况下,本实施例只需要维护语义,即可实现数据标准化的改变,而不需要修改etl程序,易于维护,节约人力成本,提高工作效率。
58.实施例2:
59.如图2所示,本实施例提供了一种语义转换方法,除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
60.构建数据的标准化规则,包括以下步骤:
61.步骤s202,采用自然语言,将对数据的标准化描述为规则,得到标准化规则。
62.多态数据具有多源异构、错综复杂的特点,标准化是将数据从无序到有序的过程,本实施例中,根据实际需求,将标准化用自然语言描述,形成数据的标准化规则。
63.本实施例中,构建数据的标准化规则,将数据标准化与etl程序进行分离,在后续数据标准化发生变更时,重新制定标准化规则,根据标准化规则维护语义,易于程序的后期维护,节约人力成本。
64.实施例3:
65.本实施例提供了一种语义转换方法,除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
66.约束包括转换类约束、清洗类约束和/或聚合类约束。
67.本实施例中,约束为作用于数据的指令集合,通过对数据的各种指令,使得数据趋于标准和统一。约束包括转换类约束、清洗类约束和/或聚合类约束,通过给出约束的具体
种类,使得本实施例可以构建对象与约束的关系,更好的实现语义编码。
68.实施例4:
69.如图3所示,本实施例提供了一种语义转换方法,除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
70.对标准化规则进行语义编码,将标准化规则抽象为对象和约束,包括以下步骤:
71.步骤s302,获取对象,对象包括数据元;
72.步骤s304,获取约束,约束包括作用于对象的指令集合;
73.步骤s306,根据标准化规则、对象和约束,得到单一对象的单一约束、单一对象的多重约束或多个对象的多重约束。
74.本实施例中,对象为数据元,约束可以包括转换类约束、清洗类约束和/或聚合类约束,根据标准化规则、对象和约束,构建对象与约束的关系,得到单一对象的单一约束、单一对象的多重约束或多个对象的多重约束,本实施例给出了对象与约束的对应关系情况,使得本实施例可以适用于更多复杂的数据标准化过程,通过本实施例,可以构建出对象与约束的关系,更好的实现语义编码。
75.实施例5:
76.本实施例提供了一种语义转换方法,除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
77.单一对象的单一约束中,标准化规则涉及单一对象,并且作用于单一对象的约束为单一的。
78.本实施例中,针对标准化规则中涉及单一对象,并且作用于单一对象的约束为单一的情况,设定为单一对象的单一约束。通过构建单一对象的单一约束,可以更好的实现语义编码。
79.实施例6:
80.本实施例提供了一种语义转换方法,除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
81.单一对象的多重约束中,标准化规则涉及单一对象,并且作用于单一对象的约束为多重的。
82.本实施例中,针对标准化规则中涉及单一对象,并且作用于单一对象的约束为多重的情况,设定为单一对象的多重约束。通过构建单一对象的多重约束,可以更好的实现语义编码。
83.实施例7:
84.本实施例提供了一种语义转换方法,除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
85.多个对象的多重约束中,标准化规则涉及多个对象,并且作用于多个对象的约束为多重的。
86.本实施例中,针对标准化规则涉及多个对象,并且作用于多个对象的约束为多重的情况,设定为多个对象的多重约束。通过构建多个对象的多重约束,可以更好的实现语义编码。
87.实施例8:
88.如图4所示,本实施例提供了一种语义转换引擎100,包括:定义模块102、编码模块104、解析模块106和编译模块108。定义模块102构建数据的标准化规则。编码模块104对标准化规则进行语义编码,将标准化规则抽象为对象和约束。解析模块106根据对象、约束和应用程序的类型,进行语义解析,得到应用程序编程接口。应用程序以变量的方式嵌入应用程序编程接口,动态获取应用程序编程接口输出的程序片段,将程序片段替换变量,通过编译模块108进行编译,得到程序单元。
89.本实施中的语义转换引擎100,可以将标准化规则转换成etl可执行程序代码,定义模块102根据实际需求构建数据标准化规则,然后采用编码模块104对据标准化规则进行语义编码,采用解析模块106进行语义解析,采用编译模块108进行etl编译,语义转换引擎100实现数据标准化规则与etl程序之间的解耦,使得数据标准化专注于标准化规则的定义,而etl程序专注于数据逻辑的处理,分工明确,提高各自的效率。etl开发工程师只需关注在什么节点对数据初始化,不需要关心如何标准化,使得etl易于开发。在后续数据标准化规则发生变更的情况下,本实施例只需要维护语义,即可实现数据标准化的改变,而不需要修改etl程序,易于维护,节约人力成本,提高工作效率。
90.实施例9:
91.如图5所示,本实施例提供了一种电子设备200,包括:存储器210和处理器220,存储器210存储有程序或指令,处理器220执行程序或指令;其中,处理器220在执行程序或指令时,实现如本发明任一实施例的语义转换方法的步骤。
92.实施例10:
93.本实施例提供了一种可读存储介质,可读存储介质存储有程序或指令,程序或指令被处理器220执行时,实现上述任一实施例的语义转换方法的步骤。
94.实施例11:
95.如图6所示,本实施例提供了一种在数据标准化规则110和etl程序112之间,将标准化规则110转换成etl可执行程序代码的引擎,引擎可以称之为规则引擎(也就是语义转换引擎100)。
96.规则引擎的核心为提供一套语义转换算法,将描述标准化规则的语义,转换成可执行的etl程序代码(片段),打通数据标准化规则定义与etl程序之间的壁垒,使得数据标准化规则定义自动化实现成为可能。
97.本实施例提供了一种语义转换方法,流程如图7所示,包括以下步骤:
98.步骤s402,规则定义;
99.以自然语言的形式,结合业务领域的知识,对元数据的标准化进行描述,并将描述的内容归纳成一个个易于理解的规则,最终,得到数据的标准化规则。
100.步骤s404,语义编码;
101.将用自然语言描述的标准化规则转换成机器可以识别的语义。由于自然语言的描述具有不确定性,会导致标准化规则定义的不确定性,而语义则是确定的、定量的,不允许出现二义性。
102.数据标准化规则可以抽象为对象和约束两个要素。
103.对象即数据标准化的对象,一般都是指数据元。比如姓名、性别、年龄等都属于对象。
104.约束即作用于对象的指令集合,通过对对象的各种指令,使得对象数据趋于标准和统一。比如对于年龄,强制必须要在0到130之间,否则视为非法数据。
105.数据标准化规则、对象和约束之间包含单一对象的单一约束、单一对象的多重约束,以及多个对象的多重约束,下面进行具体说明:
106.如图8所示,单一对象单一约束:数据标准化规则110只涉及单一的数据第一对象114,并且作用于第一对象114的第一约束a116也是单一的。比如,将出生日标准化成年龄,只需要对“生日”这个对象进行规则定义,其约束也是单一的,即:当前日期距离出生日经历的年份数。
107.如图9所示,单一对象多重约束:数据标准化规则110只涉及单一的数据第一对象114,但是作用于对象的约束则是多重的。约束可以为n个,包括第一约束b118、第二约束b120、
……
和第n约束b140。比如,需要将出生日标准化成年龄,只需要对“生日”这个对象进行规则定义,但是其约束除了“当前日期距离出生日经历的年份数”外,还需要增加“如果年龄在0到130之外,则需要置成-1,表示年龄异常”。这个数据标准化规则就涉及到两个约束。
108.如图10所示,多个对象多重约束:数据标准化规则110会涉及多个对象,并且作用于对象的约束也是多重的(或者单个约束)。其中,多个对象为m个,包括第一对象114、第二对象122、
……
和第m对象130,作用于第一对象114的约束h个,包括第一约束c124、第二约束c126、
……
和第h约束c132,作用于第二对象122的约束为第一约束d128,作用于第m对象130的约束为第一约束q134、第二约束q136、
……
和第p约束q138。比如,需要将出生日标准化成年龄,只需要对“生日”这个对象进行规则定义,首先,如果客户的身份证完成验证,则截取身份证中的出生年月作为年龄计算的起点,否则以客户填写的生日作为年龄计算的起点。但是其约束除了“当前日期距离出生日经历的年份数”外,还需要增加“如果年龄在0到130之外,则需要置成-1,表示年龄异常”。这个规则就涉及到两个对象,即身份证(验证)和出生日,并且作用于对象的约束则是多重的。
109.本实施例中,依据约束的逻辑类型,可分为转换类约束、清洗类约束、聚合类约束三类,不同类型的约束,决定了语义解析的内在逻辑。约束与约束之间的关系包含:或、与。
110.步骤s406,语义解析;
111.将数据标准化规则以语义的方式转存,可以是xml(extensible markup language,可扩展标记语言)文件、json(javascript object notation,数据交换格式)文件、key-value(分布式存储系统)、结构化的二维表等形式。需要对语义转换成etl程序(片段),比如,如果规则定义中包含了清洗规则,需要将json文件中的内容转换成sql中的一个where条件子句。
112.具体而言,每一个标准化规则需要实例化一个语义解析api接口,以供etl调用。etl程序的多样性决定了语义解析的复杂性,需要将语义规则转换成对应的etl程序(片段)。
113.影响语义解析的因素包括:对象、约束、etl类型,其中对象和约束即是在语义编码中的对象和约束,对象是实例化后的具体对象。etl类型为etl程序的编码类型,数据标准化处理语句包括sql处理语句和mapreduce(编程模型)、flink(apache flink,开源流处理框架)、storm(分布式实时大数据处理框架)等大数据的数据处理程序。
114.api接口定义如下:
115.输入:对象、约束、etl类型;
116.输出:etl程序(片段)。
117.步骤s408,etl编译;
118.在etl程序中,需要在适当的位置嵌入语义解析函数,以获取到标准化的规则。但是,etl程序自身编译器是无法识别语义解析函数的。因此,需要在etl程序执行前,调用etl编译器,将etl程序封装成一个可执行的程序单元,并发送到执行引擎执行。
119.具体而言,在引入标准化规则引擎之前,etl程序均为可以直接在etl引擎中编译的代码;但在etl程序中引入标准化规则引擎后,在etl程序中会以变量的方式嵌入语义解析的api。此时,etl程序的原生编译器将无法识别语义解析api,因此在执行前,需要动态获取api的输出(程序片段),并将输出替换掉变量,生成一个完整的可执行的etl程序。
120.本实施例实现了数据标准化与etl的解耦,数据标准化专注于标准化规则的定义,而etl专注于数据逻辑的处理。
121.本实施例易于开发,etl开发工程师只需关注在什么节点对数据初始化,而无需关心如何标准化。
122.本实施例易于维护,后续标准化变更,只需要在引擎中维护语义,而不需要修改etl程序。
123.实施例12:
124.本实施例以性别对象标准化为例,说明规则引擎的实现过程:
125.性别在不同的系统中的存储内容是不一致的,有的存储0和1,有的存储f和m,而在数据平台,需要统一存储,即标准化,将性别统一转换成0和1来存储。构建数据标准化规则:如果性别为0、f,则转化成0,如果性别是1、m,则转换成1。在做etl对性别进行转换时,需要读取标准化的规则编码,并进行解码。比如,如果etl是sql语句,则可以将规则转码成表达式:case when gender in(
‘0’
,

f’)then
‘0‘
case when gender in(
‘1’
,’m’)then
‘1’
end。后续如果增加了新的存储内容,只需要在标准化的规则中修正即可,而无需调整etl程序。比如,新增加了男和女,这时候,只需要在原来的规则中调整:如果性别为0、男、f,则转化成0,如果性别是1、女、m,则转换成1。
126.具体的,第一,规则定义为:如果性别为0、f,则转化成0,如果性别是1、m,则转换成1。
127.第二,语义编码为:
128.[0129][0130]
第三,语义解析为:
[0131][0132]
[0133]
第四,etl编译为:
[0134]
在sql脚本中,嵌入规则引擎的api代码,如下:
[0135]
select c.id,c.name,${engine.gender_value(

gender’,’oracle-sql’)}$as gen der from customers c
[0136]
上述代码在sql编译器中无法编译,因此,在sql编译器编译前,需要通过etl编译器对上述sql语句进行预编译,得到如下代码:
[0137]
select c.id,c.name,case when gender in(
‘0’
,

f’)then
‘0‘
case when gender in(
‘1’
,’m’)then
‘1’
end as gender from customers c
[0138]
综上,本发明实施例的有益效果为:
[0139]
1.本实施例中,在后续数据标准化规则发生变更的情况下,只需要维护语义,即可实现数据标准化的改变,而不需要修改应用程序,易于维护,节约人力成本,提高工作效率。
[0140]
2.本实施例易于开发,etl开发工程师只需关注在什么节点对数据初始化,而无需关心如何标准化。
[0141]
在本发明中,术语“第一”、“第二”、“第三”仅用于描述的目的,而不能理解为指示或暗示相对重要性;术语“多个”则指两个或两个以上,除非另有明确的限定。术语“安装”、“相连”、“连接”、“固定”等术语均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;“相连”可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0142]
本发明的描述中,需要理解的是,术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或单元必须具有特定的方向、以特定的方位构造和操作,因此,不能理解为对本发明的限制。
[0143]
在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0144]
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1