数据血缘生成方法及装置制造方法及图纸

技术编号:28538308 阅读:16 留言:0更新日期:2021-05-21 09:02
本公开关于一种数据血缘生成方法及装置,涉及数据分析技术领域,可以将数据血缘的精细度提高至亚字段级。该方法包括:根据结构化查询语言SQL,得到逻辑执行计划树LOT,SQL用于指示源输入列以及多个处理操作;LOT包括与多个处理操作对应的多个算子;将源输入列作为多个算子中起始算子的输入列,推导得到每个算子的输入列与输出列之间的映射关系;对于多个算子中具有表达式树的第一算子,第一算子的输入列与输出列之间的映射关系包括第一算子的输入列包括的亚字段与第一算子的输出列之间的映射关系;根据每个算子的输入列与输出列之间的映射关系,得到多个算子中根算子的输出列与源输入列之间的映射关系。

【技术实现步骤摘要】
数据血缘生成方法及装置
本公开涉及数据分析
,尤其涉及数据血缘生成方法及装置。
技术介绍
目前,在数据处理过程中,可以将原始数据作为输入数据,输入数据处理管线(pipeline),由pipeline进行一系列处理操作(operator)处理后得到最终输出的数据。其中,pipeline最终输出的数据可以作为输出数据,输出数据与输入数据、经pipeline中的处理操作生成的中间数据组成数据血缘。数据血缘可以描述数据处理过程中生成的中间数据与输入/输出数据之间的依赖关系,技术人员可以根据数据血缘进行数据分析处理,如:数据回溯或影响分析等功能。因此,数据血缘在数据分析
中的应用越来越广。其中,上述各类数据,如:输入数据、中间数据以及输出数据,可以以包括一个或多个字段/列的数据表的形式呈现在数据血缘中,也可以以字段/列的形式呈现在数据血缘中,即现有技术中数据血缘的精细度可以是数据表级或者字段/列级,在根据数据血缘进行数据分析时,仅能回溯或分析到输出数据中数据来源于输入数据中的某一个或某几个字段/列,数据分析不够精确。
技术实现思路
本公开提供一种数据血缘生成方法及装置,可以将数据血缘的精细度提高至亚字段级。本公开的技术方案如下:根据本公开实施例的第一方面,提供一种数据血缘生成方法,该方法包括:根据结构化查询语言SQL,得到逻辑执行计划树LOT,其中,所述SQL用于指示源输入列以及多个处理操作;所述LOT包括与所述多个处理操作对应的多个算子,具有串行关系的两个算子通过有向边连接,每个算子包括所述算子的输出列,每个算子具有表达式树或者不具有表达式树;将所述源输入列作为所述多个算子中起始算子的输入列,推导得到每个算子的输入列与输出列之间的映射关系;其中,对于所述多个算子中具有表达式树的第一算子,所述第一算子的输入列与输出列之间的映射关系包括所述第一算子的输入列包括的亚字段与所述第一算子的输出列之间的映射关系;根据所述每个算子的输入列与输出列之间的映射关系,得到所述多个算子中根算子的输出列与所述源输入列之间的映射关系。在一种可能的实现方式中,所述表达式树包括至少一条路径,所述路径包括至少一个节点,所述路径与所述第一算子的具有映射关系的输入列与输出列对应,所述至少一个节点串行连接;所述推导得到所述第一算子的输入列与输出列之间的映射关系包括:建立亚字段关系映射表;其中,所述亚字段关系映射表包括所述至少一个节点中每个节点的标识、所述节点所处路径的输入列以及所述节点的表达式间的对应关系;对于第一节点,所述第一节点为所述至少一个节点中的任一节点,根据所述第一节点所处路径的输入列、所述第一节点的表达式以及所述第一节点所处路径中,所述第一节点的下游节点的表达式,确定所述第一节点的输出列;若所述第一节点为所述第一节点所处路径的根节点,将所述第一节点的输出列与所述第一算子的输出列之间的映射关系,确定为所述第一算子的输入列与输出列之间的映射关系。在一种可能的实现方式中,所述至少一个节点包括相关节点,所述相关节点的输入列包括一个或多个亚字段,所述相关节点的表达式使用所述相关节点的输入列包括的亚字段执行相应操作;若所述第一节点为相关节点,所述根据所述第一节点所处路径的输入列、所述第一节点的表达式以及所述第一节点所处路径中,所述第一节点的下游节点的表达式,确定所述第一节点的输出列,包括:根据所述第一节点所处路径的输入列以及所述第一节点所处路径中,所述第一节点的下游节点的表达式,确定所述第一节点的输入列;根据所述第一节点的输入列以及所述第一节点的表达式,得到所述第一节点的输出列。在一种可能的实现方式中,所述至少一个节点包括非相关节点,所述非相关节点的输入列包括一个或多个亚字段,所述非相关节点的表达式不使用所述非相关节点的输入列包括的亚字段执行相应操作;若所述第一节点为非相关节点,所述根据所述第一节点所处路径的输入列、所述第一节点的表达式以及所述第一节点所处路径中,所述第一节点的下游节点的表达式,确定所述第一节点的输出列,包括:根据所述第一节点所处路径的输入列以及所述第一节点所处路径中,所述第一节点的下游节点的表达式,确定所述第一节点的输入列;将所述第一节点的输入列确定为所述第一节点的输出列。在一种可能的实现方式中,所述根据所述每个算子的输入列与输出列之间的映射关系,得到所述多个算子中根算子的输出列与所述源输入列之间的映射关系,包括:对所述多个算子中的第i+1个算子,根据所述第i+1个算子的输入列与输出列之间的映射关系以及所述第i个算子的输出列与所述源输入列之间的映射关系,得到所述第i+1个算子的输出列与所述源输入列之间的映射关系;其中,i为大于或者等于1的整数;当所述第i+1个算子为所述根算子的子算子时,根据所述第i+1个算子的输出列与所述源输入列之间的映射关系、以及所述根算子的输入列与输出列之间的映射关系,得到所述根算子的输出列与所述源输入列之间的映射关系。根据本公开实施例的第二方面,提供一种数据血缘生成装置,包括处理模块和推导模块;所述处理模块,被配置为根据结构化查询语言SQL,得到逻辑执行计划树LOT,其中,所述SQL用于指示源输入列以及多个处理操作;所述LOT包括与所述多个处理操作对应的多个算子,具有串行关系的两个算子通过有向边连接,每个算子包括所述算子的输出列,每个算子具有表达式树或者不具有表达式树;所述推导模块,被配置为将所述源输入列作为所述多个算子中起始算子的输入列,推导得到每个算子的输入列与输出列之间的映射关系;其中,对于所述多个算子中具有表达式树的第一算子,所述第一算子的输入列与输出列之间的映射关系包括所述第一算子的输入列包括的亚字段与所述第一算子的输出列之间的映射关系;所述处理模块,还被配置为根据所述每个算子的输入列与输出列之间的映射关系,得到所述多个算子中根算子的输出列与所述源输入列之间的映射关系。在一种可能的实现方式中,所述表达式树包括至少一条路径,所述路径包括至少一个节点,所述路径与所述第一算子的具有映射关系的输入列与输出列对应,所述至少一个节点串行连接;所述推导模块,具体被配置为建立亚字段关系映射表;其中,所述亚字段关系映射表包括所述至少一个节点中每个节点的标识、所述节点所处路径的输入列以及所述节点的表达式间的对应关系;所述推导模块,还具体被配置为对于第一节点,所述第一节点为所述至少一个节点中的任一节点,根据所述第一节点所处路径的输入列、所述第一节点的表达式以及所述第一节点所处路径中,所述第一节点的下游节点的表达式,确定所述第一节点的输出列;所述推导模块,还具体被配置为若所述第一节点为所述第一节点所处路径的根节点,将所述第一节点的输出列与所述第一算子的输出列之间的映射关系,确定为所述第一算子的输入列与输出列之间的映射关系。在一种可能的实现方式中,所述至少一个节点包括相关节点,所述相关节点的输入列包括一个或多个亚字段,所述相关节点的表达式使用所述相关节点的输入列包括的亚字段执行相应操作;若所述第一节点为相关节点,所述推导模块,还具体被配置为根据所述第一节点所处路径的本文档来自技高网...

【技术保护点】
1.一种数据血缘生成方法,其特征在于,应用于数据血缘生成装置,所述方法包括:/n根据结构化查询语言SQL,得到逻辑执行计划树LOT,其中,所述SQL用于指示源输入列以及多个处理操作;所述LOT包括与所述多个处理操作对应的多个算子,具有串行关系的两个算子通过有向边连接,每个算子包括所述算子的输出列,每个算子具有表达式树或者不具有表达式树;/n将所述源输入列作为所述多个算子中起始算子的输入列,推导得到每个算子的输入列与输出列之间的映射关系;其中,对于所述多个算子中具有表达式树的第一算子,所述第一算子的输入列与输出列之间的映射关系包括所述第一算子的输入列包括的亚字段与所述第一算子的输出列之间的映射关系;/n根据所述每个算子的输入列与输出列之间的映射关系,得到所述多个算子中根算子的输出列与所述源输入列之间的映射关系。/n

【技术特征摘要】
1.一种数据血缘生成方法,其特征在于,应用于数据血缘生成装置,所述方法包括:
根据结构化查询语言SQL,得到逻辑执行计划树LOT,其中,所述SQL用于指示源输入列以及多个处理操作;所述LOT包括与所述多个处理操作对应的多个算子,具有串行关系的两个算子通过有向边连接,每个算子包括所述算子的输出列,每个算子具有表达式树或者不具有表达式树;
将所述源输入列作为所述多个算子中起始算子的输入列,推导得到每个算子的输入列与输出列之间的映射关系;其中,对于所述多个算子中具有表达式树的第一算子,所述第一算子的输入列与输出列之间的映射关系包括所述第一算子的输入列包括的亚字段与所述第一算子的输出列之间的映射关系;
根据所述每个算子的输入列与输出列之间的映射关系,得到所述多个算子中根算子的输出列与所述源输入列之间的映射关系。


2.根据权利要求1所述的方法,其特征在于,所述表达式树包括至少一条路径,所述路径包括至少一个节点,所述路径与所述第一算子的具有映射关系的输入列与输出列对应,所述至少一个节点串行连接;
所述推导得到所述第一算子的输入列与输出列之间的映射关系包括:
建立亚字段关系映射表;其中,所述亚字段关系映射表包括所述至少一个节点中每个节点的标识、所述节点所处路径的输入列以及所述节点的表达式间的对应关系;
对于第一节点,所述第一节点为所述至少一个节点中的任一节点,根据所述第一节点所处路径的输入列、所述第一节点的表达式以及所述第一节点所处路径中,所述第一节点的下游节点的表达式,确定所述第一节点的输出列;
若所述第一节点为所述第一节点所处路径的根节点,将所述第一节点的输出列与所述第一算子的输出列之间的映射关系,确定为所述第一算子的输入列与输出列之间的映射关系。


3.根据权利要求2所述的方法,其特征在于,所述至少一个节点包括相关节点,所述相关节点的输入列包括一个或多个亚字段,所述相关节点的表达式使用所述相关节点的输入列包括的亚字段执行相应操作;
若所述第一节点为相关节点,所述根据所述第一节点所处路径的输入列、所述第一节点的表达式以及所述第一节点所处路径中,所述第一节点的下游节点的表达式,确定所述第一节点的输出列,包括:
根据所述第一节点所处路径的输入列以及所述第一节点所处路径中,所述第一节点的下游节点的表达式,确定所述第一节点的输入列;
根据所述第一节点的输入列以及所述第一节点的表达式,得到所述第一节点的输出列。


4.根据权利要求2或者3所述的方法,其特征在于,所述至少一个节点包括非相关节点,所述非相关节点的输入列包括一个或多个亚字段,所述非相关节点的表达式不使用所述非相关节点的输入列包括的亚字段执行相应操作;
若所述第一节点为非相关节点,所述根据所述第一节点所处路径的输入列、所述第一节点的表达式以及所述第一节点所处路径中,所述第一节点的下游节点的表达式,确定所述第一节点的输出列,包括:
根据所述第一节点所处路径的输入列以及所述第一节点所处路径中,所述第一节点的下游节点的表达式,确定所述第一节点的输入列;
将所述第一节点的输入列确定为所述第一节点的输出列。


5.一种数据血缘生成装置,其特征在于,所述装置包括:处理模块和推导模块;
所述处理模块,被配置为根据结构化查询语言SQL,得...

【专利技术属性】
技术研发人员:王新波
申请(专利权)人:北京达佳互联信息技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1