CN110232056B - 一种结构化查询语言的血缘解析方法及其工具 - Google Patents

一种结构化查询语言的血缘解析方法及其工具 Download PDF

Info

Publication number
CN110232056B
CN110232056B CN201910423289.0A CN201910423289A CN110232056B CN 110232056 B CN110232056 B CN 110232056B CN 201910423289 A CN201910423289 A CN 201910423289A CN 110232056 B CN110232056 B CN 110232056B
Authority
CN
China
Prior art keywords
structured query
data
blood
query language
blood relationship
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.)
Active
Application number
CN201910423289.0A
Other languages
English (en)
Other versions
CN110232056A (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.)
SuningCom Co ltd
Original Assignee
Suning Cloud Computing 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 Suning Cloud Computing Co Ltd filed Critical Suning Cloud Computing Co Ltd
Priority to CN201910423289.0A priority Critical patent/CN110232056B/zh
Publication of CN110232056A publication Critical patent/CN110232056A/zh
Application granted granted Critical
Publication of CN110232056B publication Critical patent/CN110232056B/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/21Design, administration or maintenance of databases
    • 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/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Automatic Analysis And Handling Materials Therefor (AREA)

Abstract

本申请实施例公开了一种结构化查询语言的血缘解析方法及其工具,所述血缘解析方法包括:提取若干不同类型数据库的业务系统,将业务系统的结构化查询语言持续性地批量导入消息队列表中;在消息队列表中包含有静态参数和动态参数的结构化查询语言分别预处理,将预处理后的结构化查询语言进行语法校对,生成匹配所述不同类型数据库的结构化查询语言的抽象语法树,对抽象语法树进行遍历,获取结构化查询语言的血缘关系;获取血缘关系的血缘脉络和关键血缘数据并最终形成血缘图谱,最终完成对业务系统的分析与预测。本申请实施例可以批量和持续性解析多种类型数据库动、静态的结构化查询语言,完成业务系统的数据溯源与预测,且解析结果精准。

Description

一种结构化查询语言的血缘解析方法及其工具
技术领域
本发明涉及数据的溯源和预测领域,具体涉及一种结构化查询语言的血缘解析方法及其工具。
背景技术
目前,通过各个行业对于大数据的关注度都较高,对于大数据的研究也进一步的深化,在对数据中结构化查询语言的血缘解析也是一个重要的方向。
然而,传统的结构化查询语言的血缘解析中存在许多的不足,例如结构化查询语言的血缘解析设计的语法规则只适用于某一类型数据库,支持的数据库类型单一,如若引入其它类型数据库需设计出所适用的语法规则,还要考虑各类结构化查询语言语法的兼容性问题,投入研究成本高,因此现有的结构化查询语言解析技术较为单一,扩展性差;而且,现有的结构化查询语言解析技术只针对单结构化查询语言进行解析,无法进行批处理,持续性差,当前的结构化查询语言解析需要人工输入一条或几条结构化查询语言作为解析的数据源,通过解析器进行解析,输出结果,解析结束,除人工手动添加结构化查询语言之外缺乏后续的解析动力,无法对大量结构化查询语言进行持续性的自动化解析;进一步的,现有的结构化查询语言解析技术只适用解析静态结构化查询语言,不支持动态结构化查询语言的解析,如果结构化查询语言中包含动态参数,现有的解析技术会在结构化查询语言校验阶段报出语法错误以致解析终止,或是在结构化查询语言去杂质阶段把动态参数用解析器能够识别的字符替换,这样虽然能够正常解析结构化查询语言,但会导致解析结果失真。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种结构化查询语言的血缘解析方法及其工具。可以批量和持续性解析多种不同类型数据库动、静态的结构化查询语言,所述血缘解析方法和工具不仅扩展性强,且解析结果精准。
为解决上述技术问题,本发明采用的技术方案是:
第一方面,提供了一种结构化查询语言的血缘解析方法,所述血缘解析方法包括:
提取若干不同类型数据库的业务系统,将所述业务系统的结构化查询语言持续性地批量导入消息队列表中;
对所述消息队列表中包含有静态参数和动态参数的所述结构化查询语言分别预处理,若所述结构化查询语言中仅涉及静态参数则进行标准化格式操作,若所述结构化查询语言中涉及动态参数则进行事先处理;
将预处理后的所述结构化查询语言进行语法校对,使得所述结构化查询语言符合所述不同类型数据库的标准语法支持;
生成匹配所述不同类型数据库的所述结构化查询语言的抽象语法树,对所述抽象语法树进行遍历,获取所述结构化查询语言的血缘关系;
对所述业务系统的所述血缘关系进行信息的提取,获取所述血缘关系的血缘脉络和关键血缘数据并最终形成血缘图谱,将所述血缘图谱存储于图数据库中,通过所述图数据库完成对所述业务系统的分析与预测。
进一步地,所述不同类型数据库包括Hive数据仓库和关系型数据库,所述关系型数据库包括主流的MySQL数据库、Oracle数据库、DB2数据库。
进一步地,所述标准化格式操作包括:将任一所述结构化查询语言中的空白字符替换为单个空格,以及将结构化查询语言统一为大写字母或者小写字母。
进一步地,所述事先处理包括:设置自定义的语法模块实现对所述动态参数的识别和解析,对所述动态参数进行整体替换成真实的静态参数,完成对所述动态参数的模糊处理。
进一步地,所述语法校对包括对所述结构化查询语言中特殊字符、保留字的检查。
进一步地,所述抽象语法树的生成是基于antlr和druid的开源语法分析器;对所述抽象语法树的遍历包括:依次获取所述结构化查询语言中库名、表名、字段名以及表和字段描述的元数据信息,将所述元数据信息作为生成表和表、字段和字段、表和表实例、字段和字段实例之间血缘关系的源信息,并获取所述源信息之间的血缘映射关系。
进一步地,所述血缘映射关系包括所述表的父表与子表的映射对,所述字段的父字段与子字段的映射对,所述表实例或字段实例的父实例与子实例的映射对。
进一步地,对所述业务系统的分析和预测能够针对所述关键血缘数据中任一节点信息的精准定位,任一血缘链路的血缘查询,任一全局血缘的视图总览。
进一步地,所述业务系统的分析和预测包括但不限于:对所述关键血缘数据中表结构变化或者删除后做出及时告警;对所述关键血缘数据中上下游信息进行特殊分析,往上定位具体问题,往下做影响评估;对所述关键血缘数据的报表中异常数据的追踪,分析并确定所述异常数据的问题所在,定位具体的错误点;对所述关键血缘数据中某些数据做清洗脱敏工作时,根据血缘关系信息找到整个血缘链路,进而评估脱敏后的风险和制定计划需要的周期。
另一方面,提供了一种结构化查询语言的血缘解析工具,所述血缘解析工具包括:
数据源提取系统,用于提取若干不同类型数据库的业务系统,将所述业务系统的结构化查询语言持续性地批量导入消息队列表中;
数据预处理系统,用于将所述消息队列表中包含有静态参数和动态参数的所述结构化查询语言分别预处理,若所述结构化查询语言中仅涉及静态参数则进行标准化格式操作,若所述结构化查询语言中涉及动态参数则进行事先处理;
数据语法校对系统,用于将预处理后的所述结构化查询语言进行语法校对,使得所述结构化查询语言符合所述不同类型数据库的标准语法支持;
血缘关系获取系统,用于生成匹配所述不同类型数据库的所述结构化查询语言的抽象语法树,对所述抽象语法树进行遍历,获取所述结构化查询语言的血缘关系;
血缘数据分析系统,用于对所述业务系统的所述血缘关系进行信息的提取,获取所述血缘关系的血缘脉络和关键血缘数据并最终形成血缘图谱,将所述血缘图谱存储于图数据库中,通过所述图数据库完成对所述业务系统的分析与预测。
进一步地,所述数据源提取系统包括Hive数据仓库和关系型数据库,所述关系型数据库包括主流的MySQL数据库、Oracle数据库、DB2数据库。
进一步地,所述数据预处理系统包括事先处理单元,用于设置自定义的语法模块实现对所述动态参数的识别和解析,将所述动态参数进行整体替换成真实的静态参数,完成对所述动态参数的模糊处理。
进一步地,所述血缘关系获取系统包括基于antlr和druid的开源语法分析器,用于所述抽象语法树的生成,并依次获取所述结构化查询语言中库名、表名、字段名以及表和字段描述的元数据信息,将所述元数据信息作为生成表和表、字段和字段、表和表实例、字段和字段实例之间血缘关系的源信息,并获取所述源信息之间的血缘映射关系。
进一步地,所述血缘数据分析系统包括业务系统单元,用于对所述业务系统分析和预测,并能够针对所述关键血缘数据中任一节点信息的精准定位,任一血缘链路的血缘查询,任一全局血缘的视图总览。
进一步地,所述业务系统单元对业务系统的分析和预测包括但不限于:对所述关键血缘数据中表结构变化或者删除后做出及时告警;对所述关键血缘数据中上下游信息进行特殊分析,往上定位具体问题,往下做影响评估;对所述关键血缘数据的报表中异常数据的追踪,分析并确定所述异常数据的问题所在,定位具体的错误点;对所述关键血缘数据中某些数据做清洗脱敏工作时,根据血缘关系信息找到整个血缘链路,进而评估脱敏后的风险和制定计划需要的周期。
本发明实施例提供的技术方案带来的有益效果是:
1、本发明实施例中对不同类型的结构化查询语言持续性地批量导入消息队列表中,一方面可以将血缘解析的数据库类型显著提高,能够适应目前多种主流的数据库,因此,本发明实施例适用的语法规则广,扩展性强。另一方面通过消息列表,依赖消息队列能够大批量、持续性的解析结构化查询语言。
2、本发明实施例中通过标准化格式操作和事先处理,再获取血缘关系的血缘脉络和关键血缘数据并最终形成血缘图谱,使得对结构化查询语言的解析不仅可以支持静态的数据源,同时可以匹配动态的数据源,因此,对结构化查询语言的解析更加广泛,解析结果更加准确。
3、本发明实施例中通过对结构化查询语言的血缘解析以及对所述业务系统的分析与预测,能够对关键血缘数据各种场景中出现的不同情况进行告警、跟踪、定位具体问题和风险评估,进而有效的对数据溯源与数据预测。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的结构化查询语言的血缘解析方法的流程示意图;
图2是本发明实施例提供的结构化查询语言的血缘解析方法中对于SQL语句预处理的流程示意图;
图3是本发明实施例提供的结构化查询语言的血缘解析方法中获取SQL语句血缘关系的流程示意图;
图4是本发明实施例提供的对于结构化查询语言在解析过程中数据流转示意图;
图5是本发明实施例提供的结构化查询语言的血缘解析工具的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中,结构化查询语言(Structured Query Language,简称SQL),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
实施例一:
如图1所示,本发明实施例提供了一种结构化查询语言的血缘解析方法,所述血缘解析方法包括:
S1:提取若干不同类型数据库的业务系统,将所述业务系统的结构化查询语言持续性地批量导入消息队列表中;
优选地,所述不同类型数据库包括Hive数据仓库和关系型数据库,所述关系型数据库包括主流的MySQL数据库、Oracle数据库、DB2数据库。相比于目前对语言的血缘解析而言,本发明实施例可以同时批量解析出多种数据库的SQL,其中,由于本发明实施例中对于多种不同SQL的解析队列,因此,可以针对多种SQL批量自动解析,显著提高了本发明实施例中对于SQL的解析速度和广度。
S2:对所述消息队列表中包含有静态参数和动态参数的所述结构化查询语言分别预处理,若所述结构化查询语言中仅涉及静态参数则进行标准化格式操作,若所述结构化查询语言中涉及动态参数则进行事先处理。优选地,所述标准化格式操作包括:将任一所述结构化查询语言中的空白字符替换为单个空格,以及将结构化查询语言统一为大写字母或者小写字母。
具体而言,由于SQL语句的书写形式多种多样,例如包括:单行、多行、单空格间隔、多空格间隔、大写、小写等,因此需要消除SQL语句前后的空白,将其中的连续空白字符替换成单个空格,包括对空格,TAB和回车换行等的替换,并将SQL语句统一转化成小写(或大写);还需要对包含动态参数的SQL语句进行事先处理操作,对SQL语句进行动态参数格式的字符匹配如”${var}”、”${key:value}”,预先对此类形式的字符进行整体替换,以确保支持动态SQL的解析以及解析结果尽量准确。如图2所示,对于SQL预处理包括以下具体步骤:
S201:开始对SQL语句进行预处理;
S202:判断SQL语句中是否有动态参数;
S203:若存在动态参数,对动态参数进行整体替换成真实的静态参数,完成对动态参数的模糊处理;
S204:若不存在动态参数,或者替换完了动态参数,则将SQL语句中的所以空白字符替换为单个空格,并将SQL语句字母大小写进行统一。
S3:将预处理后的所述结构化查询语言进行语法校对,使得所述结构化查询语言符合所述不同类型数据库的标准语法支持。具体的,SQL语法检查是在完成SQL预处理的基础上,对SQL语句基于语法的再一次校对,通过各类数据库标准语法对SQL解析的语法支持,检查SQL中是否含有不符合语法规范的因素,如语法解析不支持的特殊字符例如字符:!@#$...”、SQL中表名和字段名等命名中存在保留字等,确保SQL不会因语法错误而解析失败。
S4:如图3所示,对于获取SQL语句血缘关系的流程。具体的,生成匹配所述不同类型数据库的所述结构化查询语言的抽象语法树,对所述抽象语法树进行遍历,获取所述结构化查询语言的血缘关系;优选地,所述抽象语法树的生成是基于antlr和druid的开源语法分析器;对所述抽象语法树的遍历包括:依次获取所述结构化查询语言中库名、表名、字段名以及表和字段描述的元数据信息,将所述元数据信息作为生成表和表、字段和字段、表和表实例、字段和字段实例之间血缘关系的源信息,并获取所述源信息之间的血缘映射关系。进一步地,所述血缘映射关系包括所述表的父表与子表的映射对,所述字段的父字段与子字段的映射对,所述表实例或字段实例的父实例与子实例的映射对。
S5:对所述业务系统的所述血缘关系进行信息的提取,获取所述血缘关系的血缘脉络和关键血缘数据并最终形成血缘图谱,将所述血缘图谱存储于图数据库中,通过所述图数据库完成对所述业务系统的分析与预测。进一步地,以表节点、字段节点、实例节点的形式散落部署于图数据库中,节点与节点之间由各类血缘关系形成边,针对不同业务需求,对所述业务系统的分析和预测能够针对所述关键血缘数据中任一节点信息的精准定位,任一血缘链路的血缘查询,任一全局血缘的视图总览,通过对此类血缘信息的分析,助于理清表、字段与实例的血缘脉络,对数据进行溯源分析。
如图4所示提供的对于结构化查询语言在解析过程中数据流转示意图,可以看出对于SQL血缘解析的过程,优选地,所述业务系统的分析和预测包括但不限于以下四个方面:
业务场景一:对所述关键血缘数据中表结构变化或者删除后做出及时告警;具体的:用户无论是命令方式还是平台上的可视化方式,当对表结构做出修改时,均会实时感知到,再对关键点结构的变化做出相应的分析,例如字段减少或增加,字段位置发生变化,通过已关联的字段和任务,字段和表,表和任务之间的血缘关系,对引用到该表的任务中所配置的告警人员,申请了该表权限的人员或者所在系统管理员做出及时告警,避免较大事故的发生。
业务场景二:对所述关键血缘数据中上下游信息进行特殊分析,往上定位具体问题,往下做影响评估;具体的,当任务运行失败时,可根据血缘信息对任务的上下游进行特殊分析,往上追述任务并逐个分析问题,直到定位具体问题,往下做影响评估,查看当前任务的失败可能会影响哪些任务,又可能会造成何种程度的损失并给出评估报告。
业务场景三:对所述关键血缘数据的报表中异常数据的追踪,分析并确定所述异常数据的问题所在,定位具体的错误点;具体的,在生成报表的时候,若发现报表中可能存在异常数据,可根据报表追述到具体的上游字段和表,再逐一分析它们之间的关系和运算规则从而确定问题所在,定位具体的错误点,保障数据的可靠性和可延续性。
业务场景四:对所述关键血缘数据中某些数据做清洗脱敏工作时,根据血缘关系信息找到整个血缘链路,进而评估脱敏后的风险和制定计划需要的周期。具体的,若需要对某些数据做清洗脱敏工作时,可根据血缘关联信息清楚的找到整个链路,进而评估脱敏后的风险和制定计划需要的周期。但当发现未脱敏的数据已经被外泄时,可依据血缘关系信息从而快速的找到目前数据已经流转到了哪里,需要做怎样的紧急处理,最大程度的降低安全风险,避免更严重事故的发生。
实施例二:
如图5所示,本发明实施例提供了一种结构化查询语言的血缘解析工具,所述血缘解析工具包括:
数据源提取系统101,用于提取若干不同类型数据库的业务系统,将所述业务系统的结构化查询语言持续性地批量导入消息队列表中;
数据预处理系统102,用于将所述消息队列表中包含有静态参数和动态参数的所述结构化查询语言分别预处理,若所述结构化查询语言中仅涉及静态参数则进行标准化格式操作,若所述结构化查询语言中涉及动态参数则进行事先处理;
数据语法校对系统103,用于将预处理后的所述结构化查询语言进行语法校对,使得所述结构化查询语言符合所述不同类型数据库的标准语法支持;
血缘关系获取系统104,用于生成匹配所述不同类型数据库的所述结构化查询语言的抽象语法树,对所述抽象语法树进行遍历,获取所述结构化查询语言的血缘关系;
血缘数据分析系统105,用于对所述业务系统的所述血缘关系进行信息的提取,获取所述血缘关系的血缘脉络和关键血缘数据并最终形成血缘图谱,将所述血缘图谱存储于图数据库中,通过所述图数据库完成对所述业务系统的分析与预测。
优选地,所述数据源提取系统101包括Hive数据仓库和关系型数据库,所述关系型数据库包括主流的MySQL数据库、Oracle数据库、DB2数据库。因此所述血缘解析工具能够解析多种不同类型的SQL语句,所述血缘解析工具适用的语法规则广,扩展性强。另一方面通过消息列表,依赖消息队列能够大批量、持续性的解析结构化查询语言。
优选地,所述数据预处理系统102包括事先处理单元,用于设置自定义的语法模块实现对所述动态参数的识别和解析,将所述动态参数进行整体替换成真实的静态参数,完成对所述动态参数的模糊处理。既实施例所述的血缘解析工具,不仅可以支持静态的数据源,同时可以匹配动态的数据源,因此,对结构化查询语言的解析更加广泛,解析结果更加准确。
优选地,所述血缘解析工具中所述血缘关系的获取系统104包括基于antlr和druid的开源语法分析器,用于所述抽象语法树的生成,并依次获取所述结构化查询语言中库名、表名、字段名以及表和字段描述的元数据信息,将所述元数据信息作为生成表和表、字段和字段、表和表实例、字段和字段实例之间血缘关系的源信息,并获取所述源信息之间的血缘映射关系。
优选地,所述血缘数据分析系统105包括业务系统单元,用于对所述业务系统分析和预测,并能够针对所述关键血缘数据中任一节点信息的精准定位,任一血缘链路的血缘查询,任一全局血缘的视图总览。
在实际从操作过程中,所述血缘解析工具能够对关键血缘数据各种场景中出现的不同情况进行告警、跟踪、定位具体问题和风险评估,进而有效的对数据溯源与数据预测。所述血缘解析工具对于业务系统的分析和预测包括但不限于以下四个方面:
业务场景一:对所述关键血缘数据中表结构变化或者删除后做出及时告警;具体的:用户无论是命令方式还是平台上的可视化方式,当对表结构做出修改时,均会实时感知到,再对关键点结构的变化做出相应的分析,例如字段减少或增加,字段位置发生变化,通过已关联的字段和任务,字段和表,表和任务之间的血缘关系,对引用到该表的任务中所配置的告警人员,申请了该表权限的人员或者所在系统管理员做出及时告警,避免较大事故的发生。
业务场景二:对所述关键血缘数据中上下游信息进行特殊分析,往上定位具体问题,往下做影响评估;具体的,当任务运行失败时,可根据血缘信息对任务的上下游进行特殊分析,往上追述任务并逐个分析问题,直到定位具体问题,往下做影响评估,查看当前任务的失败可能会影响哪些任务,又可能会造成何种程度的损失并给出评估报告。
业务场景三:对所述关键血缘数据的报表中异常数据的追踪,分析并确定所述异常数据的问题所在,定位具体的错误点;具体的,在生成报表的时候,若发现报表中可能存在异常数据,可根据报表追述到具体的上游字段和表,再逐一分析它们之间的关系和运算规则从而确定问题所在,定位具体的错误点,保障数据的可靠性和可延续性。
业务场景四:对所述关键血缘数据中某些数据做清洗脱敏工作时,根据血缘关系信息找到整个血缘链路,进而评估脱敏后的风险和制定计划需要的周期。具体的,若需要对某些数据做清洗脱敏工作时,可根据血缘关联信息清楚的找到整个链路,进而评估脱敏后的风险和制定计划需要的周期。但当发现未脱敏的数据已经被外泄时,可依据血缘关系信息从而快速的找到目前数据已经流转到了哪里,需要做怎样的紧急处理,最大程度的降低安全风险,避免更严重事故的发生。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的结构化查询语言的血缘解析工具在对SQL语句进行解析时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将结构化查询语言的血缘解析工具的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的结构化查询语言的血缘解析工具与结构化查询语言的血缘解析方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

1.一种结构化查询语言的血缘解析方法,其特征在于,所述血缘解析方法包括:
提取若干不同类型数据库的业务系统,将所述业务系统的结构化查询语言持续性地批量导入消息队列表中;
对所述消息队列表中包含有静态参数和动态参数的所述结构化查询语言分别预处理,若所述结构化查询语言中仅涉及静态参数则进行标准化格式操作,若所述结构化查询语言中涉及动态参数则进行事先处理;
将预处理后的所述结构化查询语言进行语法校对,使得所述结构化查询语言符合所述不同类型数据库的标准语法支持;
生成匹配所述不同类型数据库的所述结构化查询语言的抽象语法树,对所述抽象语法树进行遍历,获取所述结构化查询语言的血缘关系;
对所述业务系统的所述血缘关系进行信息的提取,获取所述血缘关系的血缘脉络和关键血缘数据并最终形成血缘图谱,将所述血缘图谱存储于图数据库中,通过所述图数据库完成对所述业务系统的分析与预测;
所述业务系统的分析和预测包括:
对所述关键血缘数据中表结构变化或者删除后做出及时告警,具体包括:实时感知用户对表结构作出的修改,对关键点结构的变化作出相应分析,通过已关联的字段和任务、字段和表、表和任务之间的血缘关系,对引用到该表的任务中所配置的告警人员、申请了该表权限的人员或者所在系统管理员做出及时告警;
对所述关键血缘数据中上下游信息进行特殊分析,往上定位具体问题,往下做影响评估,具体包括:当任务运行失败时,根据所述血缘关系对任务的上下游进行特殊分析,往上追述任务并逐个分析问题,直到定位具体问题,往下做影响评估,查看当前任务的失败影响的任务以及造成的损失并给出评估报告;
对所述关键血缘数据的报表中异常数据的追踪,分析并确定所述异常数据的问题所在,定位具体的错误点,具体包括:在生成报表时,若发现报表中存在异常数据,根据报表追述到具体的上游字段和表,再逐一分析之间的关系和运算规则从而确定问题所在,定位具体的错误点;
对所述关键血缘数据中某些数据做清洗脱敏工作时,根据所述血缘关系信息找到整个血缘链路,进而评估脱敏后的风险和制定计划需要的周期,具体包括:需要对数据做清洗脱敏工作时,根据所述血缘关系找到整个链路,进而评估脱敏后的风险和制定计划需要的周期,当发现未脱敏的数据已经被外泄时,依据所述血缘关系找到目前数据流转位置以判断所需要做的处理。
2.根据权利要求1所述的结构化查询语言的血缘解析方法,其特征在于,所述不同类型数据库包括Hive数据仓库和关系型数据库,所述关系型数据库包括主流的MySQL数据库、Oracle数据库、DB2数据库。
3.根据权利要求1所述的结构化查询语言的血缘解析方法,其特征在于,所述标准化格式操作包括:将任一所述结构化查询语言中的空白字符替换为单个空格,以及将结构化查询语言统一为大写字母或者小写字母。
4.根据权利要求1所述的结构化查询语言的血缘解析方法,其特征在于,所述事先处理包括:设置自定义的语法模块实现对所述动态参数的识别和解析,对所述动态参数进行整体替换成真实的静态参数,完成对所述动态参数的模糊处理。
5.根据权利要求1所述的结构化查询语言的血缘解析方法,其特征在于,所述语法校对包括对所述结构化查询语言中特殊字符、保留字的检查。
6.根据权利要求1至5任一所述的结构化查询语言的血缘解析方法,其特征在于,所述抽象语法树的生成是基于antlr和druid的开源语法分析器;对所述抽象语法树的遍历包括:依次获取所述结构化查询语言中库名、表名、字段名以及表和字段描述的元数据信息,将所述元数据信息作为生成表和表、字段和字段、表和表实例、字段和字段实例之间血缘关系的源信息,并获取所述源信息之间的血缘映射关系。
7.根据权利要求6所述的结构化查询语言的血缘解析方法,其特征在于,所述血缘映射关系包括所述表的父表与子表的映射对,所述字段的父字段与子字段的映射对,所述表实例或字段实例的父实例与子实例的映射对。
8.根据权利要求1所述的结构化查询语言的血缘解析方法,其特征在于,对所述业务系统的分析和预测能够针对所述关键血缘数据中任一节点信息的精准定位,任一血缘链路的血缘查询,任一全局血缘的视图总览。
9.一种结构化查询语言的血缘解析工具,其特征在于,所述血缘解析工具包括:
数据源提取系统,用于提取若干不同类型数据库的业务系统,将所述业务系统的结构化查询语言持续性地批量导入消息队列表中;
数据预处理系统,用于将所述消息队列表中包含有静态参数和动态参数的所述结构化查询语言分别预处理,若所述结构化查询语言中仅涉及静态参数则进行标准化格式操作,若所述结构化查询语言中涉及动态参数则进行事先处理;
数据语法校对系统,用于将预处理后的所述结构化查询语言进行语法校对,使得所述结构化查询语言符合所述不同类型数据库的标准语法支持;
血缘关系获取系统,用于生成匹配所述不同类型数据库的所述结构化查询语言的抽象语法树,对所述抽象语法树进行遍历,获取所述结构化查询语言的血缘关系;
血缘数据分析系统,用于对所述业务系统的所述血缘关系进行信息的提取,获取所述血缘关系的血缘脉络和关键血缘数据并最终形成血缘图谱,将所述血缘图谱存储于图数据库中,通过所述图数据库完成对所述业务系统的分析与预测;
溯源分析系统,用于以表节点、字段节点、实例节点的形式散落部署于图数据库中,节点与节点之间由各类血缘关系形成边以针对不同业务需求,对所述关键血缘数据中任一节点信息的精准定位、任一血缘链路的血缘查询、任一全局血缘的视图总览进行血缘信息的分析以理清表、字段与实例的血缘脉络对数据进行溯源分析;
所述溯源分析系统包括:
告警单元,用于对所述关键血缘数据中表结构变化或者删除后做出及时告警,具体用于:实时感知用户对表结构作出的修改,对关键点结构的变化作出相应分析,通过已关联的字段和任务、字段和表、表和任务之间的血缘关系,对引用到该表的任务中所配置的告警人员、申请了该表权限的人员或者所在系统管理员做出及时告警;
分析定位单元,用于对所述关键血缘数据中上下游信息进行特殊分析,往上定位具体问题,往下做影响评估,具体用于:当任务运行失败时,根据所述血缘关系对任务的上下游进行特殊分析,往上追述任务并逐个分析问题,直到定位具体问题,往下做影响评估,查看当前任务的失败影响的任务以及造成的损失并给出评估报告;
追踪定位单元,用于对所述关键血缘数据的报表中异常数据的追踪,分析并确定所述异常数据的问题所在,定位具体的错误点,具体用于:在生成报表时,若发现报表中存在异常数据,根据报表追述到具体的上游字段和表,再逐一分析之间的关系和运算规则从而确定问题所在,定位具体的错误点;
评估计划单元,用于对所述关键血缘数据中某些数据做清洗脱敏工作时,根据所述血缘关系信息找到整个血缘链路,进而评估脱敏后的风险和制定计划需要的周期,具体用于:需要对数据做清洗脱敏工作时,根据所述血缘关系找到整个链路,进而评估脱敏后的风险和制定计划需要的周期,当发现未脱敏的数据已经被外泄时,依据所述血缘关系找到目前数据流转位置以判断所需要做的处理。
10.根据权利要求9所述的结构化查询语言的血缘解析工具,其特征在于,所述数据源提取系统包括Hive数据仓库和关系型数据库,所述关系型数据库包括主流的MySQL数据库、Oracle数据库、DB2数据库。
11.根据权利要求9所述的结构化查询语言的血缘解析工具,其特征在于,所述数据预处理系统包括事先处理单元,用于设置自定义的语法模块实现对所述动态参数的识别和解析,将所述动态参数进行整体替换成真实的静态参数,完成对所述动态参数的模糊处理。
12.根据权利要求9至11任一所述的结构化查询语言的血缘解析工具,其特征在于,所述血缘关系获取系统包括基于antlr和druid的开源语法分析器,用于所述抽象语法树的生成,并依次获取所述结构化查询语言中库名、表名、字段名以及表和字段描述的元数据信息,将所述元数据信息作为生成表和表、字段和字段、表和表实例、字段和字段实例之间血缘关系的源信息,并获取所述源信息之间的血缘映射关系。
13.根据权利要求9所述的结构化查询语言的血缘解析工具,其特征在于,所述血缘数据分析系统包括业务系统单元,用于对所述业务系统分析和预测,并能够针对所述关键血缘数据中任一节点信息的精准定位,任一血缘链路的血缘查询,任一全局血缘的视图总览。
CN201910423289.0A 2019-05-21 2019-05-21 一种结构化查询语言的血缘解析方法及其工具 Active CN110232056B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910423289.0A CN110232056B (zh) 2019-05-21 2019-05-21 一种结构化查询语言的血缘解析方法及其工具

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910423289.0A CN110232056B (zh) 2019-05-21 2019-05-21 一种结构化查询语言的血缘解析方法及其工具

Publications (2)

Publication Number Publication Date
CN110232056A CN110232056A (zh) 2019-09-13
CN110232056B true CN110232056B (zh) 2022-02-25

Family

ID=67860873

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910423289.0A Active CN110232056B (zh) 2019-05-21 2019-05-21 一种结构化查询语言的血缘解析方法及其工具

Country Status (1)

Country Link
CN (1) CN110232056B (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110727677B (zh) * 2019-09-19 2022-12-30 上海数禾信息科技有限公司 数据仓库内表格的血缘关系追溯的方法和装置
CN110908997B (zh) * 2019-10-09 2022-10-14 支付宝(杭州)信息技术有限公司 数据血缘构建方法、装置、服务器及可读存储介质
CN110688544A (zh) * 2019-10-17 2020-01-14 北京锐安科技有限公司 一种查询数据库的方法、设备及存储介质
CN111026568B (zh) * 2019-12-04 2023-09-29 深圳前海环融联易信息科技服务有限公司 数据和任务关系构建方法、装置、计算机设备及存储介质
CN111191276B (zh) * 2019-12-05 2023-09-19 平安银行股份有限公司 数据脱敏方法、装置、存储介质及计算机设备
CN111078729B (zh) * 2019-12-19 2023-04-28 医渡云(北京)技术有限公司 医疗数据溯源方法、装置、系统、存储介质以及电子设备
CN111400305B (zh) * 2020-02-20 2022-03-08 深圳市魔数智擎人工智能有限公司 基于特征工程血缘关系的可回溯、可视化方法
CN111627552B (zh) * 2020-04-08 2023-07-14 湖南长城医疗科技有限公司 一种医疗流式数据血缘关系分析、存储方法及装置
CN111538743B (zh) * 2020-04-22 2023-08-18 电子科技大学 基于sql的数据血缘关系分析方法以及系统
CN111563103B (zh) * 2020-04-28 2022-05-20 厦门市美亚柏科信息股份有限公司 一种用于数据血缘检测方法和系统
CN111723253A (zh) * 2020-05-25 2020-09-29 贵州华泰智远大数据服务有限公司 一种基于图数据库的数据血缘查询方法及查询系统
CN111782265B (zh) * 2020-06-28 2024-02-02 中国工商银行股份有限公司 基于字段级血缘关系的软件资源系统及其建立方法
CN112035508A (zh) * 2020-08-27 2020-12-04 深圳天源迪科信息技术股份有限公司 基于sql在线元数据解析的方法及系统、设备
CN114091426A (zh) * 2020-10-19 2022-02-25 北京沃东天骏信息技术有限公司 一种处理数据仓库中字段数据的方法和装置
CN112433888B (zh) * 2020-12-02 2023-06-30 网易(杭州)网络有限公司 数据处理方法及装置、存储介质和电子设备
CN112527816B (zh) * 2020-12-03 2023-06-02 平安科技(深圳)有限公司 数据血缘关系解析方法、系统、计算机设备及存储介质
CN112634004B (zh) * 2020-12-30 2023-10-13 中国农业银行股份有限公司 征信数据的血缘图谱分析方法与系统
CN112860662B (zh) * 2021-01-22 2023-10-17 平安科技(深圳)有限公司 自动化生产数据血缘关系建立方法、装置、计算机设备及存储介质
CN112860811B (zh) * 2021-02-05 2023-07-18 北京百度网讯科技有限公司 数据血缘关系的确定方法、装置、电子设备和存储介质
CN113010550B (zh) * 2021-02-22 2023-05-05 建信金融科技有限责任公司 结构化数据的批处理对象生成、批处理方法和装置
CN112925777A (zh) * 2021-02-25 2021-06-08 吉林亿联银行股份有限公司 一种用于探测hive数据库数据血缘的方法及系统
CN113032362B (zh) * 2021-03-18 2024-01-19 广州虎牙科技有限公司 数据血缘分析方法、装置、电子设备和存储介质
CN113326261B (zh) * 2021-04-29 2024-03-08 奇富数科(上海)科技有限公司 数据血缘关系提取方法、装置及电子设备
CN113191139A (zh) * 2021-05-24 2021-07-30 工银科技有限公司 基于列级数据的数据血缘解析方法及装置
CN113326401B (zh) * 2021-06-16 2023-01-20 上海哔哩哔哩科技有限公司 字段血缘生成方法及系统
CN113392112A (zh) * 2021-06-17 2021-09-14 中国工商银行股份有限公司 数据解析方法、数据解析装置、电子设备和存储介质
CN113468257A (zh) * 2021-07-05 2021-10-01 乐融致新电子科技(天津)有限公司 基于数据仓库的数据质量监控方法及装置
CN113326286A (zh) * 2021-08-03 2021-08-31 杭州量之智能科技有限公司 一种支持多方言sql血缘解析的语义分析方法
CN113343036B (zh) * 2021-08-04 2021-11-16 杭州远眺科技有限公司 基于关键拓扑结构分析的数据血缘关系解析方法和系统
CN113760866A (zh) * 2021-08-30 2021-12-07 中国铁道科学研究院集团有限公司电子计算技术研究所 建模辅助装置和方法
CN113779071A (zh) * 2021-09-24 2021-12-10 北京锐安科技有限公司 一种数据库的查询方法、装置、设备及存储介质
CN113901513A (zh) * 2021-09-30 2022-01-07 四川新网银行股份有限公司 一种基于血缘解析的动态数据脱敏方法
CN113934750A (zh) * 2021-10-26 2022-01-14 上海泽字信息科技有限公司 基于编译方式的数据血缘关系分析方法
CN114090558A (zh) * 2021-11-10 2022-02-25 支付宝(杭州)信息技术有限公司 针对数据库的数据质量管理方法和装置
CN114254081B (zh) * 2021-12-22 2024-06-04 中冶赛迪信息技术(重庆)有限公司 企业大数据搜索系统、方法及电子设备
CN114721748B (zh) * 2022-04-11 2024-02-27 广州宇中网络科技有限公司 一种数据查询方法、系统、设备及可读存储介质
CN115904487B (zh) * 2022-11-29 2023-08-18 广发银行股份有限公司 一种分析型数据口径管理方法、系统、设备及存储介质
CN117370620B (zh) * 2023-12-08 2024-04-05 广东航宇卫星科技有限公司 一种数据血缘的构建方法、装置、终端设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902653A (zh) * 2014-02-28 2014-07-02 珠海多玩信息技术有限公司 一种构建数据仓库表血缘关系图的方法和装置
CN105912595A (zh) * 2016-04-01 2016-08-31 华南理工大学 一种关系数据库的数据起源收集方法
CN109582660A (zh) * 2018-12-06 2019-04-05 深圳前海微众银行股份有限公司 数据血缘分析方法、装置、设备、系统及可读存储介质
CN109614432A (zh) * 2018-12-05 2019-04-12 北京百分点信息科技有限公司 一种基于语法分析的获取数据血缘关系的系统及方法
CN110019315A (zh) * 2018-06-19 2019-07-16 杭州数澜科技有限公司 一种用于数据血缘解析的方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10223086B2 (en) * 2017-06-30 2019-03-05 Capital One Services, Llc Systems and methods for code parsing and lineage detection
CN109325326B (zh) * 2018-08-16 2022-09-30 深圳云安宝科技有限公司 非结构化数据访问时的数据脱敏方法、装置、设备及介质
CN109446279A (zh) * 2018-10-15 2019-03-08 顺丰科技有限公司 基于neo4j大数据血缘关系管理方法、系统、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902653A (zh) * 2014-02-28 2014-07-02 珠海多玩信息技术有限公司 一种构建数据仓库表血缘关系图的方法和装置
CN105912595A (zh) * 2016-04-01 2016-08-31 华南理工大学 一种关系数据库的数据起源收集方法
CN110019315A (zh) * 2018-06-19 2019-07-16 杭州数澜科技有限公司 一种用于数据血缘解析的方法和装置
CN109614432A (zh) * 2018-12-05 2019-04-12 北京百分点信息科技有限公司 一种基于语法分析的获取数据血缘关系的系统及方法
CN109582660A (zh) * 2018-12-06 2019-04-05 深圳前海微众银行股份有限公司 数据血缘分析方法、装置、设备、系统及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
百度外卖大数据精细化调度系统研究;梁福坤;《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》;20190215;I138—993 *

Also Published As

Publication number Publication date
CN110232056A (zh) 2019-09-13

Similar Documents

Publication Publication Date Title
CN110232056B (zh) 一种结构化查询语言的血缘解析方法及其工具
CN102804147B (zh) 执行abap源代码的代码检查的代码检查执行系统
US11948113B2 (en) Generating risk assessment software
EP4322009A1 (en) Test case generation method, apparatus and device
CN107203468B (zh) 一种基于ast的软件版本演化对比分析方法
CN113032579B (zh) 一种元数据血缘分析方法、装置、电子设备和介质
WO2016188279A1 (zh) 一种故障谱的生成、基于故障谱的检测方法和装置
US20200020058A1 (en) Identification of legal concepts in legal documents
CN110909363A (zh) 基于大数据的软件第三方组件漏洞应急响应系统及方法
US11080171B2 (en) Test cycle optimization using contextual association mapping
CN110909126A (zh) 一种信息查询方法及装置
CN114116856A (zh) 基于数据治理全链路的字段级血缘关系分析方法
EP2843566A2 (en) Structured event log data entry from operator reviewed proposed text patterns
KR20220064016A (ko) 빅데이터를 활용한 데이터마이닝기반 건설사고 객체정보 추출 방법
CN112000773A (zh) 基于搜索引擎技术的数据关联关系挖掘方法及应用
CN113609261A (zh) 基于网络信息安全的知识图谱的漏洞信息挖掘方法和装置
CN110727803A (zh) 文本事件抽取方法及装置
CN113760891A (zh) 一种数据表的生成方法、装置、设备和存储介质
CN113487211A (zh) 核电装备质量追溯方法、系统、计算机设备及介质
CN115274122A (zh) 健康医疗数据的管理方法、系统、电子设备及存储介质
CN116186174A (zh) 基于数据分析的数据血缘关系图构建方法及相关设备
CN115455033A (zh) 一种高风险sql拦截方法、装置和可读存储介质
CN113901094B (zh) 一种数据处理方法、装置、设备及存储介质
CN112445867A (zh) 一种数据关系智能分析方法和系统
CN114706878A (zh) 检查sql语句的方法及装置

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
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: No.1-1 Suning Avenue, Xuzhuang Software Park, Xuanwu District, Nanjing, Jiangsu Province, 210000

Patentee after: Jiangsu Suning cloud computing Co.,Ltd.

Address before: No.1-1 Suning Avenue, Xuzhuang Software Park, Xuanwu District, Nanjing, Jiangsu Province, 210000

Patentee before: Suning Cloud Computing Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240116

Address after: 210000, 1-5 story, Jinshan building, 8 Shanxi Road, Nanjing, Jiangsu.

Patentee after: SUNING.COM Co.,Ltd.

Address before: No.1-1 Suning Avenue, Xuzhuang Software Park, Xuanwu District, Nanjing, Jiangsu Province, 210000

Patentee before: Jiangsu Suning cloud computing Co.,Ltd.