一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据血缘展示方法、系统、装置及存储介质与流程

2022-03-23 01:53:46 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其是一种数据血缘展示方法、系统、装置及存储介质。


背景技术:

2.airflow是著名共享民宿公司airbnb开源的工作流项目,主要应用于数据处理、数据交互以及配置作业等场景,尤其在etl(extraction-transformation-loading,抽取-转换-加载)作业管理方面特别适用。众所周知,数据作业每天都有可能产生未知性的数据问题,而从庞大的数据中排查数据问题往往占用工程师最多时间,追踪数据质量原因的效率极其低下,因此急需一种能够有效地定位链路中产生问题的节点并快速核查、修复问题的方法。


技术实现要素:

3.本发明的目的在于至少一定程度上解决现有技术中存在的技术问题之一。
4.为此,本发明实施例的一个目的在于提供一种数据血缘展示方法,该方法通过实时扫描dag配置目录并最终通过元数据生成血缘关系图,实现了数据链路中问题数据的快速定位和核查,提高了数据修复的效率。
5.本发明实施例的另一个目的在于提供一种数据血缘展示系统。
6.为了达到上述技术目的,本发明实施例所采取的技术方案包括:
7.第一方面,本发明实施例提供了一种数据血缘展示方法,包括以下步骤:
8.扫描dag配置目录,获取作业任务;
9.查询所述作业任务中的sql任务单元;
10.解析所述sql任务单元,获取第一元数据;
11.解析所述第一元数据,获取第二元数据;
12.根据所述第二元数据,生成数据血缘关系图并展示。
13.本发明实施例的一种数据血缘展示方法,通过扫描dag配置目录实时获取作业任务中的sql任务单元,实现了新任务的自动解析和元数据获取;通过第二元数据生成数据血缘关系图并展示,实现了数据链路中问题数据的快速定位和核查,提高了数据修复的效率。
14.另外,根据本发明上述实施例的一种数据血缘展示方法,还可以具有以下附加的技术特征:
15.进一步地,本发明实施例的一种数据血缘展示方法中,所述扫描dag配置目录,获取作业任务,包括:
16.加载dag模型,所述dag模型中包括多个任务处理器;
17.通过所述任务处理器获取所述作业任务。
18.进一步地,本发明实施例的一种数据血缘展示方法,还包括以下步骤:
19.根据所述任务处理器的类型获取对应的dag元数据。
20.进一步地,在本发明的一个实施例中,所述查询所述作业任务中的sql任务单元,包括:
21.根据所述作业任务,获取所述sql任务单元;
22.识别所述sql任务单元的单元类型;
23.根据所述单元类型对所述sql任务单元进行数据清洗。
24.进一步地,在本发明的一个实施例中,所述解析所述sql任务单元,获取第一元数据,包括:
25.根据所述sql任务单元,从所述dag元数据中获取所述第一元数据。
26.进一步地,在本发明的一个实施例中,所述解析所述第一元数据,获取第二元数据,包括:
27.根据所述单元类型,生成解析对象;
28.调用所述解析对象对应的接口,获取所述第二元数据。
29.进一步地,在本发明的一个实施例中,所述根据所述第二元数据,生成数据血缘关系图,包括:
30.响应于数据血缘分析指令,查询所述第二元数据;
31.对所述第二元数据进行标准化处理,生成第三元数据;
32.根据所述第三元数据,生成字符串;
33.根据所述字符串生成输入节点和输出节点组合的节点信息;
34.根据所述节点信息生成所述数据血缘关系图。
35.第二方面,本发明实施例提出了一种数据血缘展示系统,包括:
36.作业任务获取模块,用于扫描dag配置目录,获取作业任务;
37.任务单元查询模块,用于查询所述作业任务中的sql任务单元;
38.第一元数据获取模块,用于解析所述sql任务单元,获取第一元数据;
39.第二元数据获取模块,用于解析所述第一元数据,获取第二元数据;
40.数据血缘关系图展示模块,用于根据所述第二元数据,生成数据血缘关系图并展示。
41.第三方面,本发明实施例提供了一种数据血缘展示装置,包括:
42.至少一个处理器;
43.至少一个存储器,用于存储至少一个程序;
44.当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现所述的一种数据血缘展示方法。
45.第四方面,本发明实施例提供了一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于实现所述的一种数据血缘展示方法。
46.本发明的优点和有益效果将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到:
47.本发明实施例通过扫描dag配置目录实时获取作业任务中的sql任务单元,实现了新任务的自动解析和元数据获取;通过第二元数据生成数据血缘关系图并展示,实现了数据链路中问题数据的快速定位和核查,提高了数据修复的效率。
附图说明
48.为了更清楚地说明本技术实施例或者现有技术中的技术方案,下面对本技术实施例或者现有技术中的相关技术方案附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本技术的技术方案中的部分实施例,对于本领域的技术人员来说,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。
49.图1为本发明一种数据血缘展示方法具体实施例的流程示意图;
50.图2为本发明一种数据血缘展示方法具体实施例的实施流程图;
51.图3为本发明一种数据血缘展示方法具体实施例的处理器解析示意图;
52.图4为本发明一种数据血缘展示系统具体实施例的结构示意图;
53.图5为本发明一种数据血缘展示装置具体实施例的结构示意图。
具体实施方式
54.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能理解为对本技术的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
55.本发明的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
56.在本发明中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
57.airflow是著名共享民宿公司airbnb开源的工作流项目,主要应用于数据处理、数据交互以及配置作业等场景,尤其在etl(extraction-transformation-loading,抽取-转换-加载)作业管理方面特别适用。众所周知,数据作业每天都有可能产生未知性的数据问题,而从庞大的数据中排查数据问题往往占用工程师最多时间,追踪数据质量原因的效率极其低下,因此急需一种能够有效地定位链路中产生问题的节点并快速核查、修复问题的方法。
58.为此,本发明提出了一种数据血缘展示方法和系统,通过扫描dag配置目录实时获取作业任务中的sql任务单元,实现了新任务的自动解析和元数据获取;通过第二元数据生成数据血缘关系图并展示,实现了数据链路中问题数据的快速定位和核查,提高了数据修复的效率。
59.下面参照附图详细描述根据本发明实施例提出的一种数据血缘展示方法和系统,首先将参照附图描述根据本发明实施例提出的一种数据血缘展示方法。
60.参照图1和图2,本发明实施例中提供一种数据血缘展示方法,本发明实施例中的
一种数据血缘展示方法,可应用于终端中,也可应用于服务器中,还可以是运行于终端或服务器中的软件等。终端可以是平板电脑、笔记本电脑、台式计算机等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。本发明实施例中的一种数据血缘展示方法主要包括以下步骤:
61.s101、扫描dag配置目录,获取作业任务;
62.其中,dag(directed acyclic graph,有向无环图)为airflow用来管理作业任务流程的任务调度工具,通过设置作业任务之间的依赖关系实现任务调度。
63.具体地,扫描dag配置目录,当扫描到新上传(最近一小时内)的配置文件时进入更新环节。更新环节包括以下两个方面:1)加载dag模型,获取dag模型中所有的任务处理器,遍历每个任务单元(task单元),根据task单元上下游的依赖关系生成作业任务之间的层级关系;2)根据任务处理器的类型获取相应的元数据信息。
64.s101可以进一步划分为以下步骤s1011-s1012:
65.步骤s1011、加载dag模型;
66.其中,所述dag模型中包括多个任务处理器。
67.具体地,根据前述可知,在扫描dag配置目录时若扫描到新上传(最近一小时内)的配置文件会进入更新环节,其中包括加载dag模型,并获取dag模型中所有的任务处理器。
68.步骤s1012、通过所述任务处理器获取所述作业任务。
69.具体地,根据步骤s1011中获取的任务处理器,遍历dag模型中的每个task单元,根据task单元上下游的依赖关系生成作业任务之间的层级关系。
70.在本发明的实施例中,还包括以下步骤:
71.根据所述任务处理器的类型获取对应的dag元数据。
72.具体地,参照图3,根据步骤s1011中获取的各个任务处理器的类型,进入对应的解析路(处理器分支)由对任务处理器进行解析,并获取对应的dag元数据。
73.所述dag元数据被存储到mysql数据库中。
74.s102、查询所述作业任务中的sql任务单元;
75.其中,sql任务单元包括presto-sql和hiveql两种类型。
76.具体地,当所述作业任务中包括sql类型的任务单元(sql任务单元)时,进行sql解析。在进行sql解析之前,先确认作业任务中的sql任务单元的执行对象是presto-sql还是hiveql。由于presto-sql和hiveql两种类型的sql语法不同,需要进行数据清洗处理。
77.s102可以进一步划分为以下步骤s1021-s1023:
78.步骤s1021、根据所述作业任务,获取所述sql任务单元;
79.具体地,查询并获取作业任务中的sql任务单元。
80.步骤s1022、识别所述sql任务单元的单元类型;
81.具体地,由于步骤s1021中获取到的sql任务单元包括presto-sql和hiveql两种类型,并且presto-sql和hiveql两种类型的sql语法不相同,因此需要识别sql任务单元的执行对象是presto-sql还是hiveql,以便后续的数据处理。
82.步骤s1023、根据所述单元类型对所述sql任务单元进行数据清洗。
83.具体地,识别sql任务单元的单元类型后,根据单元类型对sql任务单元进行etl(extraction-transformation-loading)清洗,包括数据的抽取、转换和加载,以去除不同类型的sql任务单元中的特殊符号并进行ddl转换。
84.s103、解析所述sql任务单元,获取第一元数据;
85.具体地,在本发明的实施例中,采用druid进行数据的解析操作。druid是阿里巴巴开源的数据库连接池工具,支持与多种关系型数据库连接,例如mysql、oracle、hive和sqlserver。druid中封装有sql parser模块,用于执行sql解析。
86.在本发明的实施例中,根据所述sql任务单元,从所述dag元数据中获取所述第一元数据,所述第一元数据为sql task元数据。
87.s104、解析所述第一元数据,获取第二元数据;
88.具体地,通过druid对步骤s103解析sql任务单元获取到的sql task元数据(第一元数据)进行二次解析,得到第二元数据,所述第二元数据为sql lineage元数据。sql lineage元数据为基于python的sql血缘分析工具的元数据,用于后续生成数据血缘关系图。
89.s104可以进一步划分为以下步骤s1041-s1042:
90.步骤s1041、根据所述单元类型,生成解析对象;
91.具体地,根据步骤s1022中识别的sql任务单元的单元类型,通过druid选择对应的datasource连接池,并通过druid底层封装的sql parser模块,根据所述单元类型生成解析对象statements。
92.步骤s1042、调用所述解析对象对应的接口,获取所述第二元数据。
93.具体地,调用解析对象statements对应的sqlstatement接口方法获取元数据信息,包括数据库、目标操作、来源表和目标表,生成第二元数据并保存到mysql数据库中。
94.在本发明的实施例中,元数据保存到mysql数据库中的表结构形式如下表所示:
[0095][0096]
s105、根据所述第二元数据,生成数据血缘关系图并展示。
[0097]
其中,数据血缘关系图用于展示数据之间的关系,实现异常数据的快速定位。
[0098]
s105可以进一步划分为以下步骤s1051-s1055:
[0099]
步骤s1051、响应于数据血缘分析指令,查询所述第二元数据;
[0100]
具体地,当接收到数据血缘分析指令时即时响应,查询数据库中保存的sql lineage元数据(第二元数据)。
[0101]
步骤s1052、对所述第二元数据进行标准化处理,生成第三元数据;
[0102]
具体地,通过pandas库将sql lineage元数据转换成dataframe,进行标准化处理,生成第三元数据。
[0103]
步骤s1053、根据所述第三元数据,生成字符串;
[0104]
具体地,将步骤s1052中生成的第三元数据以source表(select、load)-target表(insect、create)的json格式生成流向关系的字符串,然后吧target表转化为source表继续寻找下游表生成流向关系的字符串,通过不断递归生成(source表-target表(source表)-target表(source表)
‑…‑
target表)的复合json字符串。
[0105]
步骤s1054、根据所述字符串生成输入节点和输出节点组合的节点信息;
[0106]
具体地,通过图数据模块将(source表-target表(source表)-target表(source表)
‑…‑
target表)的复合json字符串转化为input-output节点内容,生成输入节点和输出节点组合的节点信息。
[0107]
步骤s1055、根据所述节点信息生成所述数据血缘关系图并展示。
[0108]
具体地,通过d3可视化库将步骤s1054中生成的输入节点和输出节点组合的节点信息转化为一张完整树型结构的数据血缘关系图并展示。
[0109]
其次,参照附图描述根据本技术实施例提出的一种数据血缘展示系统。
[0110]
图4是本技术一个实施例的一种数据血缘展示系统结构示意图。
[0111]
所述系统具体包括:
[0112]
作业任务获取模块401,用于扫描dag配置目录,获取作业任务;
[0113]
任务单元查询模块402,用于查询所述作业任务中的sql任务单元;
[0114]
第一元数据获取模块403,用于解析所述sql任务单元,获取第一元数据;
[0115]
第二元数据获取模块404,用于解析所述第一元数据,获取第二元数据;
[0116]
数据血缘关系图展示模块405,用于根据所述第二元数据,生成数据血缘关系图并展示。
[0117]
可见,上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
[0118]
参照图5,本技术实施例提供了一种数据血缘展示装置,包括:
[0119]
至少一个处理器501;
[0120]
至少一个存储器502,用于存储至少一个程序;
[0121]
当所述至少一个程序被所述至少一个处理器501执行时,使得所述至少一个处理器501实现所述的一种数据血缘展示方法。
[0122]
同理,上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
[0123]
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本技术的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被
改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
[0124]
此外,虽然在功能性模块的背景下描述了本技术,但应当理解的是,除非另有相反说明,功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本技术是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本技术。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本技术的范围,本技术的范围由所附权利要求书及其等同方案的全部范围来决定。
[0125]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干程序用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0126]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行程序的定序列表,可以具体实现在任何计算机可读介质中,以供程序执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从程序执行系统、装置或设备取程序并执行程序的系统)使用,或结合这些程序执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供程序执行系统、装置或设备或结合这些程序执行系统、装置或设备而使用的装置。
[0127]
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0128]
应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的程序执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0129]
在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施方式或示例中。在本说明书中,对上述术语
的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
[0130]
尽管已经示出和描述了本技术的实施方式,本领域的普通技术人员可以理解:在不脱离本技术的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本技术的范围由权利要求及其等同物限定。
[0131]
以上是对本技术的较佳实施进行了具体说明,但本技术并不限于所述实施例,熟悉本领域的技术人员在不违背本技术精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献