CN111143390A - 更新元数据的方法及装置 - Google Patents
更新元数据的方法及装置 Download PDFInfo
- Publication number
- CN111143390A CN111143390A CN201911405239.6A CN201911405239A CN111143390A CN 111143390 A CN111143390 A CN 111143390A CN 201911405239 A CN201911405239 A CN 201911405239A CN 111143390 A CN111143390 A CN 111143390A
- Authority
- CN
- China
- Prior art keywords
- field
- result
- data table
- upstream source
- result field
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 170
- 238000012545 processing Methods 0.000 claims abstract description 106
- 239000008280 blood Substances 0.000 claims abstract description 74
- 210000004369 blood Anatomy 0.000 claims abstract description 74
- 238000004458 analytical method Methods 0.000 claims description 51
- 230000011218 segmentation Effects 0.000 claims description 7
- 230000009467 reduction Effects 0.000 abstract description 4
- 238000003754 machining Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000036765 blood level Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/23—Updating
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
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
技术领域
本申请涉及大数据技术领域,特别涉及一种更新元数据的方法及装置。
背景技术
在数据仓库中,每份数据的元数据可以指示出相应数据的血缘关系、加工逻辑等属性信息。因此,维护数据的元数据是极其重要的。其中,数据仓库中可以存储有多个数据表,每个数据表中可以包括多个字段,每个字段对应有用于描述相应字段的元数据。由于字段的血缘关系或者是加工逻辑会发生变化,因此,需要对字段的元数据进行维护。
相关技术中,当存储设备接收到SQL(Structured Query Language,结构化查询语言)语句时,可以对SQL语句进行分段解析,得到多个解析结果。其中,SQL语句用于指示对数据表中的多个字段对应的数据进行操作。多个解析结果可以用于指示所要待处理字段以及处理后的结果字段。存储设备可以根据解析结果所指示的每个字段来查找相应字段的直接上游字段,并根据查找到的直接上游字段来得到相应字段的血缘关系。其中,如果字段的直接上游字段为临时数据表中的字段,由于临时数据表为噪音数据,因此,在进行去噪操作之后,将会导致字段的血缘关系发生断层。并且,在这种情况下,需要人工在元数据平台中输入该字段的加工逻辑,耗费人力且容易导致元数据质量下降。
发明内容
本申请实施例提供了一种更新元数据的方法、装置及存储介质,可以避免由于噪音数据去噪所导致的血缘链路断层以及人为维护加工逻辑所所存在的人力浪费、数据质量难以保证的问题。所述技术方案如下:
一方面,提供了一种更新元数据的方法,所述方法包括:
对接收到的结构化查询语言SQL语句进行分段解析,得到多个解析结果,所述多个解析结果用于指示所要处理的目标字段、处理得到的结果字段以及所述目标字段所属的第一数据表,所述第一数据表是指包含有用于生成结果字段的数据的直接上游数据的数据表;
根据所述多个解析结果,确定所述结果字段的上游源字段,所述上游源字段为上游源数据表中用于生成所述目标字段的字段,所述上游源数据表是指所述第一数据表对应的源数据表;
根据所述上游源字段对所述结果字段的元数据进行更新。
可选地,所述根据所述多个解析结果,确定所述结果字段的上游源字段,包括:
从所述多个解析结果中获取所述结果字段和所述目标字段;
根据所述目标字段所属的第一数据表,确定所述上游源数据表;
将所述上游源数据表中包含的用于生成所述目标字段的字段作为所述结果字段的上游源字段。
可选地,所述根据所述上游源字段对所述结果字段的元数据进行更新,包括:
根据所述上游源字段和所述结果字段,生成所述结果字段的血缘关系;
根据所述上游源字段、所述目标字段和所述结果字段,生成所述结果字段的加工逻辑;
根据所述结果字段的血缘关系和所述结果字段的加工逻辑,对所述结果字段的元数据进行更新。
可选地,所述根据所述上游源字段和所述结果字段,生成所述结果字段的血缘关系,包括:
如果所述第一数据表为临时数据表,则根据所述上游源字段和所述结果字段生成血缘链路,将所述血缘链路作为所述结果字段的血缘关系;
如果所述第一数据表不为临时数据表,则根据所述上游源字段、所述上游源数据表、所述第一数据表、所述目标字段和所述结果字段生成血缘链路,将所述血缘链路作为所述结果字段的血缘关系。
可选地,所述根据所述上游源字段和所述结果字段,生成所述结果字段的加工逻辑,包括:
确定所述目标字段到所述结果字段的第一加工逻辑,以及确定所述上游源字段到所述目标字段的第二加工逻辑;
对所述第一加工逻辑和所述第二加工逻辑进行合并,得到所述结果字段的加工逻辑。
另一方面,提供了一种更新元数据的装置,所述装置包括:
解析模块,用于对接收到的结构化查询语言SQL语句进行分段解析,得到多个解析结果,所述多个解析结果用于指示所要处理的目标字段、处理得到的结果字段以及所述目标字段所属的第一数据表,所述第一数据表是指包含有用于生成结果字段的数据的直接上游数据的数据表;
确定模块,用于根据所述多个解析结果,确定所述结果字段的上游源字段,所述上游源字段为上游源数据表中用于生成所述目标字段的字段,所述上游源数据表是指所述第一数据表对应的源数据表;
更新模块,用于根据所述上游源字段对所述结果字段的元数据进行更新。
可选地,所述确定模块具体用于:
从所述多个解析结果中获取所述结果字段和所述目标字段;
根据所述目标字段所属的第一数据表,确定所述上游源数据表;
将所述上游源数据表中包含的用于生成所述目标字段的字段作为所述结果字段的上游源字段。
可选地,所述更新模块包括:
血缘关系生成子模块,用于根据所述上游源字段和所述结果字段,生成所述结果字段的血缘关系;
加工逻辑生成子模块,用于根据所述上游源字段、所述目标字段和所述结果字段,生成所述结果字段的加工逻辑;
更细子模块,用于根据所述结果字段的血缘关系和所述结果字段的加工逻辑,对所述结果字段的元数据进行更新。
可选地,所述血缘关系生成子模块具体用于:
如果所述第一数据表为临时数据表,则根据所述上游源字段和所述结果字段生成血缘链路,将所述血缘链路作为所述结果字段的血缘关系;
如果所述第一数据表不为临时数据表,则根据所述上游源字段、所述上游源数据表、所述第一数据表、所述目标字段和所述结果字段生成血缘链路,将所述血缘链路作为所述结果字段的血缘关系。
可选地,所述加工逻辑生成子模块具体用于:
确定所述目标字段到所述结果字段的第一加工逻辑,以及确定所述上游源字段到所述目标字段的第二加工逻辑;
对所述第一加工逻辑和所述第二加工逻辑进行合并,得到所述结果字段的加工逻辑。
另一方面,提供了一种更新元数据的装置,所述更新元数据的装置包括处理器、通信接口、存储器和通信总线;
其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
所述存储器用于存放计算机程序;
所述处理器用于执行所述存储器上所存放的程序,以实现前述提供更新元数据的方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现前述提供的更新元数据的方法的步骤。
另一方面,提供了一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行前述的更新元数据的方法的步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
在本申请实施例中,对接收到的SQL语句进行分段解析,得到多个解析结果,之后,根据多个解析结果确定结果字段的上游源字段,然后根据上游源字段来对结果字段的元数据进行更新。由于上游源字段是用于生成目标字段的字段,而目标字段是用于生成结果字段的字段,因此,根据该上游源字段来对结果字段的元数据进行更新,可以明确的指示出结果字段的血缘关系和加工逻辑,在此基础上,由于上游源字段是上游源数据表中的字段,而不是临时数据表中的字段,因此,即使目标字段为临时数据表中的字段,根据上游源字段得到的结果字段的元数据所表征的血缘关系也不会因为去噪操作而发生血缘链路断层。同理,该元数据中所包括的加工逻辑也可以直接根据该上游源字段生成,不必人工输入,减少了人力消耗,同时可以避免由于人工错误所造成的数据质量下降。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种更新元数据的系统架构图;
图2是本申请实施例提供的一种更新元数据的方法流程图;
图3是本申请实施例提供的一种更新元数据的装置的结构示意图;
图4是本申请实施例提供的一种更新模块的结构示意图;
图5是本申请实施例提供的一种用于进行元数据更新的服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了便于理解,先对本申请实施例中涉及的名词进行解释。
元数据:用于描述数据的数据。例如,一个数据表的元数据可以描述这个数据表的类型、血缘关系、存储位置、加工逻辑等。
字段:数据表中包括的字段。例如,一个数据表中可能包括实际收入这个字段。
血缘关系:各个数据之间的传承关系。例如,一个字段的血缘关系可以用于指示这个字段的数据是通过对哪些字段的数据加工得到的。
加工逻辑:用于指示一个数据的处理逻辑。例如,一个字段的加工逻辑可以用于指示这个字段的数据是通过对其他字段进行什么样的加工处理得到的。
临时数据表:在数据处理过程中,根据源数据生成的中间数据表。
接下来对本申请实施例提供更新元数据的方法所涉及的系统架构予以介绍。
图1是本申请实施例提供的更新元数据的方法所涉及的系统架构图。如图1所示,该系统可以包括终端101和服务器102。
其中,终端101可以与用户进行交互,接收用户输入的SQL语句或者是其他操作指令。
服务器102上部署有数据仓库,该数据仓库中存储有多个数据表。并且,该服务器中还存储有该数据仓库中每个数据表的元数据、每个数据表包括的字段的元数据等。服务器102可以接收终端发送的SQL语句或者其他操作指令,根据接收到的SQL语句或操作指令对数据仓库中的数据进行处理。与此同时,服务器102还可以根据该SQL语句,通过本申请实施例提供的方法对存储的元数据进行更新。
其中,终端101可以为笔记本电脑、台式电脑等用户终端。服务器102可以为一台单独的服务器,或者是一个服务器集群,或者是一个云计算中心。本申请实施例对此不做限定。
接下来对本申请实施例提供的更新元数据的方法进行介绍。
图2是本申请实施例提供的一种更新元数据的方法流程图。该方法可以应用于服务器中。参见图2,该方法包括以下步骤:
步骤201:对接收到的SQL语句进行分段解析,得到多个解析结果,多个解析结果用于指示所要处理的目标字段和处理后的结果字段。
SQL语句是用于对数据库中的数据进行处理、操作的语言。当用户需要想要对数据表中的某些字段进行处理,以得到一个新的字段时,或者是,当用户想要通过新的处理逻辑来对数据表中已有字段的数据进行更新时,均可以采用SQL语句来实现。
其中,用户可以在终端上实现用于实现某种操作的SQL语句。终端可以将该SQL语句发送至服务器。相应地,服务器可以接收终端发送的SQL语句。
需要说明的是,在通过SQL语句来实现某种数据操作时,对于这一个数据操作,可能需要多段的SQL语句才能完成。在这种情况下,服务器在接收到SQL语句之后,可以对接收到的SQL语句进行拆分,得到多段SQL语句。之后,服务器可以对每段SQL语句进行解析,从而得到每段SQL语句对应的解析结果。
示例性地,假设要计算一个网店的实际收入,该实际收入可以通过该网店的总收入减去退款来得到。在这种情况下,用于实现实际收入的计算的SQL语句就可以分为三段,分别为获取总收入这个字段对应的数据,获取退款这个字段对应的数据,最后,将这二者做减法,得到实际收入。这样,对于实现计算实际收入的SQL语句,就可以被拆分为三段。对每段进行解析,可以得到一个解析结果。其中,一个解析结果指示所要处理的目标字段为总收入,一个解析结果指示所要处理的目标字段为退款,最后一个解析结果指示处理后的结果字段为实际收入。
下述是本申请实施例示例性给出的SQL语句:
Create table tmp1 AS//表示创建表tmp1
Select
a,b
from t0;//表示从表t0中选择a和b字段
insert into table t1//表示在表t1中插入字段c
select
sum(a,b)AS c
from tmp1;//表示将从表tmp1中筛选的a字段和b字段的数据和作为c字段的数据
对上述SQL语句进行拆分,即可以得到两段SQL语句,分别为:
SQL1:Create table tmp1 AS
Select
a,b
from t0;
SQL2:insert into table t1
select
sum(a,b)AS c
from tmp1;
对上述拆分得到的两端SQL语句进行解析,可以得到每段SQL语句对应的解析结果。
需要说明的是,在对每段SQL语句进行解析时,可以生成每段SQL语句的AST(Abstract Syntax Tree,抽象语法树),之后,根据每段SQL语句的AST生成相应SQL语句对应的解析结果。此时,每个解析结果可以指示所要操作的目标字段,对于最后一段SQL语句的解析结果,还包括处理后的结果字段。其中,目标字段对应的数据是用于生成结果字段对应的数据的直接上游数据。例如,在前述的SQL语句示例中,目标字段即为表tmp1中a字段和b字段,结果字段即为c字段。除此之外,解析结果还可以指示目标字段所属的第一数据表,以及结果字段所属的第二数据表。其中,第一数据表和第二数据表有可能相同,也可能不同。
在生成多个解析结果之后,服务器可以按照多个解析结果对应的SQL语句在未拆分时的SQL语句中的先后顺序,将多个解析结果入栈。这样,第一段SQL语句的解析结果将位于栈底,最后一段SQL语句的解析结果则位于栈顶。
步骤202:根据多个解析结果,确定结果字段的上游源字段,上游源字段为上游源数据表中用于生成目标字段的字段。
在得到多个解析结果之后,服务器可以根据该多个解析结果,确定结果字段的上游源字段。其中,由于上游源字段为用于生成目标字段的字段,而目标字段是用于生成结果字段的字段,所以,上游源字段实际为结果字段的源头字段。其中,上游源字段所属的上游源数据表是指采集的源头数据表。
示例性地,服务器可以从多个解析结果中获取结果字段和目标字段,根据目标字段所属的第一数据表,确定上游源数据表;将上游源数据表中包含的用于生成目标字段的字段作为结果字段的上游源字段。
由步骤201中介绍可知,多个解析结果可以按照对应的SQL语句在未拆分的SQL语句中的先后顺序入栈。基于此,在本步骤中,服务器可以先从栈中的取出最后一个入栈的解析结果,也即最后一段SQL语句的解析结果。该解析结果中将包括目标字段和结果字段,除此之外,该解析结果中还可以包括目标字段所属的第一数据表的标识,以及结果字段所属的第二数据表的标识。服务器可以从该解析结果获取结果字段以及目标字段,此时,该目标字段即为该结果字段的直接上游字段。在获取到结果字段和目标字段之后,服务器可以判断当前的这个解析结果是否为栈中的最后一个解析结果,如果是,则服务器可以将该目标字段即作为该结果字段的上游源字段。
可选地,如果当前的这个解析结果是否为栈中的最后一个解析结果,则服务器可以从栈中获取下一个解析结果,也即倒数第二个入栈的解析结果,即倒数第二段SQL语句的解析结果。此时,该解析结果中将包括目标字段、第一数据表的标识以及该目标字段的直接上游字段、该目标字段的直接上游字段所属的数据表的标识。服务器可以获取该目标字段的直接上游字段和其所属的数据表的标识。之后,服务器继续判断该解析结果是否为最后一个解析结果,如果是,则将该目标字段的直接上游字段作为该结果字段的上游源字段。如果不是,则服务器可以获取下一个解析结果,并且以获取到的目标字段的直接上游字段为目标字段,从再次获取到的解析结果中获取更新后的目标字段的直接上游字段,以此类推。
例如,以前述SQL语句的示例为例,假设根据第一个解析结果可以得到结果字段为c,目标字段为表tmp1中的a和b字段。根据第二个解析结果可以得到表tmp1中的a字段和b字段的直接上游字段为表t0中的a字段和b字段,此时,则可以确定表t0中的a字段和b字段为结果字段c的上游源字段。
需要说明的是,目标字段可以通过对上游数据表进行筛选得到,此时,该目标字段和该目标字段的直接上游字段的字段名可能是完全相同的,字段对应的数据也完全是相同的,区别在于这两个字段位于两个不同的数据表中。
步骤203:根据上游源字段对结果字段的元数据进行更新。
在确定出结果字段的上游源字段之后,服务器可以根据上游源字段和结果字段,生成结果字段的血缘关系;根据上游源字段、目标字段和结果字段,生成结果字段的加工逻辑;根据结果字段的血缘关系和结果字段的加工逻辑,对结果字段的元数据进行更新。
其中,在一种可能的实现方式中,服务器可以直接将上游源字段、上游源字段所述的上游源数据表作为该结果字段的血缘数据,从而生成从上游源数据表中的上游源字段到第二数据表中的结果字段的血缘链路。将该血缘链路作为该结果字段的血缘关系。
可选地,在另一种可能的实现方式中,服务器可以判断目标字段所属的第一数据表是否为临时数据表,如果是临时数据表,则服务器可以采用前述第一种实现方式中介绍的方法,生成该结果字段的血缘关系。如果第一数据表不为临时数据表,则服务器可以将目标字段、第一数据表、上游源字段和上游源数据表均作为该结果字段的血缘数据,以此来生成一条从上游源字段到目标字段到结果字段的血缘链路,将该血缘链路作为该结果字段的血缘关系。
需要说明的是,在一些可能的场景中,从上游源字段到结果字段存在包括目标字段在内的多个中间字段,在这种情况下,服务器可以判断每个中间字段所属的数据表是否为临时数据表,如果是临时数据表,则服务器可以将相应中间字段去除,根据剩余的字段生成该结果字段的血缘关系。
在生成结果字段的血缘关系的同时,服务器还可以根据上游源字段、目标字段和结果字段来生成结果字段的加工逻辑。
其中,服务器可以确定目标字段到结果字段的第一加工逻辑,以及确定上游源字段到所述目标字段的第二加工逻辑;对第一加工逻辑和第二加工逻辑进行合并,得到结果字段的加工逻辑。
由于目标字段是用于生成结果字段的直接上游字段,因此,服务器可以获取通过目标字段生成结果字段的第一加工逻辑。示例性地,以前述给出的SQL语句示例可知,通过目标字段a和b得到结果字段c的第一加工逻辑即为sum(a,b),也即,第一加工逻辑为对a字段和b字段求和。再例如,以前述给出的实际收入的计算为例,目标字段即为总收入和退款,通过目标字段得到结果字段的第一加工逻辑即为对总收入和退款求差。
在确定第一加工逻辑之后,服务器可以进一步确定通过上游源字段得到目标字段的第二加工逻辑。示例性地,以前述给出的SQL语句示例可知,目标字段是通过对上游源数据表中的上游源字段进行筛选得到的,并非进行运算得到,因此可知,第二加工逻辑为空。再例如,以前述给出的实际收入的计算为例,假设总收入这个字段需要通过上游源数据表中的收入明细字段的数据求和得到,退款这个字段需要通过上游数据表中的退款明细字段的数据求和得到。在这种情况下,经过收入明细字段得到总收入的加工逻辑即为对收入明细字段求和。通过退款明细字段得到退款字段的加工逻辑即为对退款明细字段求和。由此可见,此时,第二加工逻辑包括上述两个加工逻辑。
在确定第一加工逻辑和第二加工逻辑之后,服务器可以将第一加工逻辑和第二加工逻辑进行合并,从而得到从上游源字段直接到结果字段的加工逻辑。该加工逻辑即为结果字段的加工逻辑,此时,该加工逻辑可以指示出如何通过上游源字段直接得到结果字段。
示例性地,仍以前述SQL语句示例为例,第一加工逻辑为对a字段和b字段求和,第二加工逻辑为空,则将两个加工逻辑进行合并可以得到从上游源字段到结果字段的加工逻辑为对上游源数据表中的上游源字段a和b进行求和。
再例如,以上述计算实际收入为例,第一加工逻辑为对总收入和退款求差,第二加工逻辑分别为对收入明细字段求和以及对退款明细字段求和。将第一加工逻辑和第二加工逻辑进行合并,得到的从上游源字段到该结果字段的加工逻辑即为sum(收入明细字段)-sum(退款明细字段),也即,对收入明细字段的总和与退款明细字段的总和作差。
由上述介绍可知,合并后的加工逻辑实际上通过上游源字段直接得到结果字段的逻辑,该加工逻辑中并不会涉及到中间字段,这样,即使中间字段为临时数据表中的字段,在进行去噪操作时,也不会影响到该结果字段的加工逻辑。另外,在生成血缘关系时,对于属于临时数据表的中间字段,也不会将其加入到血缘链路中,血缘链路是根据上游源字段来生成的,这样,在进行去噪操作后,不会造成结果字段的血缘链路发生断层。
在生成结果字段的血缘关系和加工逻辑之后,服务器可以将该血缘关系和加工逻辑按照指定格式合成。之后,服务器可以根据合成后的血缘关系和加工逻辑来对该结果字段的元数据进行更新。其中,如果该结果字段的元数据中之前并不存在血缘关系和加工逻辑,则可以直接将上述合成后的数据添加至该结果字段的元数据中,如果该结果字段的元数据中之前已包含有血缘关系和加工逻辑,则可以用合成后的数据来替换该结果字段的元数据中已包含的血缘关系和加工逻辑。
在本申请实施例中,服务器可以对接收到的SQL语句进行分段解析,得到多个解析结果,之后,根据多个解析结果确定结果字段的上游源字段,然后根据上游源字段来对结果字段的元数据进行更新。由于上游源字段是用于生成目标字段的字段,而目标字段是用于生成结果字段的字段,因此,根据该上游源字段来对结果字段的元数据进行更新,可以明确的指示出结果字段的血缘关系和加工逻辑,在此基础上,由于上游源字段是上游源数据表中的字段,而不是临时数据表中的字段,因此,即使目标字段为临时数据表中的字段,根据上游源字段得到的结果字段的元数据所表征的血缘关系也不会因为去噪操作而发生血缘链路断层。同理,该元数据中所包括的加工逻辑也可以直接根据该上游源字段生成,不必人工输入,减少了人力消耗,同时可以避免由于人工错误所造成的数据质量下降。
接下来对本申请实施例提供的更新元数据的装置进行介绍。
参见图3,本申请实施例提供了一种更新元数据的装置300,该装置300包括:
解析模块301,用于对接收到的结构化查询语言SQL语句进行分段解析,得到多个解析结果,多个解析结果用于指示所要处理的目标字段、处理得到的结果字段以及目标字段所属的第一数据表,第一数据表是指包含有用于生成结果字段的数据的直接上游数据的数据表;
确定模块302,用于根据多个解析结果,确定结果字段的上游源字段,上游源字段为上游源数据表中用于生成目标字段的字段,上游源数据表是指第一数据表对应的源数据表;
更新模块303,用于根据上游源字段对结果字段的元数据进行更新。
可选地,确定模块具体用于:
从多个解析结果中获取结果字段和目标字段;
根据目标字段所属的第一数据表,确定上游源数据表;
将上游源数据表中包含的用于生成目标字段的字段作为结果字段的上游源字段。
可选地,参见图4,更新模块303包括:
血缘关系生成子模块3031,用于根据上游源字段和结果字段,生成结果字段的血缘关系;
加工逻辑生成子模块3032,用于根据上游源字段、目标字段和结果字段,生成结果字段的加工逻辑;
更细子模块3033,用于根据结果字段的血缘关系和结果字段的加工逻辑,对结果字段的元数据进行更新。
可选地,血缘关系生成子模块3031具体用于:
如果第一数据表为临时数据表,则根据上游源字段和结果字段生成血缘链路,将血缘链路作为结果字段的血缘关系;
如果第一数据表不为临时数据表,则根据上游源字段、上游源数据表、第一数据表、目标字段和结果字段生成血缘链路,将血缘链路作为结果字段的血缘关系。
可选地,加工逻辑生成子模块3032具体用于:
确定目标字段到结果字段的第一加工逻辑,以及确定上游源字段到目标字段的第二加工逻辑;
对第一加工逻辑和第二加工逻辑进行合并,得到结果字段的加工逻辑。
综上所述,本申请实施例可以对接收到的SQL语句进行分段解析,得到多个解析结果,之后,根据多个解析结果确定结果字段的上游源字段,然后根据上游源字段来对结果字段的元数据进行更新。由于上游源字段是用于生成目标字段的字段,而目标字段是用于生成结果字段的字段,因此,根据该上游源字段来对结果字段的元数据进行更新,可以明确的指示出结果字段的血缘关系和加工逻辑,在此基础上,由于上游源字段是上游源数据表中的字段,而不是临时数据表中的字段,因此,即使目标字段为临时数据表中的字段,根据上游源字段得到的结果字段的元数据所表征的血缘关系也不会因为去噪操作而发生血缘链路断层。同理,该元数据中所包括的加工逻辑也可以直接根据该上游源字段生成,不必人工输入,减少了人力消耗,同时可以避免由于人工错误所造成的数据质量下降。。
需要说明的是:上述实施例提供的更新元数据的装置在进行元数据更新时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的更新元数据的装置与更新元数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5是本申请实施例提供的一种用于进行元数据更新的服务器500的结构示意图。上述图2所示的实施例中的服务器的功能即可以通过图5中所示的服务器来实现。该服务器可以是后台服务器集群中的服务器。具体来讲:
服务器500包括中央处理单元(CPU)501、包括随机存取存储器(RAM)502和只读存储器(ROM)503的系统存储器504,以及连接系统存储器504和中央处理单元501的系统总线505。服务器500还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)506,和用于存储操作系统1013、应用程序1014和其他程序模块1015的大容量存储设备507。
基本输入/输出系统506包括有用于显示信息的显示器508和用于用户输入信息的诸如鼠标、键盘之类的输入设备509。其中显示器508和输入设备509都通过连接到系统总线505的输入输出控制器1010连接到中央处理单元501。基本输入/输出系统506还可以包括输入输出控制器1010以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1010还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备507通过连接到系统总线505的大容量存储控制器(未示出)连接到中央处理单元501。大容量存储设备507及其相关联的计算机可读介质为服务器500提供非易失性存储。也就是说,大容量存储设备507可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器504和大容量存储设备507可以统称为存储器。
根据本申请的各种实施例,服务器500还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器500可以通过连接在系统总线505上的网络接口单元511连接到网络512,或者说,也可以使用网络接口单元511来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。所述一个或者一个以上程序包含用于进行本申请实施例提供的更新元数据的方法的指令。
本申请实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述图2所示实施例提供的更新元数据的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述图2所示实施例提供的更新元数据的方法。
应当理解的是,上述图5所示的结构并不构成对服务器500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种更新元数据的方法,其特征在于,所述方法包括:
对接收到的结构化查询语言SQL语句进行分段解析,得到多个解析结果,所述多个解析结果用于指示所要处理的目标字段、处理得到的结果字段以及所述目标字段所属的第一数据表,所述第一数据表是指包含有用于生成结果字段的数据的直接上游数据的数据表;
根据所述多个解析结果,确定所述结果字段的上游源字段,所述上游源字段为上游源数据表中用于生成所述目标字段的字段,所述上游源数据表是指所述第一数据表对应的源数据表;
根据所述上游源字段对所述结果字段的元数据进行更新。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多个解析结果,确定所述结果字段的上游源字段,包括:
从所述多个解析结果中获取所述结果字段和所述目标字段;
根据所述目标字段所属的第一数据表,确定所述上游源数据表;
将所述上游源数据表中包含的用于生成所述目标字段的字段作为所述结果字段的上游源字段。
3.根据权利要求1所述的方法,其特征在于,所述根据所述上游源字段对所述结果字段的元数据进行更新,包括:
根据所述上游源字段和所述结果字段,生成所述结果字段的血缘关系;
根据所述上游源字段、所述目标字段和所述结果字段,生成所述结果字段的加工逻辑;
根据所述结果字段的血缘关系和所述结果字段的加工逻辑,对所述结果字段的元数据进行更新。
4.根据权利要求3所述的方法,其特征在于,所述根据所述上游源字段和所述结果字段,生成所述结果字段的血缘关系,包括:
如果所述第一数据表为临时数据表,则根据所述上游源字段和所述结果字段生成血缘链路,将所述血缘链路作为所述结果字段的血缘关系;
如果所述第一数据表不为临时数据表,则根据所述上游源字段、所述上游源数据表、所述第一数据表、所述目标字段和所述结果字段生成血缘链路,将所述血缘链路作为所述结果字段的血缘关系。
5.根据权利要求3所述的方法,其特征在于,所述根据所述上游源字段和所述结果字段,生成所述结果字段的加工逻辑,包括:
确定所述目标字段到所述结果字段的第一加工逻辑,以及确定所述上游源字段到所述目标字段的第二加工逻辑;
对所述第一加工逻辑和所述第二加工逻辑进行合并,得到所述结果字段的加工逻辑。
6.一种更新元数据的装置,其特征在于,所述装置包括:
解析模块,用于对接收到的结构化查询语言SQL语句进行分段解析,得到多个解析结果,所述多个解析结果用于指示所要处理的目标字段、处理得到的结果字段以及所述目标字段所属的第一数据表,所述第一数据表是指包含有用于生成结果字段的数据的直接上游数据的数据表;
确定模块,用于根据所述多个解析结果,确定所述结果字段的上游源字段,所述上游源字段为上游源数据表中用于生成所述目标字段的字段,所述上游源数据表是指所述第一数据表对应的源数据表;
更新模块,用于根据所述上游源字段对所述结果字段的元数据进行更新。
7.根据权利要求6所述的装置,其特征在于,所述确定模块具体用于:
从所述多个解析结果中获取所述结果字段和所述目标字段;
根据所述目标字段所属的第一数据表,确定所述上游源数据表;
将所述上游源数据表中包含的用于生成所述目标字段的字段作为所述结果字段的上游源字段。
8.根据权利要求6所述的装置,其特征在于,所述更新模块包括:
血缘关系生成子模块,用于根据所述上游源字段和所述结果字段,生成所述结果字段的血缘关系;
加工逻辑生成子模块,用于根据所述上游源字段、所述目标字段和所述结果字段,生成所述结果字段的加工逻辑;
更细子模块,用于根据所述结果字段的血缘关系和所述结果字段的加工逻辑,对所述结果字段的元数据进行更新。
9.根据权利要求8所述的装置,其特征在于,所述血缘关系生成子模块具体用于:
如果所述第一数据表为临时数据表,则根据所述上游源字段和所述结果字段生成血缘链路,将所述血缘链路作为所述结果字段的血缘关系;
如果所述第一数据表不为临时数据表,则根据所述上游源字段、所述上游源数据表、所述第一数据表、所述目标字段和所述结果字段生成血缘链路,将所述血缘链路作为所述结果字段的血缘关系。
10.根据权利要求8所述的装置,其特征在于,所述加工逻辑生成子模块具体用于:
确定所述目标字段到所述结果字段的第一加工逻辑,以及确定所述上游源字段到所述目标字段的第二加工逻辑;
对所述第一加工逻辑和所述第二加工逻辑进行合并,得到所述结果字段的加工逻辑。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911405239.6A CN111143390A (zh) | 2019-12-30 | 2019-12-30 | 更新元数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911405239.6A CN111143390A (zh) | 2019-12-30 | 2019-12-30 | 更新元数据的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111143390A true CN111143390A (zh) | 2020-05-12 |
Family
ID=70522321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911405239.6A Pending CN111143390A (zh) | 2019-12-30 | 2019-12-30 | 更新元数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143390A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613764A (zh) * | 2020-12-25 | 2021-04-06 | 北京知因智慧科技有限公司 | 数据处理方法、装置以及电子设备 |
CN113127450A (zh) * | 2021-04-30 | 2021-07-16 | 平安普惠企业管理有限公司 | 数据的维护方法、装置、计算机设备及存储介质 |
CN114091426A (zh) * | 2020-10-19 | 2022-02-25 | 北京沃东天骏信息技术有限公司 | 一种处理数据仓库中字段数据的方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080033919A1 (en) * | 2006-08-04 | 2008-02-07 | Yan Arrouye | Methods and systems for managing data |
US20110125773A1 (en) * | 2009-11-25 | 2011-05-26 | International Business Machines Corporation | Logical Object Search Framework and Application Programming Interface |
CN107239335A (zh) * | 2017-06-09 | 2017-10-10 | 中国工商银行股份有限公司 | 分布式系统的作业调度系统及方法 |
CN109213754A (zh) * | 2018-03-29 | 2019-01-15 | 北京九章云极科技有限公司 | 一种数据处理系统及数据处理方法 |
CN109614432A (zh) * | 2018-12-05 | 2019-04-12 | 北京百分点信息科技有限公司 | 一种基于语法分析的获取数据血缘关系的系统及方法 |
CN109710703A (zh) * | 2019-01-03 | 2019-05-03 | 北京顺丰同城科技有限公司 | 一种血缘关系网络的生成方法及装置 |
-
2019
- 2019-12-30 CN CN201911405239.6A patent/CN111143390A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080033919A1 (en) * | 2006-08-04 | 2008-02-07 | Yan Arrouye | Methods and systems for managing data |
US20110125773A1 (en) * | 2009-11-25 | 2011-05-26 | International Business Machines Corporation | Logical Object Search Framework and Application Programming Interface |
CN107239335A (zh) * | 2017-06-09 | 2017-10-10 | 中国工商银行股份有限公司 | 分布式系统的作业调度系统及方法 |
CN109213754A (zh) * | 2018-03-29 | 2019-01-15 | 北京九章云极科技有限公司 | 一种数据处理系统及数据处理方法 |
CN109614432A (zh) * | 2018-12-05 | 2019-04-12 | 北京百分点信息科技有限公司 | 一种基于语法分析的获取数据血缘关系的系统及方法 |
CN109710703A (zh) * | 2019-01-03 | 2019-05-03 | 北京顺丰同城科技有限公司 | 一种血缘关系网络的生成方法及装置 |
Non-Patent Citations (1)
Title |
---|
魏梨君;潘阳;张岩;: "基于SQL的自助数据分析模式设计" * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114091426A (zh) * | 2020-10-19 | 2022-02-25 | 北京沃东天骏信息技术有限公司 | 一种处理数据仓库中字段数据的方法和装置 |
CN112613764A (zh) * | 2020-12-25 | 2021-04-06 | 北京知因智慧科技有限公司 | 数据处理方法、装置以及电子设备 |
CN113127450A (zh) * | 2021-04-30 | 2021-07-16 | 平安普惠企业管理有限公司 | 数据的维护方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111522816B (zh) | 基于数据库引擎的数据处理方法、装置、终端及介质 | |
CN110908997B (zh) | 数据血缘构建方法、装置、服务器及可读存储介质 | |
CN111177231A (zh) | 报表生成方法和报表生成装置 | |
CN112527848B (zh) | 基于多数据源的报表数据查询方法、装置、系统及存储介质 | |
CN110795455A (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
CN111026568B (zh) | 数据和任务关系构建方法、装置、计算机设备及存储介质 | |
CN111143390A (zh) | 更新元数据的方法及装置 | |
CN111709527A (zh) | 运维知识图谱库的建立方法、装置、设备及存储介质 | |
Heo et al. | BLESS 2: accurate, memory-efficient and fast error correction method | |
CN109597810B (zh) | 一种任务切分方法、装置、介质及电子设备 | |
US20130054427A1 (en) | Explosions of bill-of-materials lists | |
CN113419789A (zh) | 数据模型脚本的生成方法和装置 | |
CN111435367A (zh) | 知识图谱的构建方法、系统、设备及存储介质 | |
CN114116065A (zh) | 获取拓扑图数据对象的方法、装置、及电子设备 | |
CN112000848A (zh) | 一种图数据处理方法、装置、电子设备及存储介质 | |
CN110837356A (zh) | 一种数据处理方法和装置 | |
CN116186174A (zh) | 基于数据分析的数据血缘关系图构建方法及相关设备 | |
US9330372B2 (en) | Generating an improved development infrastructure | |
CN106843822B (zh) | 一种执行代码生成方法及设备 | |
US9342809B2 (en) | Method and apparatus to populate asset variant relationships in repositories | |
CN115167785B (zh) | 基于标签的网盘文件管理方法、装置、网盘及存储介质 | |
CN113419957A (zh) | 基于规则的大数据离线批处理性能容量扫描方法及装置 | |
CN110727677B (zh) | 数据仓库内表格的血缘关系追溯的方法和装置 | |
CN113326407A (zh) | 一种数据处理方法及装置 | |
CN113760891B (zh) | 一种数据表的生成方法、装置、设备和存储介质 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211126 Address after: Room 084, No. 1-309, 3rd floor, commercial building, No. 9 Wangjing street, Chaoyang District, Beijing 100102 Applicant after: Beijing Daily Youxian Technology Co.,Ltd. Address before: 100102 room 801, 08 / F, building 7, yard 34, Chuangyuan Road, Chaoyang District, Beijing Applicant before: BEIJING MISSFRESH E-COMMERCE Co.,Ltd. |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200512 |