CN113191139A - 基于列级数据的数据血缘解析方法及装置 - Google Patents
基于列级数据的数据血缘解析方法及装置 Download PDFInfo
- Publication number
- CN113191139A CN113191139A CN202110564358.7A CN202110564358A CN113191139A CN 113191139 A CN113191139 A CN 113191139A CN 202110564358 A CN202110564358 A CN 202110564358A CN 113191139 A CN113191139 A CN 113191139A
- Authority
- CN
- China
- Prior art keywords
- data
- analysis
- mapping relation
- syntax tree
- generating
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- 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/22—Indexing; Data structures therefor; Storage structures
-
- 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/26—Visual data mining; Browsing structured data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于大数据技术领域,本发明提供了一种基于列级数据的数据血缘解析方法及装置,基于列级数据的数据血缘解析方法包括:解析接收的用户数据的Sql语句,以生成词法分析类以及语法分析类;根据所述词法分析类以及语法分析类生成语法树;根据所述语法树生成所述Sql语句的多表之间的映射关系以及多列数据之间的映射关系。本发明可以直观地进行数据回溯及影响分析,从而为数据治理、风险控制等提供支撑;另一方面,本发明依据数据血缘关系,结合数据受众、数据更新量级、数据更新频次等,可给数据价值的评估提供依据,从而提供可解释的数据价值评估。
Description
技术领域
本发明属于大数据技术领域,具体涉及一种基于列级数据的数据血缘解析方法及装置。
背景技术
当前正处于数据信息时代,每时每刻都在产生大量数据。为了发掘海量数据中蕴含的金矿,很多企业引入ETL、数据仓库、数据湖、数据中台等技术(本文统称“数据处理***”),对企业的数据进行抽取、管理、加工、利用。企业丰富的源端数据抽取到数据处理***后,通常会对这些数据进行各种加工组合、转换,产生“新”的数据加以利用。
企业丰富的源端数据抽取到数据处理***后,通常会对这些数据进行各种加工组合、转换,产生“新”的数据加以利用。任何数据,从产生、加工处理、融合流转,到最终消亡,数据之间自然会形成一种关系,称之为数据的血缘关系。数据血缘,即一个表的生成过程链路(它依赖了哪些表,怎么生成的,经过了哪些过程和阶段);以及它依赖的表的生成过程链路。
任何数据,从产生、处理加工、融合流转,到最终消亡,数据之间自然会形成一种关系,称之为数据的血缘关系。数据血缘,即一个表的生成过程链路(它依赖了哪些表,怎么生成的,经过了哪些过程和阶段);以及它依赖的表的生成过程链路。例如:表A、表B的数据经过ETL处理生成了表C数据,则可以说,表A、表B与表C之间存在血缘关系。
在下游业务应用数据的过程中,常常需要对数据成因、来源等进行跟踪回溯;或者分析某个表在***中的“热度指数”(被引用次数)、“影响指数”(表变动时,哪些下游表会受到影响)等,这都离不开对表与表、列与列之间数据流转关系的探索,即“数据血缘分析”。
在没有工具之前,数据血缘关系只能依靠手工维护,一旦脚本发生变化,手工维护遗漏或不及时的话,就会造成关系不准确。
随着业务的丰富,表的数量成指数级增加,加工逻辑越来越多,逻辑复杂性越来越强,链路越来越长,依靠手工维护、人工分析血缘的方式局限性越来越明显。提供一个便捷、可靠、易用的数据血缘分析***价值不言而喻。
现有技术中,数据血缘分析各有侧重,有的侧重SQL解析;有的侧重工具特征;有的侧重可视化;有的侧重处理节点类型特点;有的侧重血缘本身的解析而没有考虑完整的周边支持体系;多数数据血缘分析工具只到表级别,均没有提到了列级别数据血缘分析,且未见涵盖列级计算逻辑。
发明内容
本发明属于大数据技术领域,其所提供的基于列级数据的数据血缘解析方法及装置,可以直观地进行数据回溯及影响分析,从而为数据治理、风险控制等提供支撑;另一方面,本发明依据数据血缘关系,结合数据受众、数据更新量级、数据更新频次等,可给数据价值的评估提供依据,从而提供“可解释的数据价值评估”。
为解决上述技术问题,本发明提供以下技术方案:
第一方面,本发明提供一种基于列级数据的数据血缘解析方法,包括:
解析接收的用户数据的Sql语句,以生成词法分析类以及语法分析类;
根据所述词法分析类以及语法分析类生成语法树;
根据所述语法树生成所述Sql语句的多表之间的映射关系以及多列数据之间的映射关系。
一实施例中,所述根据所述词法分析类以及语法分析类生成语法树,包括:
采用访问者模式,利用Antlr工具根据所述词法分析类以及语法分析类生成Logical Plan语法树。
一实施例中,所述根据所述语法树生成所述Sql语句的多表之间的映射关系以及多列数据之间的映射关系,包括:
解析所述Logical Plan语法树,以生成所述多表之间的映射关系以及多列数据之间的映射关系。
一实施例中,所述解析所述Logical Plan语法树,以生成所述多表之间的映射关系以及多列数据之间的映射关系,包括:
对所述Logical Plan语法树进行递归调用、及/或解析源表,及/或解析目标表映射关系,以生成所述多表之间的映射关系以及多列数据之间的映射关系。
一实施例中,基于列级数据的数据血缘解析方法还包括:
定时访问所述Sql语句的源端;
当所述源端数据发生变更时,更新所述Sql语句的加工链路的表的数据源、表名、列名以及列类型。
一实施例中,基于列级数据的数据血缘解析方法还包括:
根据所述多表之间的映射关系以及多列数据之间的映射关系生成所述Sql语句的表血缘谱系图。
第二方面,本发明提供一种基于列级数据的数据血缘解析装置,包括:
分析类生成模块,用于解析接收的用户数据的Sql语句,以生成词法分析类以及语法分析类;
语法树生成模块,用于根据所述词法分析类以及语法分析类生成语法树;
映射关系生成模块,用于根据所述语法树生成所述Sql语句的多表之间的映射关系以及多列数据之间的映射关系。
一实施例中,所述语法树生成模块包括:
语法树生成单元,用于采用访问者模式,利用Antlr工具根据所述词法分析类以及语法分析类生成Logical Plan语法树。
一实施例中,所述映射关系生成模块包括:
语法树解析单元,用于解析所述Logical Plan语法树,以生成所述多表之间的映射关系以及多列数据之间的映射关系;
所述语法树解析单元具体用于对所述Logical Plan语法树进行递归调用、及/或解析源表,及/或解析目标表映射关系,以生成所述多表之间的映射关系以及多列数据之间的映射关系;
基于列级数据的数据血缘解析装置还包括:
源端访问模块,用于定时访问所述Sql语句的源端;
数据更新模块,用于当所述源端数据发生变更时,更新所述Sql语句的加工链路的表的数据源、表名、列名以及列类型;
谱系图生成模块,用于根据所述多表之间的映射关系以及多列数据之间的映射关系生成所述Sql语句的表血缘谱系图。
第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现基于列级数据的数据血缘解析方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现基于列级数据的数据血缘解析方法的步骤。
从上述描述可知,本发明实施例提供的基于列级数据的数据血缘解析方法及装置,首先解析接收的用户数据的Sql语句,以生成词法分析类以及语法分析类;接着,根据词法分析类以及语法分析类生成语法树;最后根据语法树生成Sql语句的多表之间的映射关系以及多列数据之间的映射关系。本发明仅需基于sql加工语句,就能提供列级别血缘解析结果;并且能方便地嵌入数据加工链路生态,和元数据管理、数据加工模型等结合使用,从而支持数据血缘全链路分析;本发明还提供了表和列级别数据血缘可视化展示方案,用户可通过可视化界面直观地跟踪数据血缘、分析数据加工链路、探查表被引用情况、探索上下游影响分析等。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例中基于列级数据的数据血缘解析方法流程示意图一;
图2为本发明的实施例中步骤200的流程示意图;
图3为本发明的实施例中步骤300的流程示意图;
图4为本发明的实施例中步骤301的流程示意图;
图5为本发明的实施例中基于列级数据的数据血缘解析方法流程示意图二;
图6为本发明的实施例中基于列级数据的数据血缘解析方法流程示意图三;
图7为本发明的具体应用实例中基于列级数据的数据血缘解析方法的流程示意图;
图8为本发明的具体应用实例中步骤S1的流程示意图;
图9为本发明的具体应用实例中血缘关系可视化图示意图;
图10为本发明实施例中基于列级数据的数据血缘解析装置结构框图一;
图11为本发明的实施例中语法树生成模块20的结构框图;
图12为本发明的实施例中映射关系生成模块30的结构框图;
图13为本发明实施例中基于列级数据的数据血缘解析装置结构框图二;
图14为本发明实施例中基于列级数据的数据血缘解析装置结构框图三;
图15为本发明的实施例中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本发明的实施例提供一种基于列级数据的数据血缘解析方法的具体实施方式,参见图1,该方法具体包括如下内容:
步骤100:解析接收的用户数据的Sql语句,以生成词法分析类以及语法分析类。
优选地,步骤100在实施时,利用Spark catalog模块,使用Antlr根据spark提供的.g4文件生成对应的词法分析类和语法分析类。
步骤200:根据所述词法分析类以及语法分析类生成语法树。
抽象语法树(abstract syntax tree或者缩写为AST),或者语法树(syntaxtree),是源代码的抽象语法结构的树状表现形式,这里特指编程语言的源代码。树上的每个节点都表示源代码中的一种结构。之所以说语法是抽象的,是因为这里的语法并不会表示出真实语法中出现的每个细节。在步骤100的基础上,利用访问者模式,根据所述词法分析类以及语法分析类构建Logical Plan语法树。
步骤300:根据所述语法树生成所述Sql语句的多表之间的映射关系以及多列数据之间的映射关系。
在步骤200的基础上,通过对insert into table和insert overwrite table语句的LogicalPlan进行分析,获得表与表、字段与字段(“列”级别)之间的加工、映射关系。
从上述描述可知,本发明实施例提供的基于列级数据的数据血缘解析方法,首先解析接收的用户数据的Sql语句,以生成词法分析类以及语法分析类;接着,根据词法分析类以及语法分析类生成语法树;最后根据语法树生成Sql语句的多表之间的映射关系以及多列数据之间的映射关系。本发明直观地进行数据回溯及影响分析,为数据治理、风险控制等提供支撑;依据数据血缘关系,结合数据受众、数据更新量级、数据更新频次等,可给数据价值的评估提供依据,从而提供“可解释的数据价值评估”。
一实施例中,参见图2,步骤200包括:
步骤201:采用访问者模式,利用Antlr工具根据所述词法分析类以及语法分析类生成Logical Plan语法树。
Antlr(Another Tool for Language Recognition),是一款开源语法分析器,可以根据输入自动生成并可视化展示语法树。支持按照Antlr规范自定义新的语言,Antlr可根据定义,生成出这种新语言的识别与翻译程序。
一实施例中,参见图3,步骤300包括:
步骤301:解析所述Logical Plan语法树,以生成所述多表之间的映射关系以及多列数据之间的映射关系。
一实施例中,参见图4,步骤301包括:
步骤3011:对所述Logical Plan语法树进行递归调用、及/或解析源表,及/或解析目标表映射关系,以生成所述多表之间的映射关系以及多列数据之间的映射关系。
具体地,利用血缘解析器对Logical Plan进行分析;根据不同的Logical Plan类型进行不同的处理,或递归调用,或分析源表、目标表映射关系,或分析列到列的映射关系。最后组合、返回数据血缘解析结果给调用方。
一实施例中,参见图5,基于列级数据的数据血缘解析方法还包括:
步骤400:定时访问所述Sql语句的源端;
步骤500:当所述源端数据发生变更时,更新所述Sql语句的加工链路的表的数据源、表名、列名以及列类型。
在步骤400以及步骤500中,存储参与数据加工链路的表的数据源(ip、端口、用户名、密码)、表名、列名、列类型等信息,并提供元数据同步机制。***定时或实时访问源端,比对元数据是否发生变更。当源端元数据发生变更时,同步,并升级元数据版本。
一实施例中,参见图6,基于列级数据的数据血缘解析方法还包括:
步骤600:根据所述多表之间的映射关系以及多列数据之间的映射关系生成所述Sql语句的表血缘谱系图。
具体地,可为用户提供如下视图:一个表在***中的被引用情况;一个表的加工链路溯源;一个表影响的下游表;影响一个表的上游表以及列血缘溯源。
本发明实施例所提供的基于列级数据的数据血缘解析方法以及装置,不依赖于元数据***,但亦可和元数据***配合,提供完善的综合解决方案。整个完整的体系包括元数据管理模块、转换处理模块、数据血缘解析模块、数据血缘展示模块,能与数据加工链路融为一体。通过SQL解析的方式对字段之间的血缘关系进行分析,使得血缘分析方法具有通用性、普适性,凡使用SQL加工数据的地方,都可以使用本装置进行数据血缘分析,大大降低来数据血缘分析的复杂度和门槛,且提高了分析精度和方案兼容性。
为进一步地说明本方案,本发明还提供基于列级数据的数据血缘解析方法的具体应用实例,具体包括如下内容。
本具体应用实例还提供一种基于列级数据的数据血缘解析***,该***包括:元数据管理模块、转换处理模块、数据血缘解析模块以及数据血缘展示模块,具体地:
数据血缘解析模块利用Spark catalog模块,使用Antlr根据spark提供的.g4文件生成对应的词法分析类和语法分析类,并用访问者模式构建Logical Plan(语法树),通过对insert into table和insert overwrite table语句的Logical Plan进行分析,获得表与表、字段与字段之间的加工、映射关系。
元数据管理模块存储参与数据加工链路的表的数据源(ip、端口、用户名、密码)、表名、列名、列类型等信息,并提供元数据同步机制。***定时或实时访问源端,比对元数据是否发生变更。当源端元数据发生变更时,同步,并升级元数据版本。
数据加工转换处理模块:用户引用元数据里的表进行建模,每个模型实际上就是一条SQL语句,本发明称之为“物理模型”。
实际业务环境中,业务通常比较复杂,一个物理模型难以胜任建模任务。因此数据加工转换处理模块引入“逻辑模型”概念。当需要多个物理模型串、并联时,用户先建一个逻辑模型,然后在此逻辑模型下建多个物理模型,物理模型之间可能是串联也可能是并联关系。一般上游物理模型的输出(目标表)是下游物理模型的输入(源表)。
以“逻辑模型”为数据血缘分析的基本粒度,探索、展示数据血缘。当保存物理模型时,调用数据血缘解析模块,生成与物理模型对应的“源表与目标表”及”列与列”之间的映射关系。同一个逻辑模型下的血缘图谱则由物理模型的“源表”、“目标表”自然地串起来。
数据血缘展示模块提供了完备的数据血缘展示模块。可为用户提供如下视图:一个表在***中的被引用情况;一个表的加工链路溯源;一个表影响的下游表;影响一个表的上游表;列血缘溯源。
参见图7,基于上述的基于列级数据的数据血缘解析***,本发明具体应用实例所提供的基于列级数据的数据血缘解析***方法具体包括以下步骤:
S1:解析Sql语句。
参见图8,Sql语句经过Antlr4解析,生成Unresolved Logical Plan;analyzer与catalog进行绑定,生成Logical Plan;血缘解析器对Logical Plan进行分析;根据不同的Logical Plan类型进行不同的处理,或递归调用,或分析源表、目标表映射关系,或分析列到列的映射关系。最后组合、返回数据血缘解析结果给调用方。
例:对于如下Sql语句:
insert overwrite table aa.targetbb partition(CJRQ)select t1.mgno ashqck,t1.cino as cinobh,yxjg_mc as yxjgmc,CJRQ as CJRQ FROM tabvd t1 wheret1.CJRQ='%RUN_DATE%';
解析结果如下所示:
tabvd->targetbb
------------------
mgno->hqck
cino->cinobh
yxjg_mc->yxjgmc
CJRQ->CJRQ
此过程不依赖任何元数据***,只要客户提供sql,就可得到类似解析结果。当用户需要结合加工流程及元数据模块,对数据血缘进行更完备的应用时,将上述数据血缘解析模块嵌入加工链路即可。
S2:将数据血缘关系进行可视化。
图9是数据的血缘关系可视化图形,页面分上下两部分。上面部分展示所有用到所选表的业务模型——以所选表为中心,放射状展示与其有关联的所有业务模型。
页面下半部分展示选中的业务模型对应的表血缘谱系。第一次进入页面时,默认任选一个业务模型,用户点击某个业务模型时,选中模型切换为用户点击的业务模型,选中的业务模型高亮显示。
血缘谱系图中,当前关注(选中)的表高亮,且球形更大,醒目显示。其它上下游节点普通大小展示。颜色遵循图例。球形旁边显示表名。对于***中有中文表名的表,同时展示中文表名。
鼠标浮到某条线上,浮层展示该条线源表与目标表之间的字段映射关系。内容类似这样:
对于有表结构变更的节点,鼠标浮上去,显示“点击查看表结构变更前后对比”。
表结构版本对比弹框。默认版本:左边当前节点对应的版本及其schema;右边:最新版本及其schema。
在字段血缘信息图中,在某一张具体的报表数据表头,鼠标浮到表头上时,展示列的血缘信息,可一目了然地看到列从哪个表的哪个字段开始,经过哪些表的哪些中间字段加工而来。
点击报表右上角的“查看血缘谱系”,可查看报表的字段血缘全景图。当字段过多时,也可通过设置过滤条件,看部分特定字段的血缘,仅展示“失范字段血缘”。这个页面另一个tab也可直达表血缘谱系展示界面。
从上述描述可知,本发明实施例提供的基于列级数据的数据血缘解析方法,首先解析接收的用户数据的Sql语句,以生成词法分析类以及语法分析类;接着,根据词法分析类以及语法分析类生成语法树;最后根据语法树生成Sql语句的多表之间的映射关系以及多列数据之间的映射关系。本发明克服了现有数据血缘分析工具各有侧重,通用性、综合性较弱,血缘分析粒度较粗的不足,提供了一种通用普适、综合完备且能追踪到列级别计算逻辑的数据血缘分析装置,提供友好的数据血缘可视化探查界面,能可视化展示表级、列级血缘及列间计算转换逻辑,方便数据血缘问题定位和溯源。本发明可广泛应用于数据血缘管理、数据关联分析、数据治理等领域。
基于同一发明构思,本申请实施例还提供了一种基于列级数据的数据血缘解析装置,可以用于实现上述实施例所描述的方法,如下面的实施例。由于基于列级数据的数据血缘解析装置解决问题的原理与基于列级数据的数据血缘解析方法相似,因此基于列级数据的数据血缘解析装置的实施可以参见基于列级数据的数据血缘解析方法实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的***较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本发明的实施例提供一种能够实现基于列级数据的数据血缘解析方法的基于列级数据的数据血缘解析装置的具体实施方式,参见图10,基于列级数据的数据血缘解析装置具体包括如下内容:
分析类生成模块10,用于解析接收的用户数据的Sql语句,以生成词法分析类以及语法分析类;
语法树生成模块20,用于根据所述词法分析类以及语法分析类生成语法树;
映射关系生成模块30,用于根据所述语法树生成所述Sql语句的多表之间的映射关系以及多列数据之间的映射关系。
一实施例中,参见图11,所述语法树生成模块20包括:
语法树生成单元201,用于采用访问者模式,利用Antlr工具根据所述词法分析类以及语法分析类生成Logical Plan语法树。
一实施例中,参见图12,所述映射关系生成模块30包括:
语法树解析单元301,用于解析所述Logical Plan语法树,以生成所述多表之间的映射关系以及多列数据之间的映射关系;
所述语法树解析单元301具体用于对所述Logical Plan语法树进行递归调用、及/或解析源表,及/或解析目标表映射关系,以生成所述多表之间的映射关系以及多列数据之间的映射关系;
一实施例中,参见图13,基于列级数据的数据血缘解析装置还包括:
源端访问模块40,用于定时访问所述Sql语句的源端;
数据更新模块50,用于当所述源端数据发生变更时,更新所述Sql语句的加工链路的表的数据源、表名、列名以及列类型;
一实施例中,参见图14,基于列级数据的数据血缘解析装置还包括:
谱系图生成模块60,用于根据所述多表之间的映射关系以及多列数据之间的映射关系生成所述Sql语句的表血缘谱系图。
从上述描述可知,本发明实施例提供的基于列级数据的数据血缘解析装置,首先解析接收的用户数据的Sql语句,以生成词法分析类以及语法分析类;接着,根据词法分析类以及语法分析类生成语法树;最后根据语法树生成Sql语句的多表之间的映射关系以及多列数据之间的映射关系。本发明仅需基于sql加工语句,就能提供列级别血缘解析结果;并且能方便地嵌入数据加工链路生态,和元数据管理、数据加工模型等结合使用,从而支持数据血缘全链路分析;本发明还提供了表和列级别数据血缘可视化展示方案,用户可通过可视化界面直观地跟踪数据血缘、分析数据加工链路、探查表被引用情况、探索上下游影响分析等。
本申请的实施例还提供能够实现上述实施例中的基于列级数据的数据血缘解析方法中全部步骤的一种电子设备的具体实施方式,参见图15,电子设备具体包括如下内容:
处理器(processor)1201、存储器(memory)1202、通信接口(CommunicationsInterface)1203和总线1204;
其中,处理器1201、存储器1202、通信接口1203通过总线1204完成相互间的通信;通信接口1203用于实现服务器端设备以及客户端设备等相关设备之间的信息传输;
处理器1201用于调用存储器1202中的计算机程序,处理器执行计算机程序时实现上述实施例中的基于列级数据的数据血缘解析方法中的全部步骤,例如,处理器执行计算机程序时实现下述步骤:
步骤100:解析接收的用户数据的Sql语句,以生成词法分析类以及语法分析类;
步骤200:根据所述词法分析类以及语法分析类生成语法树;
步骤300:根据所述语法树生成所述Sql语句的多表之间的映射关系以及多列数据之间的映射关系。
本申请的实施例还提供能够实现上述实施例中的基于列级数据的数据血缘解析方法中全部步骤的一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的基于列级数据的数据血缘解析方法的全部步骤,例如,处理器执行计算机程序时实现下述步骤:
步骤100:解析接收的用户数据的Sql语句,以生成词法分析类以及语法分析类;
步骤200:根据所述词法分析类以及语法分析类生成语法树;
步骤300:根据所述语法树生成所述Sql语句的多表之间的映射关系以及多列数据之间的映射关系。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。
Claims (11)
1.一种基于列级数据的数据血缘解析方法,其特征在于,包括:
解析接收的用户数据的Sql语句,以生成词法分析类以及语法分析类;
根据所述词法分析类以及语法分析类生成语法树;
根据所述语法树生成所述Sql语句的多表之间的映射关系以及多列数据之间的映射关系。
2.根据权利要求1所述的数据血缘解析方法,其特征在于,所述根据所述词法分析类以及语法分析类生成语法树,包括:
采用访问者模式,利用Antlr工具根据所述词法分析类以及语法分析类生成LogicalPlan语法树。
3.根据权利要求2所述的数据血缘解析方法,其特征在于,所述根据所述语法树生成所述Sql语句的多表之间的映射关系以及多列数据之间的映射关系,包括:
解析所述Logical Plan语法树,以生成所述多表之间的映射关系以及多列数据之间的映射关系。
4.根据权利要求3所述的数据血缘解析方法,其特征在于,所述解析所述Logical Plan语法树,以生成所述多表之间的映射关系以及多列数据之间的映射关系,包括:
对所述LogicalPlan语法树进行递归调用、及/或解析源表,及/或解析目标表映射关系,以生成所述多表之间的映射关系以及多列数据之间的映射关系。
5.根据权利要求1所述的数据血缘解析方法,其特征在于,还包括:
定时访问所述Sql语句的源端;
当所述源端数据发生变更时,更新所述Sql语句的加工链路的表的数据源、表名、列名以及列类型。
6.根据权利要求1所述的数据血缘解析方法,其特征在于,还包括:
根据所述多表之间的映射关系以及多列数据之间的映射关系生成所述Sql语句的表血缘谱系图。
7.一种基于列级数据的数据血缘解析装置,其特征在于,包括:
分析类生成模块,用于解析接收的用户数据的Sql语句,以生成词法分析类以及语法分析类;
语法树生成模块,用于根据所述词法分析类以及语法分析类生成语法树;
映射关系生成模块,用于根据所述语法树生成所述Sql语句的多表之间的映射关系以及多列数据之间的映射关系。
8.根据权利要求7所述的数据血缘解析装置,其特征在于,所述语法树生成模块包括:
语法树生成单元,用于采用访问者模式,利用Antlr工具根据所述词法分析类以及语法分析类生成Logical Plan语法树。
9.根据权利要求8所述的数据血缘解析装置,其特征在于,所述映射关系生成模块包括:
语法树解析单元,用于解析所述Logical Plan语法树,以生成所述多表之间的映射关系以及多列数据之间的映射关系;
所述语法树解析单元具体用于对所述Logical Plan语法树进行递归调用、及/或解析源表,及/或解析目标表映射关系,以生成所述多表之间的映射关系以及多列数据之间的映射关系;
基于列级数据的数据血缘解析装置还包括:
源端访问模块,用于定时访问所述Sql语句的源端;
数据更新模块,用于当所述源端数据发生变更时,更新所述Sql语句的加工链路的表的数据源、表名、列名以及列类型;
谱系图生成模块,用于根据所述多表之间的映射关系以及多列数据之间的映射关系生成所述Sql语句的表血缘谱系图。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6任一项所述基于列级数据的数据血缘解析方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6任一项所述基于列级数据的数据血缘解析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110564358.7A CN113191139A (zh) | 2021-05-24 | 2021-05-24 | 基于列级数据的数据血缘解析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110564358.7A CN113191139A (zh) | 2021-05-24 | 2021-05-24 | 基于列级数据的数据血缘解析方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113191139A true CN113191139A (zh) | 2021-07-30 |
Family
ID=76985165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110564358.7A Pending CN113191139A (zh) | 2021-05-24 | 2021-05-24 | 基于列级数据的数据血缘解析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113191139A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113326286A (zh) * | 2021-08-03 | 2021-08-31 | 杭州量之智能科技有限公司 | 一种支持多方言sql血缘解析的语义分析方法 |
CN113868253A (zh) * | 2021-09-28 | 2021-12-31 | 中通服创立信息科技有限责任公司 | 一种数据关系捕获及大数据关系树构建方法 |
CN115203277A (zh) * | 2022-09-19 | 2022-10-18 | 北京必盈特信息技术有限公司 | 数据决策方法及装置 |
-
2021
- 2021-05-24 CN CN202110564358.7A patent/CN113191139A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113326286A (zh) * | 2021-08-03 | 2021-08-31 | 杭州量之智能科技有限公司 | 一种支持多方言sql血缘解析的语义分析方法 |
CN113868253A (zh) * | 2021-09-28 | 2021-12-31 | 中通服创立信息科技有限责任公司 | 一种数据关系捕获及大数据关系树构建方法 |
CN113868253B (zh) * | 2021-09-28 | 2024-04-23 | 中通服创立信息科技有限责任公司 | 一种数据关系捕获及大数据关系树构建方法 |
CN115203277A (zh) * | 2022-09-19 | 2022-10-18 | 北京必盈特信息技术有限公司 | 数据决策方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113191139A (zh) | 基于列级数据的数据血缘解析方法及装置 | |
Kery et al. | Interactions for untangling messy history in a computational notebook | |
Kersten et al. | Using task context to improve programmer productivity | |
US20150277900A1 (en) | Dynamically building an Unstructured Information Management Architecture (UIMA) pipeline | |
Wu et al. | A reverse engineering approach to support software maintenance: Version control knowledge extraction | |
CN111078729B (zh) | 医疗数据溯源方法、装置、***、存储介质以及电子设备 | |
Beck et al. | Rethinking user interfaces for feature location | |
Gao et al. | Exploring programmers' api learning processes: Collecting web resources as external memory | |
Bao et al. | Activityspace: a remembrance framework to support interapplication information needs | |
JP2022504205A (ja) | インタラクティブなデータプレップアプリケーションのための複数のデータセットの相関増分ロード | |
US11573790B2 (en) | Generation of knowledge graphs based on repositories of code | |
US9244707B2 (en) | Transforming user interface actions to script commands | |
CN108701153B (zh) | 响应自然语言查询的方法、***和计算机可读存储介质 | |
Gawade et al. | Stethoscope: a platform for interactive visual analysis of query execution plans | |
US11151213B2 (en) | Browser search result option to facilitate human spidering | |
CN116467433A (zh) | 面向多源数据的知识图谱可视化方法、装置、设备及介质 | |
Bako et al. | Streamlining Visualization Authoring in D3 Through User-Driven Templates | |
CN115033436A (zh) | 页面测试方法及装置、电子设备、存储介质 | |
CN111209322B (zh) | 金融信息采集处理***及方法 | |
US10846198B2 (en) | Automatic navigation from log statement to code | |
US9779132B1 (en) | Predictive information discovery engine | |
CN108334621B (zh) | 数据库操作方法、装置、设备及计算机可读存储介质 | |
Kasegn et al. | Spatial locality based identifier name recommendation | |
Zhang et al. | Identifying use cases in source code | |
KR102072236B1 (ko) | 정형 스트림 데이터 처리장치 및 처리방법 |
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 |