CN114398394A - 数据血缘解析方法、装置、设备及存储介质 - Google Patents
数据血缘解析方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114398394A CN114398394A CN202210044460.9A CN202210044460A CN114398394A CN 114398394 A CN114398394 A CN 114398394A CN 202210044460 A CN202210044460 A CN 202210044460A CN 114398394 A CN114398394 A CN 114398394A
- Authority
- CN
- China
- Prior art keywords
- data
- information
- syntax tree
- analyzed
- abstract syntax
- 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
- 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据血缘解析方法、装置、设备及存储介质,该一种数据血缘解析方法包括:获取待解析脚本信息;将待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息;将第一信息中的关联结构化查询语言进行压栈处理,得到第二信息,关联结构化查询语言包括在脚本运行时互相关联的中间结构化查询语言和结果结构化查询语言;根据第二信息构建抽象语法树,抽象语法树包括抽象语法树中各节点的字段关联关系;解析抽象语法树,得到数据血缘关系。本申请实施例能够解决传统的数据血缘解析方法解析出的数据血缘关系准度较低的问题。
Description
技术领域
本申请属于大数据分析领域,尤其涉及一种数据血缘解析方法、装置、设备及存储介质。
背景技术
血缘分析是一种技术手段,用于对数据处理过程的全面追踪,从而找到某个数据对象为起点的所有相关元数据对象以及这些元数据对象之间的关系。元数据对象之间的关系特指表示这些元数据对象的数据流输入输出关系。随着大数据技术的发展与应用,在大数据治理领域出现了数据血缘分析的需求,通过对数据中台的数据库进行操作的结构化查询语句(STRUCTURED QUERY LANGUAGE,SQL)的分析与处理,可以梳理出数据库之间表、字段的映射关系,形成数据地图,以便在海量、巨大的数据中追踪数据的流向,查看大数据系统中上游数据的来源与下游数据的去向,方便大数据开发人员以及业务分析人员掌握数据的消费与来源,从而更好地管理大数据系统,挖掘出数据血缘关系的价值。
数据中台运行日志记录的SQL类型繁多,传统的数据血缘解析方法难以解析全类型的SQL,导致解析出的数据血缘关系准度较低。
发明内容
本申请实施例提供一种数据血缘解析方法、装置、设备及存储介质,能够解决传统的数据血缘解析方法解析出的数据血缘关系准度较低的问题。
第一方面,本申请实施例提供一种数据血缘解析方法,包括:
获取待解析脚本信息;
将待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息;
将第一信息中的关联结构化查询语言进行压栈处理,得到第二信息,关联结构化查询语言包括在脚本运行时互相关联的中间结构化查询语言和结果结构化查询语言;
根据第二信息构建抽象语法树,抽象语法树包括抽象语法树中各节点的字段关联关系;
解析抽象语法树,得到数据血缘关系。
在一张实施例中,解析抽象语法树,得到数据血缘关系,包括:
按预设血缘分析流向以及预设血缘解析层数遍历分析抽象语法树中各节点的字段关联关系,得到数据血缘关系。
在一张实施例中,待解析脚本信息包括注释字段、流程控制字段以及变量赋值字段;在将待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息之前,方法还包括:
将待解析脚本信息中的注释字段、流程控制字段以及变量赋值字段剔除。
在一张实施例中,方法还包括:
通过实时数据服务接口向数据中台设备发送数据血缘关系,用于数据中台设备显示数据血缘关系。
在一张实施例中,数据血缘关系包括如下至少一项:
表关系、字段关系、限定关系。
第二方面,本申请实施例提供一种数据血缘解析装置,包括:
获取模块,用于获取待解析脚本信息;
替换模块,用于将待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息;
压栈模块,用于将第一信息中的关联结构化查询语言进行压栈处理,得到第二信息,关联结构化查询语言包括在脚本运行时互相关联的中间结构化查询语言和结果结构化查询语言;
构建模块,用于根据第二信息构建抽象语法树,抽象语法树包括抽象语法树中各节点的字段关联关系;
解析模块,用于解析抽象语法树,得到数据血缘关系。
第三方面,本申请实施例提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现上述的数据血缘解析方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有信息传递的实现程序,程序被处理器执行时实现上述的数据血缘解析方法。
第五方面,本申请实施例提供一种计算机程序产品,计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备执行上述的数据血缘解析方法。
本申请实施例的数据血缘解析方法、装置、设备及存储介质,在获取待解析脚本信息后,将待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息,然后将第一信息中的关联结构化查询语言进行压栈处理,得到第二信息,待解析脚本信息经上述处理转换为第二信息,使得待解析脚本信息中的数据关联关系转换为抽象语法树构建算法可解析的第二信息,然后根据第二信息构建抽象语法树,构建出的抽象语法树更接近脚本运行时的真实数据关联关系,然后通过解析抽象语法树得到数据血缘关系,使得解析出的数据血缘关系准度较高。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据血缘解析方法的流程示意图;
图2是本申请实施例提供的一种数据血缘解析装置的结构示意图;
图3是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本申请,并不被配置为限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
数据中台运行日志记录的SQL类型繁多,传统的数据血缘解析方法难以解析全类型的SQL,导致解析出的数据血缘关系准度较低。例如,基于静态作业脚本解析的方法,主要覆盖范围为上线代码(Java、C语言等)版本中的静态SQL脚本(含参数)、SQL脚本(存储过程、静态SQL、视图)和运行在服务器上的解释类脚本程序(python、Perl、shell等脚本程序),首先提取SQL代码,SQL代码提取模块在提取过程中,需要剔除动态化参数和非SQL语法代码,生成标准SQL业务代码,然后在标准SQL业务代码基础上,根据不同的数据库类型构建SQL语法树,生成数据血缘关系,该方法无法准确识别实际运行态的数据加工关系,展现的数据血缘与生产态血缘有不一致的现象。再例如,基于作业运行日志解析的方法,是以上线作业生产态运行日志作为血缘关系数据解析来源的,由于运行日志不同版本间的差异较大,需要维护不同版本的日志解析策略,并且数据中台运行日志形态繁多,解析成功率低,造成解析得到的数据血缘准角度不高。
为了解决现有技术问题,本申请实施例提供了一种数据血缘解析方法、装置、设备及存储介质。本申请实施例在获取待解析脚本信息后,将待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息,然后将第一信息中的关联结构化查询语言进行压栈处理,得到第二信息,待解析脚本信息经上述处理转换为第二信息,使得待解析脚本信息中的数据关联关系转换为抽象语法树构建算法可解析的第二信息,然后根据第二信息构建抽象语法树,构建出的抽象语法树更接近脚本运行时的真实数据关联关系,然后通过解析抽象语法树得到数据血缘关系,使得解析出的数据血缘关系准度较高。下面首先对本申请实施例所提供的数据血缘解析方法进行介绍。
图1示出了本申请一个实施例提供的数据血缘解析方法的流程示意图。如图1所示,该方法可以包括以下步骤:
S110,获取待解析脚本信息。
待解析脚本信息可以从异构数据库中获取,例如Oracle,MySQL,TeraData,TDH,GreenPlum等数据库。读取异构数据库中的解析源配置信息的指定位置,即可获取待解析脚本信息,待解析脚本信息可以包括作业脚本相关的表信息、运行日志信息等。
S120,将待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息。
其中,系统变量和自定义函数在抽象语法树构建过程中,通常无法被抽象语法树构建算法识别。系统变量为在脚本内以“${”开始,以“}”结束的变量,预设常量和预设函数可以预先设置,例如,预设函数可以选取为UDF_FUNC()函数。通过将系统变量替换为预设常量、自定义函数替换为预设函数,使得抽象语法树构建算法可识别,构建出的抽象语法树更接近脚本运行时的真实数据关联关系。
本申请实施例在获取待解析脚本信息后,将待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息,然后将第一信息中的关联结构化查询语言进行压栈处理,得到第二信息,待解析脚本信息经上述处理转换为第二信息,使得待解析脚本信息中的数据关联关系转换为抽象语法树构建算法可解析的第二信息,然后根据第二信息构建抽象语法树,构建出的抽象语法树更接近脚本运行时的真实数据关联关系,然后通过解析抽象语法树得到数据血缘关系,使得解析出的数据血缘关系准度较高。
S130,将第一信息中的关联结构化查询语言进行压栈处理,得到第二信息。
其中,第一信息包括关联结构化查询语言和非关联结构化查询语言。第二信息包括压栈处理后的关联结构化查询语言和非关联结构化查询语言。关联结构化查询语言包括在脚本运行时互相关联的中间结构化查询语言和结果结构化查询语言。非关联结构化查询语言在脚本运行时并不发生变化。关联结构化查询语言指脚本内存在循环调用或SQL段跳转调用的一类信息,其循环调用次数或跳转调用次数由运行时决定,在循环调用或跳转调用过程中即会生成中间结构化查询语言和结果结构化查询语言。静态脚本无法获取运行时的信息状态,对关联结构化查询语言进行压栈处理,可以在后续抽象语法树构建中忽略关联结构化查询语言的中间过程,只取源与目标配对,提升抽象语法树构建效率。
S140,根据第二信息构建抽象语法树,抽象语法树包括抽象语法树中各节点的字段关联关系。
其中,在构建抽象语法树时,可以根据第二信息的来源脚本、待解析语句数的多寡、开始时间先后,逐句进行抽象语法树的构建。在构建抽象语法树时,可以通过读取执行引擎Antlr4语法,根据第二信息构建抽象语法树。
S150,解析抽象语法树,得到数据血缘关系。
在一张实施例中,S150:解析抽象语法树,得到数据血缘关系,包括:
按预设血缘分析流向以及预设血缘解析层数遍历分析抽象语法树中各节点的字段关联关系,得到数据血缘关系。
其中,预设血缘分析流向可以是上游方向或者下游方向,可以预先设定。各节点是抽象语法树AST的各个节点,每个节点对应SQL的一段语法。例如,AST中包括target_table_columns(目标表字段节点)和source_table_columns(源表字段节点),同时顺序遍历两个节点的下一级节点,便可获取源表字段与目标字段的数据血缘关系。在解析过程中,对于压栈处理后的关联结构化查询语言,可以按压栈关系,链接内层关系后,抽取源与目标的直接映射关系,生成数据血缘关系。对于暂时无法识别的语法,以整组为单位记录到待学习队列中,以待后续的学习调试,配置新解析模版。
在一张实施例中,待解析脚本信息包括注释字段、流程控制字段以及变量赋值字段。在S120:将待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息之前,方法还包括:
将待解析脚本信息中的注释字段、流程控制字段以及变量赋值字段剔除。
其中,流程控制字段可以包括GOTO、IF ERROR、LOOP等语句,注释字段可以包括单行注释:--,以及多行注释:/**/等字段。经过剔除后,留下的待解析脚本信息均为SQL。
本申请实施例通过在解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息之前,将待解析脚本信息中的注释字段、流程控制字段以及变量赋值字段剔除,留下的待解析脚本信息均为SQL,剔除了后续构建抽象语法树时的噪音信息,提升了构建抽象语法树的效率。
在一张实施例中,数据血缘关系包括如下至少一项:
表关系、字段关系、限定关系。
例如,表关系可以如表1所示进行记录:
表1
属性 | 属性类型 | 属性名称 | 备注 |
tableName | String | 表名 | |
alia | String | 表别名 | |
databaseName | String | 数据库名称 | |
isTempTable | Boolean | 是否是临时表 | |
tableLevel | Integer | 表层级 |
字段关系可以如表2所示进行记录:
表2
属性 | 属性类型 | 属性名称 | 备注 |
tgtColumn | Column | 目标字段 | |
srcColumn | Column | 源字段 | |
isUnrealSrc | Boolean | 是否虚拟源 | |
srcOper | String | 操作关系 |
限定关系可以如表3所示进行记录:
表3
属性 | 属性类型 | 属性名称 | 备注 |
tgtTable | Table | 目标表 | |
srcColumn | Column | 限定字段 |
汇总表关系、字段关系、限定关系,可以得到数据结果集,如表4所示:
表4
属性 | 属性类型 | 属性名称 | 备注 |
relationTables | List<RelationTable> | 表关系数据集 | |
relationColumns | List<RelationColumn> | 字段关系数据集 | |
relationLimits | List<RelationLimit> | 限定关系数据集 |
在一张实施例中,该方法还包括:
通过实时数据服务接口向数据中台设备发送数据血缘关系,用于数据中台设备显示数据血缘关系。
其中,实时数据服务接口包括输入接口和输出接口,输入接口和输出接口的定义可以分别如表5和表6所示:
表5
其中,各参数含义如下:
1)srcSchemaName:源数据库名称,用于确定表的归属,获取表id。
2)srcDBType:源数据库类型,用于确定使用何种数据库语言进行解析。
3)srcSQLScript:ETL脚本的内容文本。
4)tableMap:存放所有的表和表唯一标识的对应关系。
key:schemaName.table表的完整名称。
value:uuid表的唯一标识。
5)columnMap:存放所有表和字段的对应关系。
key:schemaName.table表的完整名称。
value:colList按顺序存放的字段列表。
columnList中每个colInfo的信息如下:
key:COLUMNNAME value:字段名。
key:COLUMN_ID value:字段唯一标识UUID。
key:OBJ_ID value:字段对应的表的唯一标识UUID。
表6
其中,List<SQLResultVO>为解析结果,解析结果可以如表7所示:
表7
属性 | 属性类型 | 属性名称 | 备注 |
relaTables | List<DataRelaTableVO> | 表关系数据集 | |
relaColumns | List<DataRelaColumnVO> | 字段关系数据集 | |
relaLimits | List<LimitedRelaColumnVO> | 限定关系数据集 |
在显示数据血缘关系时,可以显示如下信息类型:表关联关系视图(DataRelaTableVO)如表8所示;字段关联关系视图(DataRelaColumnVO),如表9所示;限定关系视图(LimitedRelaColumnVO),如表10所示。
表8
属性 | 属性类型 | 属性名称 | 备注 |
SrcObjId | String | 源对象ID | |
TgtObjId | String | 目标对象ID | |
DataRelaModify | String | 关系修饰符 | |
DataRelaCode | int | 数据关系代码 | |
AutoTypeCode | int | 关系添加方式 | |
DataRelaSrcId | String | 关系来源对象 | |
DataRelaSrcName | String | 关系来源对象名称 | |
Const_Cd_Col_Id | String | 常亮字段ID | |
Const_Value | String | 常亮值 |
表9
属性 | 属性类型 | 属性名称 | 备注 |
SrcObjId | String | 源字段ID | |
TgtObjId | String | 目标字段ID | |
DataRelaModify | String | 关系修饰符 | |
DataRelaCode | int | 数据关系代码 | |
AutoTypeCode | int | 关系添加方式 | |
DataRelaSrcId | String | 关系来源对象 | |
RelaDesc | String | 字段转换关系描述 | |
DataRelaSrcName | String | 关系来源对象名称 | |
Const_Cd_Col_Id | String | 常亮字段ID | |
Const_Value | String | 常亮值 |
表10
本申请实施例在获取待解析脚本信息后,将待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息,然后将第一信息中的关联结构化查询语言进行压栈处理,得到第二信息,待解析脚本信息经上述处理转换为第二信息,使得待解析脚本信息中的数据关联关系转换为抽象语法树构建算法可解析的第二信息,然后根据第二信息构建抽象语法树,构建出的抽象语法树更接近脚本运行时的真实数据关联关系,然后通过解析抽象语法树得到数据血缘关系,使得解析出的数据血缘关系准度较高。
图1描述了数据血缘解析方法,下面结合附图2和附图3描述本申请实施例提供的装置。
图2示出了本申请一个实施例提供的数据血缘解析装置的结构示意图,图2所示装置中各模块具有实现图1中各个步骤的功能,并能达到其相应技术效果。如图2所示,该装置可以包括:
获取模块210,用于获取待解析脚本信息;
替换模块220,用于将待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息;
压栈模块230,用于将第一信息中的关联结构化查询语言进行压栈处理,得到第二信息,关联结构化查询语言包括在脚本运行时互相关联的中间结构化查询语言和结果结构化查询语言;
构建模块240,用于根据第二信息构建抽象语法树,抽象语法树包括抽象语法树中各节点的字段关联关系;
解析模块250,用于解析抽象语法树,得到数据血缘关系。
本申请实施例在获取待解析脚本信息后,将待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息,然后将第一信息中的关联结构化查询语言进行压栈处理,得到第二信息,待解析脚本信息经上述处理转换为第二信息,使得待解析脚本信息中的数据关联关系转换为抽象语法树构建算法可解析的第二信息,然后根据第二信息构建抽象语法树,构建出的抽象语法树更接近脚本运行时的真实数据关联关系,然后通过解析抽象语法树得到数据血缘关系,使得解析出的数据血缘关系准度较高。
在一种实施例中,解析模块250,具体用于:
按预设血缘分析流向以及预设血缘解析层数遍历分析抽象语法树中各节点的字段关联关系,得到数据血缘关系。
在一种实施例中,待解析脚本信息包括注释字段、流程控制字段以及变量赋值字段;装置还包括剔除模块260;
剔除模块260,用于在将待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息之前,将待解析脚本信息中的注释字段、流程控制字段以及变量赋值字段剔除。
在一种实施例中,装置还包括发送模块270,用于通过实时数据服务接口向数据中台设备发送数据血缘关系,用于数据中台设备显示数据血缘关系。
在一种实施例中,数据血缘关系包括如下至少一项:
表关系、字段关系、限定关系。
本申请实施例在获取待解析脚本信息后,将待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息,然后将第一信息中的关联结构化查询语言进行压栈处理,得到第二信息,待解析脚本信息经上述处理转换为第二信息,使得待解析脚本信息中的数据关联关系转换为抽象语法树构建算法可解析的第二信息,然后根据第二信息构建抽象语法树,构建出的抽象语法树更接近脚本运行时的真实数据关联关系,然后通过解析抽象语法树得到数据血缘关系,使得解析出的数据血缘关系准度较高。
图3示出了本申请一个实施例提供的电子设备的结构示意图。如图3所示,该设备可以包括处理器301以及存储有计算机程序指令的存储器302。
具体地,上述处理器301可以包括中央处理器(Central Processing Unit,CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器302可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器302可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在一个实例中,存储器302可以包括可移除或不可移除(或固定)的介质,或者存储器302是非易失性固态存储器。存储器302可在综合网关容灾设备的内部或外部。
在一个实例中,存储器302可以是只读存储器(Read Only Memory,ROM)。在一个实例中,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器301通过读取并执行存储器302中存储的计算机程序指令,以实现图1所示实施例中的方法,并达到图1所示实例执行其方法达到的相应技术效果,为简洁描述在此不再赘述。
在一个示例中,该电子设备还可包括通信接口303和总线310。其中,如图3所示,处理器301、存储器302、通信接口303通过总线310连接并完成相互间的通信。
通信接口303,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。
总线310包括硬件、软件或两者,将在线数据流量计费设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(Accelerated Graphics Port,AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,EISA)总线、前端总线(Front Side Bus,FSB)、超传输(Hyper Transport,HT)互连、工业标准架构(Industry Standard Architecture,ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线310可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该电子设备可以执行本申请实施例中的数据血缘解析方法,从而实现图1描述的数据血缘解析方法的相应技术效果。
另外,结合上述实施例中的数据血缘解析方法,本申请实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种数据血缘解析方法。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RadioFrequency,RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本申请的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
Claims (13)
1.一种数据血缘解析方法,其特征在于,包括:
获取待解析脚本信息;
将所述待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息;
将所述第一信息中的关联结构化查询语言进行压栈处理,得到第二信息,所述关联结构化查询语言包括在脚本运行时互相关联的中间结构化查询语言和结果结构化查询语言;
根据所述第二信息构建抽象语法树,所述抽象语法树包括所述抽象语法树中各节点的字段关联关系;
解析所述抽象语法树,得到数据血缘关系。
2.如权利要求1所述的数据血缘解析方法,其特征在于,所述解析所述抽象语法树,得到数据血缘关系,包括:
按预设血缘分析流向以及预设血缘解析层数遍历分析所述抽象语法树中各节点的字段关联关系,得到所述数据血缘关系。
3.如权利要求1所述的数据血缘解析方法,其特征在于,所述待解析脚本信息包括注释字段、流程控制字段以及变量赋值字段;在所述将所述待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息之前,所述方法还包括:
将所述待解析脚本信息中的注释字段、流程控制字段以及变量赋值字段剔除。
4.如权利要求1-3任一项所述的数据血缘解析方法,其特征在于,所述方法还包括:
通过实时数据服务接口向数据中台设备发送所述数据血缘关系,用于所述数据中台设备显示所述数据血缘关系。
5.如权利要求1所述的数据血缘解析方法,其特征在于,所述数据血缘关系包括如下至少一项:
表关系、字段关系、限定关系。
6.一种数据血缘解析装置,其特征在于,包括:
获取模块,用于获取待解析脚本信息;
替换模块,用于将所述待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息;
压栈模块,用于将所述第一信息中的关联结构化查询语言进行压栈处理,得到第二信息,所述关联结构化查询语言包括在脚本运行时互相关联的中间结构化查询语言和结果结构化查询语言;
构建模块,用于根据所述第二信息构建抽象语法树,所述抽象语法树包括所述抽象语法树中各节点的字段关联关系;
解析模块,用于解析所述抽象语法树,得到数据血缘关系。
7.如权利要求6所述的数据血缘解析装置,其特征在于,所述解析模块,具体用于:
按预设血缘分析流向以及预设血缘解析层数遍历分析所述抽象语法树中各节点的字段关联关系,得到所述数据血缘关系。
8.如权利要求6所述的数据血缘解析装置,其特征在于,所述待解析脚本信息包括注释字段、流程控制字段以及变量赋值字段;所述装置还包括剔除模块;
所述剔除模块,用于在所述将所述待解析脚本信息中的系统变量替换为预设常量、自定义函数替换为预设函数,得到第一信息之前,将所述待解析脚本信息中的注释字段、流程控制字段以及变量赋值字段剔除。
9.如权利要求6-8任一项所述的数据血缘解析装置,其特征在于,所述装置还包括发送模块;
所述发送模块,用于通过实时数据服务接口向数据中台设备发送所述数据血缘关系,用于所述数据中台设备显示所述数据血缘关系。
10.如权利要求6所述的数据血缘解析装置,其特征在于,所述数据血缘关系包括如下至少一项:
表关系、字段关系、限定关系。
11.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的数据血缘解析方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有信息传递的实现程序,所述程序被处理器执行时实现如权利要求1至5中任一项所述的数据血缘解析方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如权利要求1至5任一项所述的数据血缘解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210044460.9A CN114398394A (zh) | 2022-01-14 | 2022-01-14 | 数据血缘解析方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210044460.9A CN114398394A (zh) | 2022-01-14 | 2022-01-14 | 数据血缘解析方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114398394A true CN114398394A (zh) | 2022-04-26 |
Family
ID=81231712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210044460.9A Pending CN114398394A (zh) | 2022-01-14 | 2022-01-14 | 数据血缘解析方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114398394A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115291889A (zh) * | 2022-09-27 | 2022-11-04 | 华控清交信息科技(北京)有限公司 | 一种数据血缘关系建立方法、装置及电子设备 |
WO2024032820A1 (zh) * | 2022-08-09 | 2024-02-15 | 顺丰科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
-
2022
- 2022-01-14 CN CN202210044460.9A patent/CN114398394A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024032820A1 (zh) * | 2022-08-09 | 2024-02-15 | 顺丰科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN115291889A (zh) * | 2022-09-27 | 2022-11-04 | 华控清交信息科技(北京)有限公司 | 一种数据血缘关系建立方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220091827A1 (en) | Pruning Engine | |
CN111522816B (zh) | 基于数据库引擎的数据处理方法、装置、终端及介质 | |
US8171001B2 (en) | Using a data mining algorithm to generate rules used to validate a selected region of a predicted column | |
CN107391353B (zh) | 基于日志的复杂软件系统异常行为检测方法 | |
US20090006283A1 (en) | Using a data mining algorithm to generate format rules used to validate data sets | |
CN114398394A (zh) | 数据血缘解析方法、装置、设备及存储介质 | |
EP3674918A2 (en) | Column lineage and metadata propagation | |
CN111127068B (zh) | 一种工程量清单自动组价方法和装置 | |
CN111488314A (zh) | 一种基于Python的仿真日志分析方法 | |
CN105095436A (zh) | 数据源数据自动建模方法 | |
Sudhamani et al. | Code similarity detection through control statement and program features | |
CN111046087A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN111190873A (zh) | 一种用于云原生系统日志训练的日志模式提取方法及系统 | |
CN107291749B (zh) | 一种数据指标关联关系的确定方法及装置 | |
US20230099164A1 (en) | Systems and methods for automated data quality semantic constraint identification using rich data type inferences | |
CN111581057A (zh) | 一种通用日志解析方法、终端设备及存储介质 | |
CN115658072A (zh) | 数据血缘解析方法、装置、设备及计算机可读存储介质 | |
CN116302984A (zh) | 一种测试任务的根因分析方法、装置及相关设备 | |
CN106682107B (zh) | 数据库表关联关系确定方法及装置 | |
JP2018136640A (ja) | 検出方法、検出装置および検出プログラム | |
US9251253B2 (en) | Expeditious citation indexing | |
CN113032366A (zh) | 基于Flex和Bison的SQL语法树解析方法 | |
CN114328149B (zh) | 编译时长的统计方法、装置、电子设备及可读介质 | |
CN114692595B (zh) | 一种基于文本匹配的重复冲突方案检测方法 | |
CN113138936B (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 |