CN115809304A - 字段级血缘解析方法、装置、计算机设备、存储介质 - Google Patents
字段级血缘解析方法、装置、计算机设备、存储介质 Download PDFInfo
- Publication number
- CN115809304A CN115809304A CN202211380580.2A CN202211380580A CN115809304A CN 115809304 A CN115809304 A CN 115809304A CN 202211380580 A CN202211380580 A CN 202211380580A CN 115809304 A CN115809304 A CN 115809304A
- Authority
- CN
- China
- Prior art keywords
- field
- queried
- mapping
- link
- target
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种字段级血缘解析方法、装置、计算机设备、存储介质。所述方法包括:在获取到待查询字段的情况下,根据待查询字段对应的查询类型,从字段映射表中确定与查询类型匹配的目标映射关系。根据目标映射关系,从字段映射表中确定至少一个目标字段。根据目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图。根据待查询字段,从全链路字段依赖图中确定和待查询字段对应的待查询字段节点,并根据待查询字段节点,从全链路字段依赖图中获取待查询字段链路,基于待查询字段链路得到待查询字段的血缘分析结果。采用本方法能够防止字段级血缘解析过程中出现信息缺漏,提高了字段级血缘解析的准确性。
Description
技术领域
本申请涉及数据仓库技术领域,特别是涉及一种字段级血缘解析方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
目前血缘解析技术通常聚焦于表级、字段之间的实体血缘关系,仅告诉用户A与B之间的关系,无具体的加工形式及逻辑。例如CASE C WHEN D CASE E WHEN F的条件判断语句中,C、E处为字段限制条件,由于这些限制字段并无数据转移的底层逻辑,常规血缘技术方案并不会考虑此处的血缘关系,但是C、E处的值将直接影响最终待查询字段的返回值。传统的血缘分析方案缺乏有效手段去分析字段间的错综复杂加工逻辑,将很难确定真正的下游数据路径。在实际业务场景中,用户经常因漏分析WHEN处的限制条件导致影响分析评估不准确,进而对业务产生阻碍。
目前的血缘解析方式存在分析信息缺漏的问题,导致分析评估不准确。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高分析评估准确性的字段级血缘解析方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种字段级血缘解析方法。所述方法包括:
若获取到待查询字段,则根据待查询字段对应的查询类型,从字段映射表中确定与查询类型匹配的目标映射关系;字段映射表包括多个字段,以及各字段之间的映射关系;映射关系用于表征上游字段和下游字段之间的字段加工信息;
根据目标映射关系,从字段映射表中确定至少一个目标字段;
根据目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图;全链路字段依赖图包括与目标字段一一对应的字段节点,以及各字段节点之间用于表示映射关系的关系连线;
根据待查询字段,从全链路字段依赖图中确定和待查询字段对应的待查询字段节点,并根据待查询字段节点,从全链路字段依赖图中获取待查询字段链路,基于待查询字段链路得到待查询字段的血缘分析结果。
在其中一个实施例中,查询类型分为第一查询类型和第二查询类型,根据待查询字段对应的查询类型,从目标数据仓库平台的字段映射表中确定与查询类型匹配的目标映射关系,包括:
若待查询字段对应的查询类型为第一查询类型,将字段映射表中第一映射类型的映射关系,作为目标映射关系;
若待查询字段对应的查询类型为第二查询类型,将字段映射表中第一映射类型的映射关系和第二映射类型的映射关系,作为目标映射关系;
第一映射类型用于表征上游字段和下游字段之间的映射关系不存在限制条件;第二映射类型用于表征上游字段和下游字段之间的映射关系存在限制条件。
在其中一个实施例中,根据目标映射关系,从字段映射表中确定目标字段,包括:
从字段映射表中,确定目标映射关系对应的上游字段和下游字段,并将目标映射关系对应的上游字段和下游字段作为目标字段。
在其中一个实施例中,根据目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图,包括:
根据各目标字段之间的映射关系,确定各目标字段之间的上下游关系;
根据各目标字段之间的上下游关系,确定全链路字段依赖图的至少一个起始节点;
根据各目标字段之间的上下游关系,从至少一个起始节点开始,生成与各目标字段一一对应的字段节点,并在各字段节点之间生成与相应映射关系匹配的关系连线,得到全链路字段依赖图。
在其中一个实施例中,根据各字段之间的上下游关系,确定全链路字段依赖图的至少一个起始节点,包括:
若一个字段不存在对应的上游字段,且存在对应的下游字段,将字段作为起始字段;
根据起始字段生成一个起始节点。
在其中一个实施例中,在各字段节点之间生成与相应映射关系匹配的关系连线,包括:
若两个字段节点之间的映射关系为第一映射类型,在两个字段之间生成第一表现形式的关系连线;第一表现形式用于表征两个字段节点之间的映射关系不存在限制条件;
若两个字段节点之间的映射关系为第二映射类型,在两个字段之间生成第二表现形式的关系连线;第二表现形式用于表征两个字段节点之间的映射关系存在限制条件;
第一表现形式的关系连线和第二表现形式的关系连线由两个字段节点中的上游字段节点指向下游字段节点。
在其中一个实施例中,根据待查询字段节点,从全链路字段依赖图中获取待查询字段链路,包括:
根据待查询字段对应的查询路径,从全链路字段依赖图中确定和待查询字段节点对应的相关字段节点;
根据待查询字段节点和相关字段节点,从全链路字段依赖图中获取待查询字段链路。
在其中一个实施例中,查询路径分为上游链路查询和下游链路查询,根据待查询字段对应的查询路径,从全链路字段依赖图中确定和待查询字段节点对应的相关字段节点,包括:
根据全链路字段依赖图中各字段节点之间的映射关系,确定待查询字段对应的上游字段节点和下游字段节点;
若待查询字段对应的查询路径为上游链路查询,从全链路字段依赖图中获取待查询字段对应的上游字段节点作为相关字段节点;
若待查询字段对应的查询路径为下游链路查询,从全链路字段依赖图中获取待查询字段节点的下游字段节点作为相关字段节点。
在其中一个实施例中,若获取到待查询字段,则根据待查询字段对应的查询类型,从字段映射表中确定与查询类型匹配的目标映射关系之前,还包括:
获取查询信息;查询信息包括待查询字段,以及待查询字段对应的查询类型和查询路径。
在其中一个实施例中,方法还包括:
基于目标数据仓库平台的脚本文件构建抽象语法树;
根据抽象语法树获取相邻上游字段和下游字段之间的映射关系,根据映射关系构建字段映射表。
第二方面,本申请还提供了一种字段级血缘解析装置。所述装置包括:
获取模块,用于若获取到待查询字段,则根据待查询字段对应的查询类型,从字段映射表中确定与查询类型匹配的目标映射关系;字段映射表包括多个字段,以及各字段之间的映射关系;映射关系用于表征上游字段和下游字段之间的字段加工信息;
查询模块,用于根据目标映射关系,从字段映射表中确定至少一个目标字段;
生成模块,用于根据目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图;全链路字段依赖图包括与目标字段一一对应的字段节点,以及各字段节点之间用于表示映射关系的关系连线;
筛选模块,用于根据待查询字段,从全链路字段依赖图中确定和待查询字段对应的待查询字段节点,并根据待查询字段节点,从全链路字段依赖图中获取待查询字段链路,基于待查询字段链路得到待查询字段的血缘分析结果。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
若获取到待查询字段,则根据待查询字段对应的查询类型,从字段映射表中确定与查询类型匹配的目标映射关系;字段映射表包括多个字段,以及各字段之间的映射关系;映射关系用于表征上游字段和下游字段之间的字段加工信息;
根据目标映射关系,从字段映射表中确定至少一个目标字段;
根据目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图;全链路字段依赖图包括与目标字段一一对应的字段节点,以及各字段节点之间用于表示映射关系的关系连线;
根据待查询字段,从全链路字段依赖图中确定和待查询字段对应的待查询字段节点,并根据待查询字段节点,从全链路字段依赖图中获取待查询字段链路,基于待查询字段链路得到待查询字段的血缘分析结果。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
若获取到待查询字段,则根据待查询字段对应的查询类型,从字段映射表中确定与查询类型匹配的目标映射关系;字段映射表包括多个字段,以及各字段之间的映射关系;映射关系用于表征上游字段和下游字段之间的字段加工信息;
根据目标映射关系,从字段映射表中确定至少一个目标字段;
根据目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图;全链路字段依赖图包括与目标字段一一对应的字段节点,以及各字段节点之间用于表示映射关系的关系连线;
根据待查询字段,从全链路字段依赖图中确定和待查询字段对应的待查询字段节点,并根据待查询字段节点,从全链路字段依赖图中获取待查询字段链路,基于待查询字段链路得到待查询字段的血缘分析结果。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
若获取到待查询字段,则根据待查询字段对应的查询类型,从字段映射表中确定与查询类型匹配的目标映射关系;字段映射表包括多个字段,以及各字段之间的映射关系;映射关系用于表征上游字段和下游字段之间的字段加工信息;
根据目标映射关系,从字段映射表中确定至少一个目标字段;
根据目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图;全链路字段依赖图包括与目标字段一一对应的字段节点,以及各字段节点之间用于表示映射关系的关系连线;
根据待查询字段,从全链路字段依赖图中确定和待查询字段对应的待查询字段节点,并根据待查询字段节点,从全链路字段依赖图中获取待查询字段链路,基于待查询字段链路得到待查询字段的血缘分析结果。
上述字段级血缘解析方法、装置、计算机设备、存储介质和计算机程序产品,在获取到待查询字段的情况下,根据待查询字段对应的查询类型,从字段映射表中确定与查询类型匹配的目标映射关系。然后根据目标映射关系,从字段映射表中确定至少一个目标字段。最后根据目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图。在接收到查询需求时,才根据待查询字段生成全链路字段依赖图,并且能够从字段映射表按需选取字段数据,从而节省设备资源的占用。进一步的,根据待查询字段,从全链路字段依赖图中确定和待查询字段对应的待查询字段节点,并根据待查询字段节点,从全链路字段依赖图中获取待查询字段链路,基于待查询字段链路得到待查询字段的血缘分析结果。这样,根据待查询字段节点就能从全链路字段依赖图中获取和待查询字段相关的待查询字段链路,根据待查询字段链路就能得到待查询字段的血缘分析结果。能够防止字段级血缘解析过程中出现信息缺漏,提高了字段级血缘解析的准确性。
附图说明
图1为一个实施例中字段级血缘解析方法的流程示意图;
图2为一个实施例中仅包含第一映射类别的全链路字段依赖图的示意图;
图3为一个实施例中包含第一映射类别和第二映射类别的全链路字段依赖图的示意图;
图4为一个实施例中字段级血缘解析方法的逻辑流程图;
图5为一个实施例中字段级血缘解析装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,提供了一种字段级血缘解析方法,本实施例以该方法应用于计算机设备的进行举例说明,可以理解的是,该计算机设备具体可以是终端或服务器。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备、便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能医用设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本实施例中,该方法包括以下步骤:
步骤102,若获取到待查询字段,则根据待查询字段对应的查询类型,从字段映射表中确定与查询类型匹配的目标映射关系;字段映射表包括多个字段,以及各字段之间的映射关系;映射关系用于表征上游字段和下游字段之间的字段加工信息。
其中,字段映射表是根据抽象语法树(Abstract Syntax Tree,AST)中的数据信息生成得到,抽象语法树是基于ETL(Extract-Transform-Load,数据仓库技术)平台和数据库中的相关文件构建得到。字段映射表可以直接存储在计算机设备中,也可以存储在能够和计算机设备通信的服务器中,还可以存储在外部存储设备中,外部存储设备可以和计算机设备连接并进行数据传输。
可选的,计算机设备接受查询信息,从查询信息中识别到待查询字段和查询类型,根据查询类型,在字段映射表中筛选与查询类型匹配的目标映射关系。字段映射表中通常包括多个字段,每个字段的来源信息,以及每两个字段之间的映射关系(字段加工信息),并一个字段可能存在和多个其他字段的映射关系,一个字段可以是另一个字段的上游字段,同时也可以是第三个字段的下游字段。通常情况下,在两个存在映射关系的字段之间,上游字段是指字段加工前的源字段,下游字段是指字段加工后的目标字段,并且一个字段可以同时出在在源字段和目标字段中。例如,A字段通过XX加工方式得到B字段,B字段通过YY加工方式得到C字段,则A字段是B字段的上游字段,B字段是A字段的上游字段,也可以说A字段是B字段的源字段,B字段是A字段的目标字段,A字段和B字段之间的映射关系是XX加工方式;同理B字段是C字段的上游字段,C字段是B字段的上游字段,也可以说B字段是C字段的源字段,C字段是B字段的目标字段,B字段和C字段之间的映射关系是YY加工方式。
在一个可行的实施方式中,字段映射表中还包括每一个字段的来源信息,来源信息包括表级来源和库级来源,如表1所示的一个字段映射表中,前三个数据项(源库,源表,源字段)表示源端的组成对象,后面三个(目标库,目标表,目标字段)数据项表示目标端的组成对象,最后一个目标数据表达式是目标字段的逻辑数据组成,即源端数据到目标数据的具体映射逻辑。前六项数据只关注上下游表字段间存在的关系依赖(相当于是否存在映射关系),最后一项说明这些关系依赖的具体形式(相当于两个字段之间具体的映射关系)。传统血缘解析方案通常仅关注上下游表字段之间的依赖关系,本专利申请提案将数据血缘粒度在细化到字段级的同时,提供任意的字段在转化过程中的完整的含有源表名、源字段的加工逻辑并将加工逻辑纳入到血缘链路影响分析算法中,从而实现数据血缘问题定位溯源并解决下游影响分析不准确的问题。
表1
步骤104,根据目标映射关系,从字段映射表中确定至少一个目标字段。
可选的,计算机设备根据确定的目标映射关系,从字段映射表中逐一遍历每一个目标映射关系对应的上游字段和下游字段,从而得到全部目标字段。
步骤106,根据目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图;全链路字段依赖图包括与目标字段一一对应的字段节点,以及各字段节点之间用于表示映射关系的关系连线。
可选的,计算机设备根据目标字段生成字段节点,根据每两个目标字段之间的映射关系生成字段节点之间的关系连线,生成一个包含所有目标字段、以及各目标字段之间的映射关系的全链路字段依赖图。
步骤108,根据待查询字段,从全链路字段依赖图中确定和待查询字段对应的待查询字段节点,并根据待查询字段节点,从全链路字段依赖图中获取待查询字段链路,基于待查询字段链路得到待查询字段的血缘分析结果。
可选的,计算机设备根据从查询信息中识别到的待查询字段,从临时生成的全链路字段依赖图中确定和待查询字段对应的待查询字段节点,然后提取出待查询字段节点所在的待查询字段链路,待查询字段链路可以是待查询字段节点作为起始节点,向待查询字段节点的下游节点方向延伸,直到全链路字段依赖图的末尾节点的路径;也可以是待查询字段节点作为末尾节点,向待查询字段节点的上游节点方向延伸,直到全链路字段依赖图的起始节点的路径;还可以是包含待查询字段节点的,从全链路字段依赖图的起始节点到全链路字段依赖图的末尾节点的路径。进一步的,计算机设备根据待查询字段链路生成待查询字段的血缘分析结果,也可以直接将待查询字段链路作为待查询字段的血缘分析结果。
在一个可行的实施方式中,计算机设备从全链路字段依赖图中获取待查询字段链路之后,删除全链路字段依赖图,只保留待查询字段链路,从而节省设备资源,降低设备负载。
上述字段级血缘解析方法中,在获取到待查询字段的情况下,根据待查询字段对应的查询类型,从字段映射表中确定与查询类型匹配的目标映射关系。然后根据目标映射关系,从字段映射表中确定至少一个目标字段。最后根据目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图。在接收到查询需求时,才根据待查询字段生成全链路字段依赖图,并且能够从字段映射表按需选取字段数据,从而节省设备资源的占用。进一步的,根据待查询字段,从全链路字段依赖图中确定和待查询字段对应的待查询字段节点,并根据待查询字段节点,从全链路字段依赖图中获取待查询字段链路,基于待查询字段链路得到待查询字段的血缘分析结果。这样,根据待查询字段节点就能从全链路字段依赖图中获取和待查询字段相关的待查询字段链路,根据待查询字段链路就能得到待查询字段的血缘分析结果。能够防止字段级血缘解析过程中出现信息缺漏,提高了字段级血缘解析的准确性。
在一个实施例中,查询类型分为第一查询类型和第二查询类型,根据待查询字段对应的查询类型,从目标数据仓库平台的字段映射表中确定与查询类型匹配的目标映射关系,包括:若待查询字段对应的查询类型为第一查询类型,将字段映射表中第一映射类型的映射关系,作为目标映射关系;若待查询字段对应的查询类型为第二查询类型,将字段映射表中第一映射类型的映射关系和第二映射类型的映射关系,作为目标映射关系;第一映射类型用于表征上游字段和下游字段之间的映射关系不存在限制条件;第二映射类型用于表征上游字段和下游字段之间的映射关系存在限制条件。
其中,映射关系存在限制条件,是指在满足一定条件下,上游字段才会进行字段加工得到下游字段。
可选的,在字段映射表中,预先对各映射关系进行映射类型划分,将存在限制条件的映射类型添加第二映射类型的标签,将不存在限制条件的映射关系添加第一映射类型的标签,并建立映射类型和查询类型的对应关系,第一查询类型和第一映射类型对应,第二查询类型同时和第一映射类型、第二映射类型对应,相当于预先配置了两个查询类型,第二查询类型能够查询到比第一查询类型更详细的信息。当计算机设备接收到查询信息,并从查询信息中识别待查询字段对应的查询类型之后,根据映射类型和查询类型的对应关系,确定需要查找的映射类型的标签。若查询类型为第一查询类型,将字段映射表中第一映射类型的映射关系,作为目标映射关系;若待查询字段对应的查询类型为第二查询类型,从字段映射表中第一映射类型的映射关系和第二映射类型的映射关系,作为目标映射关系。
本实施例中,若待查询字段对应的查询类型为第一查询类型,将字段映射表中第一映射类型的映射关系,作为目标映射关系;若待查询字段对应的查询类型为第二查询类型,将字段映射表中第一映射类型的映射关系和第二映射类型的映射关系,作为目标映射关系;第一映射类型用于表征上游字段和下游字段之间的映射关系不存在限制条件;第二映射类型用于表征上游字段和下游字段之间的映射关系存在限制条件。可以根据不同的查询需求,从字段映射表中选取不同数量、不同类型的字段相关数据,能够提高设备的运行速度,从而提高血缘解析效率。
在一个实施例中,根据目标映射关系,从字段映射表中确定目标字段,包括:从字段映射表中,确定目标映射关系对应的上游字段和下游字段,并将目标映射关系对应的上游字段和下游字段作为目标字段。
可选的,如表1所示,计算机设备在确定了目标映射关系之后,将一个目标映射关系同一行的源字段(上游字段)和目标字段(下游字段)作为两个目标字段,逐一遍历每一个目标目标映射关系同一行的源字段和目标字段,得到该次查询过程中所有的目标字段。
本实施例中,从字段映射表中,确定目标映射关系对应的上游字段和下游字段,并将目标映射关系对应的上游字段和下游字段作为目标字段。能够根据选择的目标映射关系,从字段映射表中自动确定出所有的目标字段,能够提高血缘解析效率。
在一个实施例中,根据目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图,包括:根据各目标字段之间的映射关系,确定各目标字段之间的上下游关系;若一个字段不存在对应的上游字段,且存在对应的下游字段,将字段作为起始字段;根据起始字段生成一个起始节点。根据各目标字段之间的上下游关系,从至少一个起始节点开始,生成与各目标字段一一对应的字段节点,若两个字段节点之间的映射关系为第一映射类型,在两个字段之间生成第一表现形式的关系连线;第一表现形式用于表征两个字段节点之间的映射关系不存在限制条件;若两个字段节点之间的映射关系为第二映射类型,在两个字段之间生成第二表现形式的关系连线;得到全链路字段依赖图。第二表现形式用于表征两个字段节点之间的映射关系存在限制条件;第一表现形式的关系连线和第二表现形式的关系连线由两个字段节点中的上游字段节点指向下游字段节点。
其中,第一表现形式的关系连线可以采用实线进行表示,第二表现形式的关系连线可以采用虚线进行表示。
可选的,遍历如表1所示的字段映射表,计算源字段集SET_SRC(源库、源表、源字段)-目标字段集SET_TAR(目标库、目标表、目标字段)的集合差值,其中不存在于目标字段集的源字段对象(集合差值)即为全局依赖图的起始节点。相当于找到没有对应上游节点,仅存在对应下游节点的字段节点作为起始节点。将起始节点存放到starts数组结构中,后续针对每个起始节点,可进行针对性的路径生成。此处定义:起始节点的具体内容为{库、表、字段}或{库、表}两类。例如{SO.CPG.BUMENN}或者{SO.CPG}可视为一个图节点。
在计算机设备接收到第一查询类型的情况下,视图和批量作业的字段映射表生成之后,以上述提取的起始节点或者自定义的任何其他节点作为链路的起点,通过图的深度遍历算法(DFS),生成全链路的描述各字段节点之间映射关系的节点依赖图G,主要流程如下:
按用户需求收集期望的链路起点,置为节点集合S;预设一个节点访问状态集合P,缺省包含字段映射表的所有的节点且所有节点为未访问状态;预设一个待访问节点栈C,缺省设置为空。另外,可按用户需求(例如,查询指定区间段血缘关系时)选设一个特殊过滤节点集合F,可在链路生成时控制链路节点的组合逻辑。
将用户指定的起始集合S中的节点按顺序推入待访问节点栈C。栈本身就是一个集合,但它的访问逻辑是固定的先进后出,后进先出。
从待访问节点栈C中弹出一个节点N0,将该节点N0作为步骤4中的字段映射表中的源端,提取字段映射表中对应的目标端对象Nx(可能存在多个目标节点)。
若目标端对象Nx为空,则直接跳到流程6;否则,此时或可依序检查这些对象是否满足特定的链路生成逻辑,例如这些节点是否被特殊过滤节点集合F包含,没有满足过滤需求且目前不在待访问节点栈C中的未访问节点将被插入待访问节点栈C中,同时将状态集合P中的节点N0的访问状态置为已访问。
通过K/V键值对方式存储图,其中K为源端节点,V为目标端节点,并且执行去重。将流程3中的节点N0作为K,Nx作为V,将这些键值对插入图G中。
重复执行流程3、4和5:不断从待访问节点栈C中弹出一个节点进行访问,直到待访问节点栈C为空,即生成最终的节点依赖图G,如图2所示,可以看到,图2中仅包含映射关系为第一映射类型(实线)的各字段节点。
节点依赖图G中节点可为表级或字段级,且皆存在多种不同类型的节点,如永久表T(见图中T1、T2等),临时表TT(见图中TT1、TT2)和视图V(见图中V1、V2等)。长度为1的路径(如T2-V2)或可表示代表视图逻辑中存在的关系依赖,即实体表中的信息转移到视图中,而长度大于1的路径(如T1-TT2-T5)或可表示ETL作业逻辑中存在的关系依赖,即信息依次在不同节点中进行转移。
另外,由于表级依赖关系取自于字段级依赖关系,所以字段级节点依赖图本质上已经蕴含了表级依赖图。
其中,Cx都表示字段级节点,即由{库、表、字段}组成,A是一个标记节点,所有指向该节点的上游字段节点都为限制流节点。例如,上图中相邻的两个节点(T2,A),表示在某个SQL语句中,T2节点曾作为取数限制字段,过滤了目标端不需要的数据。
在计算机设备接收到第二查询类型的情况下,当分析字段级血缘关系时,基于图2生成的节点依赖图G,针对每一条第二映射类型的映射关系构建一条辅助限制流,如图3所示。通常在视图或ETL作业的逻辑中,在数据加工环节时常存在关于某些字段的限制,以此来过滤目标数据。例如CASE C WHEN DCASE E WHEN F的条件判断语句中,C、E处为字段限制条件,由于这些限制字段在实际中并无数据转移的底层逻辑,因此无法体现在图2的数据流中,但是C、E处的值将直接影响最终目标字段的返回值,因此对图2进行进一步处理,得到图3,可以看到,图3中同时包含映射关系为第一映射类型(实线)和第二映射类型(虚线)的各字段节点。
其中,Cx都表示字段级节点,即由{库、表、字段}组成,A是一个标记节点,所有指向该节点的上游字段节点都为限制流节点。例如,上图中相邻的两个节点(T2,A),表示在某个SQL语句中,T2节点曾作为取数限制字段,过滤了目标端不需要的数据。
本实施例中,根据各目标字段之间的映射关系,确定各目标字段之间的上下游关系;根据各目标字段之间的上下游关系,确定全链路字段依赖图的至少一个起始节点;根据各目标字段之间的上下游关系,从至少一个起始节点开始,生成与各目标字段一一对应的字段节点,并在各字段节点之间生成与相应映射关系匹配的关系连线,得到全链路字段依赖图。能够按照不同的查询需求,生成包含不同信息量的全链路字段依赖图,能够提高字段级血缘解析的准确性,同时提高血缘解析效率。
在一个实施例中,根据待查询字段节点,从全链路字段依赖图中获取待查询字段链路,包括:查询路径分为上游链路查询和下游链路查询,根据全链路字段依赖图中各字段节点之间的映射关系,确定待查询字段对应的上游字段节点和下游字段节点;若待查询字段对应的查询路径为上游链路查询,从全链路字段依赖图中获取待查询字段对应的上游字段节点作为相关字段节点;若待查询字段对应的查询路径为下游链路查询,从全链路字段依赖图中获取待查询字段节点的下游字段节点作为相关字段节点。根据待查询字段节点和相关字段节点,从全链路字段依赖图中获取待查询字段链路。
可选的,查询信息中还可以包含查询路径信息,计算机设备从查询信息中识别查询路径,查询路径可以分为上游链路查询和下游链路查询。如果待查询字段对应的查询路径为上游链路查询,计算机设备从全链路字段依赖图中获取待查询字段对应的上游字段节点作为相关字段节点,待查询字段链路就是待查询字段节点作为起始节点,向待查询字段节点的下游节点方向延伸,经过相关字段节点,直到全链路字段依赖图的末尾节点的路径。如果若待查询字段对应的查询路径为下游链路查询,计算机设备从全链路字段依赖图中获取待查询字段节点的下游字段节点作为相关字段节点,待查询字段链路就是待查询字段节点作为末尾节点,向待查询字段节点的上游节点方向延伸,经过相关字段节点,直到全链路字段依赖图的起始节点的路径。
本实施例中,根据待查询字段对应的查询路径,从全链路字段依赖图中确定和待查询字段节点对应的相关字段节点;根据待查询字段节点和相关字段节点,从全链路字段依赖图中获取待查询字段链路。能够按照不同的查询需求,生成包含不同信息量的待查询字段链路,能够提高字段级血缘解析的准确性,同时提高血缘解析效率。
在一个实施例中,若获取到待查询字段,则根据待查询字段对应的查询类型,从字段映射表中确定与查询类型匹配的目标映射关系之前,还包括:获取查询信息;查询信息包括待查询字段,以及待查询字段对应的查询类型和查询路径。
可选的,计算机设备在接收到查询信息的情况下,对查询信息进行识别,当检测到查询信息中的待查询字段时,才会根据查询类型生成全链路字段依赖图,并根据查询路径从全链路字段依赖图选取待查询字段链路。
本实施例中,获取查询信息;查询信息包括待查询字段,以及待查询字段对应的查询类型和查询路径。能够在不执行血缘解析任务时降低设备负载,提高设备资源运用效率。
在一个实施例中,方法还包括:基于目标数据仓库平台的脚本文件构建抽象语法树;根据抽象语法树获取相邻上游字段和下游字段之间的映射关系,根据映射关系构建字段映射表。
其中,抽象语法树(Abstract Syntax Tree,AST)是语法结构的一种抽象表示,以树状的形式展现语法结构,树上的每个节点都表示源代码中的一种结构。
可选的,计算机设备预先基于目标数据仓库平台的脚本文件构建抽象语法树;根据抽象语法树获取相邻上游字段和下游字段之间的映射关系,根据映射关系构建字段映射表,存储字段映射表,便于执行血缘解析任务。
具体的,收集所有ETL脚本,考虑到SQL脚本的目的是输出SQL到数据仓库并执行,为输出完整SQL逻辑,对脚本执行如下修改变更:
1)在脚本的开始阶段关闭标准输出,即标准输出重定向至/dev/null,此后脚本不再输出任何信息。
2)定位到SQL输出语句段。
3)在SQL输出语句段之前恢复开启标准输出。
4)在SQL输出语句段之后继续关闭标准输出。
执行修改后的ETL脚本,根据输入的数据日期参数,获得每个批量作业当日的完整业务逻辑,且该SQL逻辑不会包含任何无效信息,无需清洗即可导出生成相应SQL逻辑文件A。
通过遍历查询数据库的DBC数据字典,获取所有有效的视图节点以及对应的结构定义DDL语句,并导出生成相应关系实体B(相当于数据文件)。
通常情况下,可支持的SQL类型包含:Teradata、Mysql、GaussDB和Hive,但并不对可支持的SQL类型有具体限定。SQL语句经过Antlr4解析,生成Unresolved Logical Plan后,Analyzer与Catalog进行绑定,生成Logical Plan;血缘解析器对Logical Plan进行分析;根据不同的Logical Plan类型进行不同的处理,或递归调用,或分析源表、目标表映射关系,或分析列到列的映射关系。最后组合、返回数据血缘解析结果给调用方。
启用适配支持Teradata、GaussDB语法的Antlr4程序,输入SQL文件A和关系实体B,生成相关的抽象语法树,以表征各语句的数据逻辑结构。
示例SQL如下:
本实施例中,基于目标数据仓库平台的脚本文件构建抽象语法树;根据抽象语法树获取相邻上游字段和下游字段之间的映射关系,根据映射关系构建字段映射表。能够避免传统血缘分析存在血缘解析滞后性、受每日常规批量日期限制、日志不规范清洗复杂等问题,提高信息的有效性。
在一个实施例中,一种字段级血缘解析方法,如图4所示,包括:
基于目标数据仓库平台的脚本文件构建抽象语法树;根据抽象语法树获取相邻上游字段和下游字段之间的映射关系,根据映射关系构建字段映射表。
获取查询信息;查询信息包括待查询字段,以及待查询字段对应的查询类型和查询路径。查询类型分为第一查询类型和第二查询类型,查询路径分为上游链路查询和下游链路查询。
若获取到待查询字段,则若待查询字段对应的查询类型为第一查询类型,将字段映射表中第一映射类型的映射关系,作为目标映射关系;若待查询字段对应的查询类型为第二查询类型,将字段映射表中第一映射类型的映射关系和第二映射类型的映射关系,作为目标映射关系;第一映射类型用于表征上游字段和下游字段之间的映射关系不存在限制条件;第二映射类型用于表征上游字段和下游字段之间的映射关系存在限制条件。字段映射表包括多个字段,以及各字段之间的映射关系;映射关系用于表征上游字段和下游字段之间的字段加工信息。
从字段映射表中,确定目标映射关系对应的上游字段和下游字段,并将目标映射关系对应的上游字段和下游字段作为目标字段。
根据各目标字段之间的映射关系,确定各目标字段之间的上下游关系;若一个字段不存在对应的上游字段,且存在对应的下游字段,将字段作为起始字段;根据起始字段生成一个起始节点。根据各目标字段之间的上下游关系,从至少一个起始节点开始,生成与各目标字段一一对应的字段节点,若两个字段节点之间的映射关系为第一映射类型,在两个字段之间生成第一表现形式的关系连线;第一表现形式用于表征两个字段节点之间的映射关系不存在限制条件;若两个字段节点之间的映射关系为第二映射类型,在两个字段之间生成第二表现形式的关系连线;得到全链路字段依赖图(仅包含第一映射类型的数据流全链路字段依赖图或者同时包含第一映射类型和第二映射类型的限制流全链路字段依赖图)。第二表现形式用于表征两个字段节点之间的映射关系存在限制条件;第一表现形式的关系连线和第二表现形式的关系连线由两个字段节点中的上游字段节点指向下游字段节点。全链路字段依赖图包括与目标字段一一对应的字段节点,以及各字段节点之间用于表示映射关系的关系连线。
根据待查询字段,从全链路字段依赖图中确定和待查询字段对应的待查询字段节点,并根据全链路字段依赖图中各字段节点之间的映射关系,确定待查询字段对应的上游字段节点和下游字段节点。若待查询字段对应的查询路径为上游链路查询,从全链路字段依赖图中获取待查询字段对应的上游字段节点作为相关字段节点;若待查询字段对应的查询路径为下游链路查询,从全链路字段依赖图中获取待查询字段节点的下游字段节点作为相关字段节点。根据待查询字段节点和相关字段节点,从全链路字段依赖图中获取待查询字段链路。基于待查询字段链路得到待查询字段的血缘分析结果。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的字段级血缘解析方法的字段级血缘解析装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个字段级血缘解析装置实施例中的具体限定可以参见上文中对于字段级血缘解析方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种字段级血缘解析装置500,包括:获取模块501、查询模块502、生成模块503和筛选模块504,其中:
获取模块501,用于若获取到待查询字段,则根据待查询字段对应的查询类型,从字段映射表中确定与查询类型匹配的目标映射关系;字段映射表包括多个字段,以及各字段之间的映射关系;映射关系用于表征上游字段和下游字段之间的字段加工信息;
查询模块502,用于根据目标映射关系,从字段映射表中确定至少一个目标字段;
生成模块503,用于根据目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图;全链路字段依赖图包括与目标字段一一对应的字段节点,以及各字段节点之间用于表示映射关系的关系连线;
筛选模块504,用于根据待查询字段,从全链路字段依赖图中确定和待查询字段对应的待查询字段节点,并根据待查询字段节点,从全链路字段依赖图中获取待查询字段链路,基于待查询字段链路得到待查询字段的血缘分析结果。
在一个实施例中,查询类型分为第一查询类型和第二查询类型,获取模块501还用于若待查询字段对应的查询类型为第一查询类型,将字段映射表中第一映射类型的映射关系,作为目标映射关系;若待查询字段对应的查询类型为第二查询类型,将字段映射表中第一映射类型的映射关系和第二映射类型的映射关系,作为目标映射关系;第一映射类型用于表征上游字段和下游字段之间的映射关系不存在限制条件;第二映射类型用于表征上游字段和下游字段之间的映射关系存在限制条件。
在一个实施例中,查询模块502还用于从字段映射表中,确定目标映射关系对应的上游字段和下游字段,并将目标映射关系对应的上游字段和下游字段作为目标字段。
在一个实施例中,生成模块503还用于根据各目标字段之间的映射关系,确定各目标字段之间的上下游关系;根据各目标字段之间的上下游关系,确定全链路字段依赖图的至少一个起始节点;根据各目标字段之间的上下游关系,从至少一个起始节点开始,生成与各目标字段一一对应的字段节点,并在各字段节点之间生成与相应映射关系匹配的关系连线,得到全链路字段依赖图。
在一个实施例中,生成模块503还用于若一个字段不存在对应的上游字段,且存在对应的下游字段,将字段作为起始字段;根据起始字段生成一个起始节点。
在一个实施例中,生成模块503还用于若两个字段节点之间的映射关系为第一映射类型,在两个字段之间生成第一表现形式的关系连线;第一表现形式用于表征两个字段节点之间的映射关系不存在限制条件;若两个字段节点之间的映射关系为第二映射类型,在两个字段之间生成第二表现形式的关系连线;第二表现形式用于表征两个字段节点之间的映射关系存在限制条件;第一表现形式的关系连线和第二表现形式的关系连线由两个字段节点中的上游字段节点指向下游字段节点。
在一个实施例中,筛选模块504还用于根据待查询字段对应的查询路径,从全链路字段依赖图中确定和待查询字段节点对应的相关字段节点;根据待查询字段节点和相关字段节点,从全链路字段依赖图中获取待查询字段链路。
在一个实施例中,查询路径分为上游链路查询和下游链路查询,筛选模块504还用于根据全链路字段依赖图中各字段节点之间的映射关系,确定待查询字段对应的上游字段节点和下游字段节点;若待查询字段对应的查询路径为上游链路查询,从全链路字段依赖图中获取待查询字段对应的上游字段节点作为相关字段节点;若待查询字段对应的查询路径为下游链路查询,从全链路字段依赖图中获取待查询字段节点的下游字段节点作为相关字段节点。
在一个实施例中,获取模块501还用于获取查询信息;查询信息包括待查询字段,以及待查询字段对应的查询类型和查询路径。
在一个实施例中,装置还包括:
预处理模块505,用于基于目标数据仓库平台的脚本文件构建抽象语法树;根据抽象语法树获取相邻上游字段和下游字段之间的映射关系,根据映射关系构建字段映射表。
上述字段级血缘解析装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种字段级血缘解析方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:若获取到待查询字段,则根据待查询字段对应的查询类型,从字段映射表中确定与查询类型匹配的目标映射关系;字段映射表包括多个字段,以及各字段之间的映射关系;映射关系用于表征上游字段和下游字段之间的字段加工信息;根据目标映射关系,从字段映射表中确定至少一个目标字段;根据目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图;全链路字段依赖图包括与目标字段一一对应的字段节点,以及各字段节点之间用于表示映射关系的关系连线;根据待查询字段,从全链路字段依赖图中确定和待查询字段对应的待查询字段节点,并根据待查询字段节点,从全链路字段依赖图中获取待查询字段链路,基于待查询字段链路得到待查询字段的血缘分析结果。
在一个实施例中,查询类型分为第一查询类型和第二查询类型,处理器执行计算机程序时还实现以下步骤:若待查询字段对应的查询类型为第一查询类型,将字段映射表中第一映射类型的映射关系,作为目标映射关系;若待查询字段对应的查询类型为第二查询类型,将字段映射表中第一映射类型的映射关系和第二映射类型的映射关系,作为目标映射关系;第一映射类型用于表征上游字段和下游字段之间的映射关系不存在限制条件;第二映射类型用于表征上游字段和下游字段之间的映射关系存在限制条件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:从字段映射表中,确定目标映射关系对应的上游字段和下游字段,并将目标映射关系对应的上游字段和下游字段作为目标字段。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据各目标字段之间的映射关系,确定各目标字段之间的上下游关系;根据各目标字段之间的上下游关系,确定全链路字段依赖图的至少一个起始节点;根据各目标字段之间的上下游关系,从至少一个起始节点开始,生成与各目标字段一一对应的字段节点,并在各字段节点之间生成与相应映射关系匹配的关系连线,得到全链路字段依赖图。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若一个字段不存在对应的上游字段,且存在对应的下游字段,将字段作为起始字段;根据起始字段生成一个起始节点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若两个字段节点之间的映射关系为第一映射类型,在两个字段之间生成第一表现形式的关系连线;第一表现形式用于表征两个字段节点之间的映射关系不存在限制条件;若两个字段节点之间的映射关系为第二映射类型,在两个字段之间生成第二表现形式的关系连线;第二表现形式用于表征两个字段节点之间的映射关系存在限制条件;第一表现形式的关系连线和第二表现形式的关系连线由两个字段节点中的上游字段节点指向下游字段节点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据待查询字段对应的查询路径,从全链路字段依赖图中确定和待查询字段节点对应的相关字段节点;根据待查询字段节点和相关字段节点,从全链路字段依赖图中获取待查询字段链路。
在一个实施例中,查询路径分为上游链路查询和下游链路查询,处理器执行计算机程序时还实现以下步骤:根据全链路字段依赖图中各字段节点之间的映射关系,确定待查询字段对应的上游字段节点和下游字段节点;若待查询字段对应的查询路径为上游链路查询,从全链路字段依赖图中获取待查询字段对应的上游字段节点作为相关字段节点;若待查询字段对应的查询路径为下游链路查询,从全链路字段依赖图中获取待查询字段节点的下游字段节点作为相关字段节点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取查询信息;查询信息包括待查询字段,以及待查询字段对应的查询类型和查询路径。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于目标数据仓库平台的脚本文件构建抽象语法树;根据抽象语法树获取相邻上游字段和下游字段之间的映射关系,根据映射关系构建字段映射表。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:若获取到待查询字段,则根据待查询字段对应的查询类型,从字段映射表中确定与查询类型匹配的目标映射关系;字段映射表包括多个字段,以及各字段之间的映射关系;映射关系用于表征上游字段和下游字段之间的字段加工信息;根据目标映射关系,从字段映射表中确定至少一个目标字段;根据目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图;全链路字段依赖图包括与目标字段一一对应的字段节点,以及各字段节点之间用于表示映射关系的关系连线;根据待查询字段,从全链路字段依赖图中确定和待查询字段对应的待查询字段节点,并根据待查询字段节点,从全链路字段依赖图中获取待查询字段链路,基于待查询字段链路得到待查询字段的血缘分析结果。
在一个实施例中,查询类型分为第一查询类型和第二查询类型,计算机程序被处理器执行时还实现以下步骤:若待查询字段对应的查询类型为第一查询类型,将字段映射表中第一映射类型的映射关系,作为目标映射关系;若待查询字段对应的查询类型为第二查询类型,将字段映射表中第一映射类型的映射关系和第二映射类型的映射关系,作为目标映射关系;第一映射类型用于表征上游字段和下游字段之间的映射关系不存在限制条件;第二映射类型用于表征上游字段和下游字段之间的映射关系存在限制条件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:从字段映射表中,确定目标映射关系对应的上游字段和下游字段,并将目标映射关系对应的上游字段和下游字段作为目标字段。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据各目标字段之间的映射关系,确定各目标字段之间的上下游关系;根据各目标字段之间的上下游关系,确定全链路字段依赖图的至少一个起始节点;根据各目标字段之间的上下游关系,从至少一个起始节点开始,生成与各目标字段一一对应的字段节点,并在各字段节点之间生成与相应映射关系匹配的关系连线,得到全链路字段依赖图。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若一个字段不存在对应的上游字段,且存在对应的下游字段,将字段作为起始字段;根据起始字段生成一个起始节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若两个字段节点之间的映射关系为第一映射类型,在两个字段之间生成第一表现形式的关系连线;第一表现形式用于表征两个字段节点之间的映射关系不存在限制条件;若两个字段节点之间的映射关系为第二映射类型,在两个字段之间生成第二表现形式的关系连线;第二表现形式用于表征两个字段节点之间的映射关系存在限制条件;第一表现形式的关系连线和第二表现形式的关系连线由两个字段节点中的上游字段节点指向下游字段节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据待查询字段对应的查询路径,从全链路字段依赖图中确定和待查询字段节点对应的相关字段节点;根据待查询字段节点和相关字段节点,从全链路字段依赖图中获取待查询字段链路。
在一个实施例中,查询路径分为上游链路查询和下游链路查询,计算机程序被处理器执行时还实现以下步骤:根据全链路字段依赖图中各字段节点之间的映射关系,确定待查询字段对应的上游字段节点和下游字段节点;若待查询字段对应的查询路径为上游链路查询,从全链路字段依赖图中获取待查询字段对应的上游字段节点作为相关字段节点;若待查询字段对应的查询路径为下游链路查询,从全链路字段依赖图中获取待查询字段节点的下游字段节点作为相关字段节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取查询信息;查询信息包括待查询字段,以及待查询字段对应的查询类型和查询路径。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于目标数据仓库平台的脚本文件构建抽象语法树;根据抽象语法树获取相邻上游字段和下游字段之间的映射关系,根据映射关系构建字段映射表。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
若获取到待查询字段,则根据待查询字段对应的查询类型,从字段映射表中确定与查询类型匹配的目标映射关系;字段映射表包括多个字段,以及各字段之间的映射关系;映射关系用于表征上游字段和下游字段之间的字段加工信息;根据目标映射关系,从字段映射表中确定至少一个目标字段;根据目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图;全链路字段依赖图包括与目标字段一一对应的字段节点,以及各字段节点之间用于表示映射关系的关系连线;根据待查询字段,从全链路字段依赖图中确定和待查询字段对应的待查询字段节点,并根据待查询字段节点,从全链路字段依赖图中获取待查询字段链路,基于待查询字段链路得到待查询字段的血缘分析结果。
在一个实施例中,查询类型分为第一查询类型和第二查询类型,计算机程序被处理器执行时还实现以下步骤:若待查询字段对应的查询类型为第一查询类型,将字段映射表中第一映射类型的映射关系,作为目标映射关系;若待查询字段对应的查询类型为第二查询类型,将字段映射表中第一映射类型的映射关系和第二映射类型的映射关系,作为目标映射关系;第一映射类型用于表征上游字段和下游字段之间的映射关系不存在限制条件;第二映射类型用于表征上游字段和下游字段之间的映射关系存在限制条件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:从字段映射表中,确定目标映射关系对应的上游字段和下游字段,并将目标映射关系对应的上游字段和下游字段作为目标字段。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据各目标字段之间的映射关系,确定各目标字段之间的上下游关系;根据各目标字段之间的上下游关系,确定全链路字段依赖图的至少一个起始节点;根据各目标字段之间的上下游关系,从至少一个起始节点开始,生成与各目标字段一一对应的字段节点,并在各字段节点之间生成与相应映射关系匹配的关系连线,得到全链路字段依赖图。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若一个字段不存在对应的上游字段,且存在对应的下游字段,将字段作为起始字段;根据起始字段生成一个起始节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若两个字段节点之间的映射关系为第一映射类型,在两个字段之间生成第一表现形式的关系连线;第一表现形式用于表征两个字段节点之间的映射关系不存在限制条件;若两个字段节点之间的映射关系为第二映射类型,在两个字段之间生成第二表现形式的关系连线;第二表现形式用于表征两个字段节点之间的映射关系存在限制条件;第一表现形式的关系连线和第二表现形式的关系连线由两个字段节点中的上游字段节点指向下游字段节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据待查询字段对应的查询路径,从全链路字段依赖图中确定和待查询字段节点对应的相关字段节点;根据待查询字段节点和相关字段节点,从全链路字段依赖图中获取待查询字段链路。
在一个实施例中,查询路径分为上游链路查询和下游链路查询,计算机程序被处理器执行时还实现以下步骤:根据全链路字段依赖图中各字段节点之间的映射关系,确定待查询字段对应的上游字段节点和下游字段节点;若待查询字段对应的查询路径为上游链路查询,从全链路字段依赖图中获取待查询字段对应的上游字段节点作为相关字段节点;若待查询字段对应的查询路径为下游链路查询,从全链路字段依赖图中获取待查询字段节点的下游字段节点作为相关字段节点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取查询信息;查询信息包括待查询字段,以及待查询字段对应的查询类型和查询路径。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于目标数据仓库平台的脚本文件构建抽象语法树;根据抽象语法树获取相邻上游字段和下游字段之间的映射关系,根据映射关系构建字段映射表。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (14)
1.一种字段级血缘解析方法,其特征在于,所述方法包括:
若获取到待查询字段,则根据所述待查询字段对应的查询类型,从字段映射表中确定与所述查询类型匹配的目标映射关系;所述字段映射表包括多个字段,以及各字段之间的映射关系;所述映射关系用于表征上游字段和下游字段之间的字段加工信息;
根据所述目标映射关系,从所述字段映射表中确定至少一个目标字段;
根据所述目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图;所述全链路字段依赖图包括与所述目标字段一一对应的字段节点,以及各字段节点之间用于表示映射关系的关系连线;
根据所述待查询字段,从所述全链路字段依赖图中确定和所述待查询字段对应的待查询字段节点,并根据所述待查询字段节点,从所述全链路字段依赖图中获取待查询字段链路,基于所述待查询字段链路得到所述待查询字段的血缘分析结果。
2.根据权利要求1所述的方法,其特征在于,所述查询类型分为第一查询类型和第二查询类型,所述根据所述待查询字段对应的查询类型,从目标数据仓库平台的字段映射表中确定与所述查询类型匹配的目标映射关系,包括:
若所述待查询字段对应的查询类型为所述第一查询类型,将所述字段映射表中第一映射类型的映射关系,作为所述目标映射关系;
若所述待查询字段对应的查询类型为所述第二查询类型,将所述字段映射表中第一映射类型的映射关系和第二映射类型的映射关系,作为所述目标映射关系;
所述第一映射类型用于表征上游字段和下游字段之间的映射关系不存在限制条件;所述第二映射类型用于表征上游字段和下游字段之间的映射关系存在限制条件。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标映射关系,从所述字段映射表中确定目标字段,包括:
从所述字段映射表中,确定所述目标映射关系对应的上游字段和下游字段,并将所述目标映射关系对应的上游字段和下游字段作为所述目标字段。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图,包括:
根据各目标字段之间的映射关系,确定各目标字段之间的上下游关系;
根据各目标字段之间的上下游关系,确定所述全链路字段依赖图的至少一个起始节点;
根据各目标字段之间的上下游关系,从至少一个起始节点开始,生成与各目标字段一一对应的字段节点,并在各字段节点之间生成与相应映射关系匹配的关系连线,得到所述全链路字段依赖图。
5.根据权利要求4所述的方法,其特征在于,所述根据各字段之间的上下游关系,确定所述全链路字段依赖图的至少一个起始节点,包括:
若一个字段不存在对应的上游字段,且存在对应的下游字段,将所述字段作为起始字段;
根据所述起始字段生成一个起始节点。
6.根据权利要求4所述的方法,其特征在于,所述在各字段节点之间生成与相应映射关系匹配的关系连线,包括:
若两个字段节点之间的映射关系为第一映射类型,在所述两个字段之间生成第一表现形式的关系连线;所述第一表现形式用于表征所述两个字段节点之间的映射关系不存在限制条件;
若两个字段节点之间的映射关系为第二映射类型,在所述两个字段之间生成第二表现形式的关系连线;所述第二表现形式用于表征所述两个字段节点之间的映射关系存在限制条件;
所述第一表现形式的关系连线和所述第二表现形式的关系连线由所述两个字段节点中的上游字段节点指向下游字段节点。
7.根据权利要求1所述的方法,其特征在于,所述根据所述待查询字段节点,从所述全链路字段依赖图中获取待查询字段链路,包括:
根据所述待查询字段对应的查询路径,从所述全链路字段依赖图中确定和所述待查询字段节点对应的相关字段节点;
根据所述待查询字段节点和所述相关字段节点,从所述全链路字段依赖图中获取待查询字段链路。
8.根据权利要求7所述的方法,其特征在于,所述查询路径分为上游链路查询和下游链路查询,所述根据所述待查询字段对应的查询路径,从所述全链路字段依赖图中确定和所述待查询字段节点对应的相关字段节点,包括:
根据所述全链路字段依赖图中各字段节点之间的映射关系,确定所述待查询字段对应的上游字段节点和下游字段节点;
若所述待查询字段对应的查询路径为所述上游链路查询,从所述全链路字段依赖图中获取所述待查询字段对应的上游字段节点作为所述相关字段节点;
若所述待查询字段对应的查询路径为所述下游链路查询,从所述全链路字段依赖图中获取所述待查询字段节点的下游字段节点作为所述相关字段节点。
9.根据权利要求1所述的方法,其特征在于,所述若获取到待查询字段,则根据所述待查询字段对应的查询类型,从字段映射表中确定与所述查询类型匹配的目标映射关系之前,还包括:
获取查询信息;所述查询信息包括所述待查询字段,以及所述待查询字段对应的查询类型和查询路径。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于目标数据仓库平台的脚本文件构建抽象语法树;
根据所述抽象语法树获取相邻上游字段和下游字段之间的映射关系,根据所述映射关系构建所述字段映射表。
11.一种字段级血缘解析装置,其特征在于,所述装置包括:
获取模块,用于若获取到待查询字段,则根据所述待查询字段对应的查询类型,从字段映射表中确定与所述查询类型匹配的目标映射关系;所述字段映射表包括多个字段,以及各字段之间的映射关系;所述映射关系用于表征上游字段和下游字段之间的字段加工信息;
查询模块,用于根据所述目标映射关系,从所述字段映射表中确定至少一个目标字段;
生成模块,用于根据所述目标字段,以及各目标字段之间的映射关系生成全链路字段依赖图;所述全链路字段依赖图包括与所述目标字段一一对应的字段节点,以及各字段节点之间用于表示映射关系的关系连线;
筛选模块,用于根据所述待查询字段,从所述全链路字段依赖图中确定和所述待查询字段对应的待查询字段节点,并根据所述待查询字段节点,从所述全链路字段依赖图中获取待查询字段链路,基于所述待查询字段链路得到所述待查询字段的血缘分析结果。
12.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10中任一项所述的方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
14.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211380580.2A CN115809304A (zh) | 2022-11-04 | 2022-11-04 | 字段级血缘解析方法、装置、计算机设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211380580.2A CN115809304A (zh) | 2022-11-04 | 2022-11-04 | 字段级血缘解析方法、装置、计算机设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115809304A true CN115809304A (zh) | 2023-03-17 |
Family
ID=85483144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211380580.2A Pending CN115809304A (zh) | 2022-11-04 | 2022-11-04 | 字段级血缘解析方法、装置、计算机设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115809304A (zh) |
-
2022
- 2022-11-04 CN CN202211380580.2A patent/CN115809304A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11475034B2 (en) | Schemaless to relational representation conversion | |
US11100420B2 (en) | Input processing for machine learning | |
US20200034742A1 (en) | Consistent filtering of machine learning data | |
US10339465B2 (en) | Optimized decision tree based models | |
US10366053B1 (en) | Consistent randomized record-level splitting of machine learning data | |
US20160147778A1 (en) | Applying a database transaction log record directly to a database table container | |
CN110795455A (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
US20100293196A1 (en) | Method and system for analyzing ordered data using pattern matching in a relational database | |
Chavan et al. | Survey paper on big data | |
CN108536745B (zh) | 基于Shell的数据表提取方法、终端、设备及存储介质 | |
CN106648569B (zh) | 目标序列化实现方法和装置 | |
CN110781183A (zh) | Hive数据库中增量数据的处理方法、装置以及计算机设备 | |
CN112307122A (zh) | 一种基于数据湖的数据管理系统及方法 | |
Hachem et al. | Managing derived data in the Gaea scientific DBMS | |
CN112100182A (zh) | 数据入库处理方法、装置和服务器 | |
CN107391528B (zh) | 前端组件依赖信息搜索方法及设备 | |
CN114356968A (zh) | 查询语句生成方法、装置、计算机设备及存储介质 | |
US20230153455A1 (en) | Query-based database redaction | |
Imran et al. | Big data analytics tools and platform in big data landscape | |
CN115455006A (zh) | 数据处理方法、数据处理装置、电子设备及存储介质 | |
CN115809304A (zh) | 字段级血缘解析方法、装置、计算机设备、存储介质 | |
JP6870454B2 (ja) | 分析装置、分析プログラム及び分析方法 | |
CN113821514A (zh) | 数据拆分方法、装置、电子设备和可读存储介质 | |
CN115840786B (zh) | 一种数据湖数据同步方法及装置 | |
CN112434018B (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 |