CN113127478A - 数据内生血缘关系的分析方法、装置和计算机设备 - Google Patents

数据内生血缘关系的分析方法、装置和计算机设备 Download PDF

Info

Publication number
CN113127478A
CN113127478A CN201911418176.8A CN201911418176A CN113127478A CN 113127478 A CN113127478 A CN 113127478A CN 201911418176 A CN201911418176 A CN 201911418176A CN 113127478 A CN113127478 A CN 113127478A
Authority
CN
China
Prior art keywords
blood
syntax
data
grammar
sql
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.)
Granted
Application number
CN201911418176.8A
Other languages
English (en)
Other versions
CN113127478B (zh
Inventor
李宇
刘跃
齐向东
吴云坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qax Technology Group Inc
Secworld Information Technology Beijing Co Ltd
Original Assignee
Qax Technology Group Inc
Secworld Information Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qax Technology Group Inc, Secworld Information Technology Beijing Co Ltd filed Critical Qax Technology Group Inc
Priority to CN201911418176.8A priority Critical patent/CN113127478B/zh
Publication of CN113127478A publication Critical patent/CN113127478A/zh
Application granted granted Critical
Publication of CN113127478B publication Critical patent/CN113127478B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational 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)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据内生血缘关系的分析方法、装置和计算机设备。该方法包括:获取数据库的SQL日志;对SQL语句进行语法解析,得到抽象语法树对象;确定语法叶子节点对应的信息;将语法叶子节点对应的信息作为血缘树中的节点,建立SQL语句对应的血缘树;根据多条SQL语句对应的血缘树确定数据库中的数据内生血缘关系。通过本发明,能够确定数据库中各数据表的数据内生血缘关系。

Description

数据内生血缘关系的分析方法、装置和计算机设备
技术领域
本发明涉及大数据技术领域,尤其涉及一种数据内生血缘关系的分析方法、装置和计算机设备。
背景技术
对于企业来讲,数据就是资产的一种,大数据时代的企业数据存储与运用至关重要。现有技术中的企业数的存储和运用存在以下问题:第一,在企业数据仓库的建模中,由于最初建模的不合理,随着时间的流逝,会导致数据仓库运行的越来越慢,添加和计算指标越来越复杂,维护成本越来越高;第二,在企业的发展中,沉淀的大量数据与技术人员的流入流出等诸多因素,大量数据已经成为“未知意义”的数据,并且,对于这些数据的来源与去向无从查询,进而成为无价值的数据。
针对上述问题,现有技术提出数据血缘关系的概念,即数据的全生命周期中,数据与数据之间会形成多种多样的关系,这些关系与人类的血缘关系类似,所以被称作数据血缘关系,通过数据血缘关系,能够找到模型问题进而解决模型问题,也能够根据父子关系、生命周期等形式来分析数据的价值。
此外,传统的网络安全防护都是“外生”的,立足于边界防护,但随着不断变化的网络威胁,网络安全进化到了“内生安全”时代,而聚合是实现“内生安全”的必要手段,信息化系统和安全系统的聚合,产生自适应安全能力;IT人才和安全人才的聚合,产生自成长的安全能力;业务数据和安全数据的聚合,产生自主安全能力,其中,在数据聚合的过程中,数据内生血缘关系的分析时必要步骤。
因此,提供一种数据内生血缘关系的分析方法、装置、计算机设备和存储介质,以分析数据库中各数据表的数据内生血缘关系,成为本领域亟需解决的技术问题。
发明内容
本发明的目的是提供一种数据内生血缘关系的分析方法、装置、计算机设备和存储介质,用于解决现有技术中的上述技术问题。
一方面,为实现上述目的,本发明提供了一种数据内生血缘关系的分析方法。
该数据内生血缘关系的分析方法包括:获取数据库的SQL日志,其中,数据库包括多个数据表,数据表包括若干字段,SQL日志包括多条SQL语句;对SQL语句进行语法解析,得到抽象语法树对象,其中,抽象语法树对象包括语法根节点和多个语法叶子节点,语法根节点为SQL语句,语法叶子节点为SQL语句中的语法结构;确定语法叶子节点对应的信息,其中,当语法结构的语法包括操作时,语法叶子节点对应的信息包括操作的标识信息,当语法结构表征目的字段时,语法叶子节点对应的信息包括第一表达式,第一表达式包括目的字段的字段名和目的字段所在数据表的表名,当语法结构表征源字段时,语法叶子节点对应的信息包括第二表达式,第二表达式包括源字段的字段名和源字段所在的数据表的表名;将语法叶子节点对应的信息作为血缘树中的节点,建立SQL语句对应的血缘树;根据多条SQL语句对应的血缘树确定数据库中的数据内生血缘关系。
进一步地,将语法叶子节点对应的信息作为血缘树中的节点,建立SQL语句对应的血缘树的步骤包括:按照由语法叶子节点到语法根节点的顺序,将语法叶子节点对应的信息存储至节点存储栈,其中,节点存储栈的出栈逻辑为先进先出;获取节点存储栈中的对象建立SQL语句对应的血缘树。
进一步地,血缘树包括表征标识信息的中间节点、表征第一表达式或第二表达式的端节点,根据多条SQL语句对应的血缘树确定数据库中的数据内生血缘关系的步骤包括:获取血缘树中两个端节点之间的路径,得到血缘路径;存储血缘路径的路径信息至血缘数据库,其中,路径信息包括所两个端节点、两个端节点之间的数据流向和两个端节点之间在血缘路径上的中间节点;显示血缘数据库中多条路径信息,以得到血缘图。
进一步地,显示血缘数据库中多条路径信息,以得到血缘图的步骤包括:将路径信息中的两个端节点映射为血缘图中的第一点和第二点,其中,路径信息的一个端节点中的表名映射为第一点的标注,路径信息的另一个端节点中的表名映射为第二点的标注;将路径信息中的两个端节点之间的数据流向映射为第一点和第二点之间的有向边;以及将路径信息中的中间节点映射为有向边的标注。
进一步地,不同路径信息中具有相同表名的端节点映射为血缘图中的同一点。
进一步地,在获取数据库的SQL日志的步骤之后,对SQL语句进行语法解析,得到抽象语法树对象的步骤之前,数据内生血缘关系的分析方法还包括:将多条SQL语句存储至消息缓存队列;其中,对SQL语句进行语法解析,得到抽象语法树对象的步骤包括:获取消息缓存队列中的消息进行语法解析,得到抽象语法树对象。
进一步地,获取数据库的SQL日志的步骤包括:通过flume组件监控和收集数据库的SQL日志。
另一方面,为实现上述目的,本发明提供了一种数据内生血缘关系的分析装置。
该数据内生血缘关系的分析装置包括:获取模块,用于获取数据库的SQL日志,其中,数据库包括多个数据表,数据表包括若干字段,SQL日志包括多条SQL语句;解析模块,用于对SQL语句进行语法解析,得到抽象语法树对象,其中,抽象语法树对象包括语法根节点和多个语法叶子节点,语法根节点为SQL语句,语法叶子节点为SQL语句中的语法结构;第一确定模块,用于确定语法叶子节点对应的信息,其中,当语法结构的语法包括操作时,语法叶子节点对应的信息包括操作的标识信息,当语法结构表征目的字段时,语法叶子节点对应的信息包括第一表达式,第一表达式包括目的字段的字段名和目的字段所在数据表的表名,当语法结构表征源字段时,语法叶子节点对应的信息包括第二表达式,第二表达式包括源字段的字段名和源字段所在的数据表的表名;处理模块,用于将语法叶子节点对应的信息作为血缘树中的节点,建立SQL语句对应的血缘树;第二确定模块,用于根据多条SQL语句对应的血缘树确定数据库中的数据内生血缘关系。
为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的数据内生血缘关系的分析方法、装置、计算机设备和存储介质,分析数据库中各数据表的数据内生血缘关系时,通过数据库的SQL日志得到SQL语句,对SQL语句进行语法解析,得到抽象语法树对象,然后根据语法结构确定语法叶子节点对应的信息,将语法叶子节点对应的信息作为血缘树中的节点,建立SQL语句对应的血缘树,最后根据多条SQL语句对应的血缘树确定数据库中的数据内生血缘关系,通过本发明,提供了一种在大数据场景下有效、便捷的数据内生血缘关系的分析方法。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例一提供的数据内生血缘关系的分析方法的流程图;
图2为本发明实施例提供的数据内生血缘关系的分析方法中抽象语法树对象的示意图;
图3为本发明实施例提供的数据内生血缘关系的分析方法中血缘树的示意图;
图4为本发明实施例提供的数据内生血缘关系的分析方法中节点存储栈的示意图;
图5为本发明实施例二提供的数据内生血缘关系的分析装置的框图;
图6为本发明实施例三提供的计算机设备的硬件结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了实现对数据库中各数据表的数据内生血缘关系的分析,本发明提供了一种数据内生血缘关系的分析方法、装置、计算机设备和计算机可读存储介质,在本发明提供的数据内生血缘关系的分析方法中,对数据库的数据内生血缘关系进行分析时,获取该数据库的SQL日志,将其中的SQL语句进行语法解析,得到抽象语法树对象,其中,抽象语法树对象包括语法根节点和多个语法叶子节点,语法根节点为SQL语句本身,语法叶子节点为语法解析后得到的SQL语句中的语法结构,然后根据语法结构的特征,确定语法叶子节点对应的信息,对于包括操作的语法结构,语法叶子节点对应的信息包括操作的标识信息,对于表征目的字段的语法结构,语法叶子节点对应的信息包括目的字段的字段名和目的字段所在数据表的表名,对于表征源字段的语法结构,语法叶子节点对应的信息包括源字段的字段名和源字段所在的数据表的表名,然后将语法叶子节点对应的信息作为血缘树中的节点,建立SQL语句对应的血缘树,在该血缘树中,能够体现该SQL语句中源数据表至目的数据表的网络关系,进而,通过多条SQL语句对应的血缘树,能够确定不同数据表之间的网络关系,也即确定数据库中的数据内生血缘关系。从中可以看出,采用本发明提供的数据内生血缘关系的分析方法、装置、计算机设备和计算机可读存储介质,通过分析SQL来作为血缘分析的切入点,提供了一种在大数据场景下有效、便捷的数据内生血缘关系的分析方法。
关于本发明提供的数据内生血缘关系的分析方法、装置、计算机设备和计算机可读存储介质的具体实施例,将在下文中详细描述。
实施例一
本发明实施例提供了一种数据内生血缘关系的分析方法,通过该方法,能够分析出数据库中各数据表的数据内生血缘关系,具体地,图1为本发明实施例一提供的数据内生血缘关系的分析方法的流程图,如图1所示,该实施例提供的数据内生血缘关系的分析方法包括如下的步骤S101至步骤S105。
步骤S101:获取数据库的SQL日志。
其中,数据库包括多个数据表,数据表包括若干字段,SQL日志包括多条SQL语句,各条SQL语句用于在数据库的各个数据表之间进行数据转换和计算等。
可选地,在获取数据库的SQL日志时,可通过flume组件监控和收集数据库的SQL日志,实现了分布式的日志收集系统,能够实现SQL日志的快速收集。
步骤S102:对SQL语句进行语法解析,得到抽象语法树对象。
其中,抽象语法树对象包括语法根节点和多个语法叶子节点,语法根节点为SQL语句,语法叶子节点为SQL语句中的语法结构。
在一个SQL语句中,通常包括多个语法层级的嵌套关系,例如先将两个数据表的某些字段进行运算后,将运算结果与另一个数据表的字段合并,再将合并的结果写入第四个数据表的字段中,其中的语法结构包括表征目的字段(也即第四个数据表的字段)的结果、表征源字段(也即前三个数据表分别的字段)的结构和包括中间操作的描述信息,其中,中间操作的描述信息形成语法层级的嵌套,也即两个字段的运算与两个数据字段的合并的嵌套。将SQL语句进行语法解析,得到的抽象语法树对象具有根节点和叶子节点,为了与下文中血缘树的节点相区分,将抽象语法树对象的根节点定义为语法根节点,将抽象语法树对象的叶子节点定义为语法叶子节点,语法根节点为SQL语句,语法叶子节点为SQL语句中的语法结构。
图2为本发明实施例提供的数据内生血缘关系的分析方法中抽象语法树对象的示意图,如图2所示,对一SQL语句进行语法解析,得到抽象语法树对象,以图示的正方向(也即横向纸张)来看,从左至右包括语法根节点和四层语法叶子节点,其中,第一层语法叶子节点包括三个语法叶子节点,第二层语法叶子节点包括两个语法叶子节点,第三层语法叶子节点包括三个语法叶子节点。
步骤S103:确定语法叶子节点对应的信息。
其中,当语法结构的语法包括操作时,语法叶子节点对应的信息包括操作的标识信息,当语法结构表征目的字段时,语法叶子节点对应的信息包括第一表达式,第一表达式包括目的字段的字段名和目的字段所在数据表的表名,当语法结构表征源字段时,语法叶子节点对应的信息包括第二表达式,第二表达式包括源字段的字段名和源字段所在的数据表的表名。
为了方便理解,请继续参考图2所述的抽象语法树对象,其中,第一层语法叶子节点包括的三个语法叶子节点中,语法叶子节点(下标记为1.1)“INSERT INTO db.table(col1,col2,col3)”表征目的字段,该语法叶子节点1.1对应的信息包括目的字段的字段名col1,col2,col3和目的字段所在数据表的表名db.table(图3中的Expr0);语法叶子节点1.2“SELECT cola,colb,colc”包括SELECT操作,该语法叶子节点1.2对应的信息包括SELECT;另一个语法叶子节点(下标记为1.3)表征JOIN操作,该语法叶子节点1.3对应的信息包括JOIN。
第二层语法叶子节点包括的两个语法叶子节点中,语法叶子节点(下标记为2.1)“FROM()”包括SUB操作,该语法叶子节点2.1对应的信息包括SUB;语法叶子节点(下标记为2.2)“JOIN()”包括JOIN操作,该语法叶子节点2.1对应的信息包括JOIN。
第三层语法叶子节点包括的三个语法叶子节点中,语法叶子节点(下标记为3.1)“FROM table_01”表征源字段,该语法叶子节点3.1对应的信息包括源字段的字段名c1,c2,c3和源字段所在数据表的表名table_01(图3中的Expr1);语法叶子节点(下标记为3.2)“FROM table_02”表征源字段,该语法叶子节点3.2对应的信息包括源字段的字段名ca,cb,cc和源字段所在数据表的表名table_02(图3中的Expr2);另一个语法叶子节点(下标记为3.3)“FROM table_03”表征源字段,该语法叶子节点3.3对应的信息包括源字段的字段名ca,cb,cc和源字段所在数据表的表名table_03(图3中的Expr3)。
步骤S104:将语法叶子节点对应的信息作为血缘树中的节点,建立SQL语句对应的血缘树。
在该步骤中,根据语法叶子节点在抽象语法树对象中的层级关系,建立血缘树,并且将将语法叶子节点对应的信息作为血缘树中的节点,建立起SQL语句对应的血缘树。
仍然以图2所示的抽象语法树对象为例,建立起的血缘树如图3所示。从图3中可以看出,血缘树能够体现出SQL语句中源数据表table_01、table_02和table_03至目的数据表db.table的网络关系。
步骤S105:根据多条SQL语句对应的血缘树确定数据库中的数据内生血缘关系。
在该步骤中,将多条SQL语句对应的血缘树中体现出的源数据表和目的数据表之间的网络关系综合,即可得到数据库中的数据内生血缘关系。
在该实施例提供的数据内生血缘关系的分析方法中,分析数据库中各数据表的数据内生血缘关系时,通过数据库的SQL日志得到SQL语句,对SQL语句进行语法解析,得到抽象语法树对象,然后根据语法结构确定语法叶子节点对应的信息,将语法叶子节点对应的信息作为血缘树中的节点,建立SQL语句对应的血缘树,最后根据多条SQL语句对应的血缘树确定数据库中的数据内生血缘关系,提供了一种在大数据场景下有效、便捷的数据内生血缘关系的分析方法。
可选地,在一种实施例中,将语法叶子节点对应的信息作为血缘树中的节点,建立SQL语句对应的血缘树的步骤包括:按照由语法叶子节点到语法根节点的顺序,将语法叶子节点对应的信息存储至节点存储栈,其中,节点存储栈的出栈逻辑为先进先出;获取节点存储栈中的对象建立SQL语句对应的血缘树。
具体地,在该实施例中,建立SQL语句对应的血缘树时,先将语法叶子节点对应的信息存储至节点存储栈,然后再根据节点存储栈中的对象建立血缘树,其中,在存储语法叶子节点对应信息至节点存储栈时,按照语法叶子节点到语法根节点的顺序进行存储,保存了由边缘节点至根节点顺序下各语法叶子节点的层级关系,设置节点存储栈的出栈逻辑为先进先出,根据节点存储栈中的对象建立血缘树,顺序获取到的节点存储栈的对象之间,仍然继承了由边缘节点至根节点顺序下各语法叶子节点的层级关系。
仍然以图2所示的抽象语法树对象为例,将语法叶子节点对应的信息存储至节点存储栈后,节点存储栈如图4所示。
因此,采用该实施例提供的数据内生血缘关系的分析方法,通过节点存储栈存储语法叶子节点对应的信息,通过节点存储栈使得语法叶子节点对应的信息继承了语法叶子节点在抽象语法树对象中的层级关系,从而只需按顺序获取节点存储栈的对象,即可快速准确的建立血缘树。
可选地,在一种实施例中,血缘树包括表征标识信息的中间节点、表征第一表达式或第二表达式的端节点,根据多条SQL语句对应的血缘树确定数据库中的数据内生血缘关系的步骤包括:获取血缘树中两个端节点之间的路径,得到血缘路径;存储血缘路径的路径信息至血缘数据库,其中,路径信息包括所两个端节点、两个端节点之间的数据流向和两个端节点之间在血缘路径上的中间节点;显示血缘数据库中多条路径信息,以得到血缘图。
具体地,在该实施例提供的数据内生血缘关系的分析方法中,对血缘进一步简化,仅将两个端节点之间路径的路径信息至血缘数据库,将血缘树的中间节点省略,既保留了数据库中不同数据表之间的数据关系,又减少来了血缘数据库中的数据量,同时,显示血缘数据库中的多条路径信息,即可得到血缘图,通过该血缘图图示化的显示出数据库中各数据表之间的血缘关系。
可选地,在一种实施例中,显示血缘数据库中多条路径信息,以得到血缘图的步骤包括:将路径信息中的两个端节点映射为血缘图中的第一点和第二点,其中,路径信息的一个端节点中的表名映射为第一点的标注,路径信息的另一个端节点中的表名映射为第二点的标注;将路径信息中的两个端节点之间的数据流向映射为第一点和第二点之间的有向边;以及将路径信息中的中间节点映射为有向边的标注。
具体地,在该实施例提供的数据内生血缘关系的分析方法中,血缘图中的点表征数据库中的数据表,血缘图中的有向边表征两个数据表的数据流向,将路径信息的中间节点作为有向边的标注,实现了一条路径信息的图示化显示。
可选地,在一种实施例中,不同路径信息中具有相同表名的端节点映射为血缘图中的同一点。以将不同路径信息对应的图示化进行合并,进而有助于生成简洁完整的血缘图,通过血缘图的方式来表现数据库的数据内生血缘关系,可以更加直观的表现数据的来源与去向,构建更形象的子父继承关系,降低分析的时间成本,易用性更高。
可选地,在一种实施例中,在获取数据库的SQL日志的步骤之后,对SQL语句进行语法解析,得到抽象语法树对象的步骤之前,数据内生血缘关系的分析方法还包括:将多条SQL语句存储至消息缓存队列;其中,对SQL语句进行语法解析,得到抽象语法树对象的步骤包括:获取消息缓存队列中的消息进行语法解析,得到抽象语法树对象。
具体地,将多条SQL语句存储至消息缓存队列,在对SQL语句进行语法解析时,获取消息缓存队列中的对象进行解析,实现了SQL语句的缓存,降低后续对SQL语句进行语法解析的压力。可选地,消息缓存队列可采用Kafka实现,从而利用Kafka高吞吐低延迟的特性,使其在高峰时期降低对SQL语句进行语法解析的压力。
实施例二
对应于上述实施例一,本发明实施例二提供了一种数据内生血缘关系的分析装置,相关的技术特征和对应的技术效果可参考上述实施例一的相关描述,该处不再赘述。图5为本发明实施例二提供的数据内生血缘关系的分析装置的框图,如图5所示,该装置包括:获取模块201、解析模块202、第一确定模块203、处理模块204和第二确定模块205。
其中,获取模块201用于获取数据库的SQL日志,其中,数据库包括多个数据表,数据表包括若干字段,SQL日志包括多条SQL语句;解析模块202用于对SQL语句进行语法解析,得到抽象语法树对象,其中,抽象语法树对象包括语法根节点和多个语法叶子节点,语法根节点为SQL语句,语法叶子节点为SQL语句中的语法结构;第一确定模块203用于确定语法叶子节点对应的信息,其中,当语法结构的语法包括操作时,语法叶子节点对应的信息包括操作的标识信息,当语法结构表征目的字段时,语法叶子节点对应的信息包括第一表达式,第一表达式包括目的字段的字段名和目的字段所在数据表的表名,当语法结构表征源字段时,语法叶子节点对应的信息包括第二表达式,第二表达式包括源字段的字段名和源字段所在的数据表的表名;处理模块204用于将语法叶子节点对应的信息作为血缘树中的节点,建立SQL语句对应的血缘树;第二确定模块205用于根据多条SQL语句对应的血缘树确定数据库中的数据内生血缘关系。
可选地,在一种实施例中,处理模块204包括:第一存储单元和建立单元,其中,存储单元用于按照由语法叶子节点到语法根节点的顺序,将语法叶子节点对应的信息存储至节点存储栈,其中,节点存储栈的出栈逻辑为先进先出;建立单元用于获取节点存储栈中的对象建立SQL语句对应的血缘树。
可选地,在一种实施例中,血缘树包括表征标识信息的中间节点、表征第一表达式或第二表达式的端节点,第二确定模块205包括:获取单元、第二存储单元和显示单元,其中,获取单元用于获取血缘树中两个端节点之间的路径,得到血缘路径;第二存储单元用于存储血缘路径的路径信息至血缘数据库,其中,路径信息包括所两个端节点、两个端节点之间的数据流向和两个端节点之间在血缘路径上的中间节点;显示单元用于显示血缘数据库中多条路径信息,以得到血缘图。
可选地,在一种实施例中,显示单元在显示血缘数据库中多条路径信息,以得到血缘图时,具体执行的步骤包括:将路径信息中的两个端节点映射为血缘图中的第一点和第二点,其中,路径信息的一个端节点中的表名映射为第一点的标注,路径信息的另一个端节点中的表名映射为第二点的标注;将路径信息中的两个端节点之间的数据流向映射为第一点和第二点之间的有向边;以及将路径信息中的中间节点映射为有向边的标注。
可选地,在一种实施例中,不同路径信息中具有相同表名的端节点映射为血缘图中的同一点。
可选地,在一种实施例中,数据内生血缘关系的分析装置还包括:缓存模块,用于在获取模块201获取数据库的SQL日志之后,解析模块202对SQL语句进行语法解析,得到抽象语法树对象之前,将多条SQL语句存储至消息缓存队列;其中,解析模块202在对SQL语句进行语法解析,得到抽象语法树对象时,具体执行的步骤包括:获取消息缓存队列中的消息进行语法解析,得到抽象语法树对象。
可选地,在一种实施例中,获取模块201在获取数据库的SQL日志时,具体执行的步骤包括:通过flume组件监控和收集数据库的SQL日志。
实施例三
本实施例三还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图6所示,本实施例的计算机设备01至少包括但不限于:可通过系统总线相互通信连接的存储器011、处理器012,如图6所示。需要指出的是,图6仅示出了具有组件存储器011和处理器012的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器011(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器011可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器011也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器011还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器011通常用于存储安装于计算机设备01的操作系统和各类应用软件,例如实施例二的数据内生血缘关系的分析装置的程序代码等。此外,存储器011还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器012在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器012通常用于控制计算机设备01的总体操作。本实施例中,处理器012用于运行存储器011中存储的程序代码或者处理数据,例如数据内生血缘关系的分析方法等。
实施例四
本实施例四还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储数据内生血缘关系的分析方装置,被处理器执行时实现实施例一的数据内生血缘关系的分析方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种数据内生血缘关系的分析方法,其特征在于,包括:
获取数据库的SQL日志,其中,所述数据库包括多个数据表,所述数据表包括若干字段,所述SQL日志包括多条SQL语句;
对所述SQL语句进行语法解析,得到抽象语法树对象,其中,所述抽象语法树对象包括语法根节点和多个语法叶子节点,所述语法根节点为所述SQL语句,所述语法叶子节点为所述SQL语句中的语法结构;
确定所述语法叶子节点对应的信息,其中,当所述语法结构的语法包括操作时,所述语法叶子节点对应的信息包括所述操作的标识信息,当所述语法结构表征目的字段时,所述语法叶子节点对应的信息包括第一表达式,所述第一表达式包括所述目的字段的字段名和所述目的字段所在数据表的表名,当所述语法结构表征源字段时,所述语法叶子节点对应的信息包括第二表达式,所述第二表达式包括所述源字段的字段名和所述源字段所在的数据表的表名;
将所述语法叶子节点对应的信息作为血缘树中的节点,建立所述SQL语句对应的血缘树;
根据多条所述SQL语句对应的血缘树确定所述数据库中的数据内生血缘关系。
2.根据权利要求1所述的数据内生血缘关系的分析方法,其特征在于,将所述语法叶子节点对应的信息作为血缘树中的节点,建立所述SQL语句对应的血缘树的步骤包括:
按照由所述语法叶子节点到所述语法根节点的顺序,将所述语法叶子节点对应的信息存储至节点存储栈,其中,所述节点存储栈的出栈逻辑为先进先出;
获取所述节点存储栈中的对象建立所述SQL语句对应的血缘树。
3.根据权利要求1所述的数据内生血缘关系的分析方法,其特征在于,所述血缘树包括表征所述标识信息的中间节点、表征所述第一表达式或所述第二表达式的端节点,根据多条所述SQL语句对应的血缘树确定所述数据库中的数据内生血缘关系的步骤包括:
获取所述血缘树中两个所述端节点之间的路径,得到血缘路径;
存储所述血缘路径的路径信息至血缘数据库,其中,所述路径信息包括所所述两个端节点、所述两个端节点之间的数据流向和所述两个端节点之间在所述血缘路径上的中间节点;
显示所述血缘数据库中多条所述路径信息,以得到血缘图。
4.根据权利要求3所述的数据内生血缘关系的分析方法,其特征在于,显示所述血缘数据库中多条所述路径信息,以得到血缘图的步骤包括:
将所述路径信息中的两个端节点映射为所述血缘图中的第一点和第二点,其中,所述路径信息的一个端节点中的表名映射为所述第一点的标注,所述路径信息的另一个端节点中的表名映射为所述第二点的标注;
将所述路径信息中的两个端节点之间的数据流向映射为所述第一点和所述第二点之间的有向边;以及
将所述路径信息中的中间节点映射为所述有向边的标注。
5.根据权利要求4所述的数据内生血缘关系的分析方法,其特征在于,不同所述路径信息中具有相同表名的端节点映射为所述血缘图中的同一点。
6.根据权利要求1所述的数据内生血缘关系的分析方法,其特征在于,在获取数据库的SQL日志的步骤之后,对所述SQL语句进行语法解析,得到抽象语法树对象的步骤之前,所述数据内生血缘关系的分析方法还包括:
将多条所述SQL语句存储至消息缓存队列;
其中,对所述SQL语句进行语法解析,得到抽象语法树对象的步骤包括:获取所述消息缓存队列中的消息进行语法解析,得到抽象语法树对象。
7.根据权利要求1所述的数据内生血缘关系的分析方法,其特征在于,获取数据库的SQL日志的步骤包括:
通过flume组件监控和收集数据库的SQL日志。
8.一种数据内生血缘关系的分析装置,其特征在于,包括:
获取模块,用于获取数据库的SQL日志,其中,所述数据库包括多个数据表,所述数据表包括若干字段,所述SQL日志包括多条SQL语句;
解析模块,用于对所述SQL语句进行语法解析,得到抽象语法树对象,其中,所述抽象语法树对象包括语法根节点和多个语法叶子节点,所述语法根节点为所述SQL语句,所述语法叶子节点为所述SQL语句中的语法结构;
第一确定模块,用于确定所述语法叶子节点对应的信息,其中,当所述语法结构的语法包括操作时,所述语法叶子节点对应的信息包括所述操作的标识信息,当所述语法结构表征目的字段时,所述语法叶子节点对应的信息包括第一表达式,所述第一表达式包括所述目的字段的字段名和所述目的字段所在数据表的表名,当所述语法结构表征源字段时,所述语法叶子节点对应的信息包括第二表达式,所述第二表达式包括所述源字段的字段名和所述源字段所在的数据表的表名;
处理模块,用于将所述语法叶子节点对应的信息作为血缘树中的节点,建立所述SQL语句对应的血缘树;
第二确定模块,用于根据多条所述SQL语句对应的血缘树确定所述数据库中的数据内生血缘关系。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
CN201911418176.8A 2019-12-31 2019-12-31 数据内生血缘关系的分析方法、装置和计算机设备 Active CN113127478B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911418176.8A CN113127478B (zh) 2019-12-31 2019-12-31 数据内生血缘关系的分析方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911418176.8A CN113127478B (zh) 2019-12-31 2019-12-31 数据内生血缘关系的分析方法、装置和计算机设备

Publications (2)

Publication Number Publication Date
CN113127478A true CN113127478A (zh) 2021-07-16
CN113127478B CN113127478B (zh) 2024-06-18

Family

ID=76769197

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911418176.8A Active CN113127478B (zh) 2019-12-31 2019-12-31 数据内生血缘关系的分析方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN113127478B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114090558A (zh) * 2021-11-10 2022-02-25 支付宝(杭州)信息技术有限公司 针对数据库的数据质量管理方法和装置
CN114168600A (zh) * 2021-12-18 2022-03-11 杭州玳数科技有限公司 Sql语句血缘关系的解析方法和系统
CN114265945A (zh) * 2021-12-30 2022-04-01 多点生活(武汉)科技有限公司 血缘关系提取方法、装置及电子设备
CN114676678A (zh) * 2022-04-08 2022-06-28 北京百度网讯科技有限公司 结构化查询语言数据的解析方法、装置和电子设备
CN115080599A (zh) * 2022-07-25 2022-09-20 成都烽顺科技有限公司 一种数据库查询sql字段血缘关系生成方法
CN116595038A (zh) * 2023-07-17 2023-08-15 恒丰银行股份有限公司 一种数据血缘追溯方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140181073A1 (en) * 2012-12-20 2014-06-26 Business Objects Software Ltd. Method and system for generating optimal membership-check queries
CN107463555A (zh) * 2016-06-01 2017-12-12 北京京东尚科信息技术有限公司 删除中间层数据的方法、系统和装置
CN109325078A (zh) * 2018-09-18 2019-02-12 拉扎斯网络科技(上海)有限公司 基于结构数据的数据血缘确定方法及装置
CN110532280A (zh) * 2019-07-18 2019-12-03 阿里巴巴集团控股有限公司 Sql语句可视化方法以及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140181073A1 (en) * 2012-12-20 2014-06-26 Business Objects Software Ltd. Method and system for generating optimal membership-check queries
CN107463555A (zh) * 2016-06-01 2017-12-12 北京京东尚科信息技术有限公司 删除中间层数据的方法、系统和装置
CN109325078A (zh) * 2018-09-18 2019-02-12 拉扎斯网络科技(上海)有限公司 基于结构数据的数据血缘确定方法及装置
CN110532280A (zh) * 2019-07-18 2019-12-03 阿里巴巴集团控股有限公司 Sql语句可视化方法以及装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114090558A (zh) * 2021-11-10 2022-02-25 支付宝(杭州)信息技术有限公司 针对数据库的数据质量管理方法和装置
CN114168600A (zh) * 2021-12-18 2022-03-11 杭州玳数科技有限公司 Sql语句血缘关系的解析方法和系统
CN114265945A (zh) * 2021-12-30 2022-04-01 多点生活(武汉)科技有限公司 血缘关系提取方法、装置及电子设备
CN114676678A (zh) * 2022-04-08 2022-06-28 北京百度网讯科技有限公司 结构化查询语言数据的解析方法、装置和电子设备
CN114676678B (zh) * 2022-04-08 2023-10-27 北京百度网讯科技有限公司 结构化查询语言数据的解析方法、装置和电子设备
CN115080599A (zh) * 2022-07-25 2022-09-20 成都烽顺科技有限公司 一种数据库查询sql字段血缘关系生成方法
CN115080599B (zh) * 2022-07-25 2022-11-25 成都烽顺科技有限公司 一种数据库查询sql字段血缘关系生成方法
CN116595038A (zh) * 2023-07-17 2023-08-15 恒丰银行股份有限公司 一种数据血缘追溯方法、装置、设备及介质

Also Published As

Publication number Publication date
CN113127478B (zh) 2024-06-18

Similar Documents

Publication Publication Date Title
CN113127478A (zh) 数据内生血缘关系的分析方法、装置和计算机设备
US11074284B2 (en) Cognitive summarization and retrieval of archived communications
US11650970B2 (en) Extracting structure and semantics from tabular data
US10169471B2 (en) Generating and executing query language statements from natural language
US10409892B2 (en) Formatting data by example
US20130275438A1 (en) Disambiguating authors in social media communications
US20120016805A1 (en) Generating Machine-Understandable Representations of Content
US7370060B2 (en) System and method for user edit merging with preservation of unrepresented data
US11487801B2 (en) Dynamic data visualization from factual statements in text
CN113010542A (zh) 业务数据处理方法、装置、计算机设备及存储介质
CN113962597A (zh) 一种数据分析方法、装置、电子设备及存储介质
US8131728B2 (en) Processing large sized relationship-specifying markup language documents
US11762911B2 (en) Utilizing search capabilities for configuring input parameters of a workflow engine
CN114371832A (zh) 基于语义分析的业务代码生成方法、装置和存储介质
US20100242027A1 (en) Identifying groups and subgroups
US20210271654A1 (en) Contrasting Document-Embedded Structured Data and Generating Summaries Thereof
US9201937B2 (en) Rapid provisioning of information for business analytics
CN113722550B (zh) 一种关系图谱的实现方法、装置、电子设备及存储介质
CN114968725A (zh) 任务依赖关系校正方法、装置、计算机设备及存储介质
US20200192784A1 (en) Estimating the number of coding styles by analyzing source code
CN114168119A (zh) 代码文件编辑方法、装置、电子设备以及存储介质
US10387554B1 (en) Applying matching data transformation information based on a user's editing of data within a document
US9208145B2 (en) Computer-implemented systems and methods for non-monotonic recognition of phrasal terms
US20220138408A1 (en) Flexible pseudo-parsing of dense semi-structured text
CN117370339A (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
CB02 Change of applicant information

Country or region after: China

Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant after: QAX Technology Group Inc.

Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd.

Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant before: QAX Technology Group Inc.

Country or region before: China

Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant