CN117472940A - 数据血缘关系构建方法和装置、电子设备及存储介质 - Google Patents
数据血缘关系构建方法和装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117472940A CN117472940A CN202311532958.0A CN202311532958A CN117472940A CN 117472940 A CN117472940 A CN 117472940A CN 202311532958 A CN202311532958 A CN 202311532958A CN 117472940 A CN117472940 A CN 117472940A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- source
- table name
- target
- 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
- 239000008280 blood Substances 0.000 title claims abstract description 61
- 210000004369 blood Anatomy 0.000 title claims abstract description 61
- 238000010276 construction Methods 0.000 title claims abstract description 43
- 238000004458 analytical method Methods 0.000 claims abstract description 28
- 238000000034 method Methods 0.000 claims description 24
- 238000003780 insertion Methods 0.000 claims description 12
- 230000037431 insertion Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012216 screening Methods 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 claims description 3
- 238000011144 upstream manufacturing Methods 0.000 abstract description 35
- 230000008859 change Effects 0.000 abstract description 14
- 230000005856 abnormality Effects 0.000 abstract description 9
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 8
- 238000005192 partition Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 230000018109 developmental process Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000036772 blood pressure Effects 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/2282—Tablespace storage structures; Management thereof
-
- 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/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据血缘关系构建方法和装置、电子设备及存储介质,属于金融科技技术领域,通过对结构化数据查询语句进行语句解析,得到目标语法树。对目标语法树进行遍历,得到数据操作关键字的数据操作节点、数据来源关键字的数据来源节点。对数据操作节点进行表信息查询,得到目的字段的目的表名称。对数据来源节点进行表信息查询,得到数据来源字段的来源表名称。根据目的表名称获取目标数据,根据来源表名称获取源数据。根据目的表名称和来源表名称构建目标数据和源数据之间的数据血缘关系,以根据数据血缘关系确定上游数据所有的下游数据,避免上游数据变更导致下游数据异常。
Description
技术领域
本申请涉及金融科技技术领域,尤其涉及一种数据血缘关系构建方法和装置、电子设备及存储介质。
背景技术
下游数据是上游数据经过数据处理层、数据传递层、数据应用层到达下游终端的数据。在进行数据开发时,上游数据的变更容易导致下游数据的异常。因此,需要将上游数据的变更告知下游数据,并同步对下游数据进行修改,以保证上游数据和下游数据之间的数据兼容性。然而,上游数据很难完全掌握其所有的下游数据,因此需要分析数据之间的血缘关系,以确定上游数据对应的所有下游数据。如何确定数据之间的血缘关系成为了亟待解决的问题。
发明内容
本申请实施例的主要目的在于提出一种数据血缘关系构建方法和装置、电子设备及存储介质,旨在通过构建数据之间的血缘关系,确定上游数据所有的下游数据,避免上游数据变更导致下游数据异常。
为实现上述目的,本申请实施例的第一方面提出了一种数据血缘关系构建方法,所述方法包括:
获取结构化数据查询语句;所述结构化数据查询语句包括数据操作关键字、目的字段、数据来源关键字、数据来源字段;
对所述结构化数据查询语句进行语句解析,得到目标语法树;其中,所述目标语法树是抽象语法树;
对所述目标语法树进行遍历,得到所述数据操作关键字的数据操作节点、所述数据来源关键字的数据来源节点;
对所述数据操作节点进行表信息查询,得到所述目的字段的目的表名称;
对所述数据来源节点进行表信息查询,得到所述数据来源字段的来源表名称;
根据所述目的表名称获取目标数据,根据所述来源表名称获取源数据;
根据所述目的表名称和所述来源表名称构建所述目标数据和所述源数据之间的数据血缘关系。
在一些实施例,所述对所述目标语法树进行遍历,得到所述数据操作关键字的数据操作节点、所述数据来源关键字的数据来源节点,包括:
获取所述目标语法树的根节点,得到数据初始节点;
遍历所述数据初始节点的子节点,得到数据查询节点;
遍历所述数据查询节点的子节点,得到第一对象节点和第二对象节点;
将所述第一对象节点作为所述数据操作节点,将所述第二对象节点作为所述数据来源节点。
在一些实施例,所述对所述数据操作节点进行表信息查询,得到所述目的字段的目的表名称,包括:
遍历所述数据操作节点的子节点,得到数据目的节点;
遍历所述数据目的节点的子节点,得到数据表节点;
遍历所述数据表节点的子节点,得到第一数据表名节点;
对所述第一数据表名节点进行表名查询,得到所述目的表名称。
在一些实施例,所述对所述数据来源节点进行表信息查询,得到所述数据来源字段的来源表名称,包括:
遍历所述数据来源节点的子节点,得到数据参考节点;
遍历所述数据参考节点的子节点,得到第二数据表名节点;
对所述第二数据表名节点进行表名查询,得到所述来源表名称。
在一些实施例,所述结构化数据查询语句包括数据插入语句,所述对所述结构化数据查询语句进行语句解析,得到目标语法树,包括:
获取预设的文法文件;所述文法文件包括词法规则、语法规则;
对所述数据插入语句进行字符切分,得到字符序列;
通过所述词法规则对所述字符序列添加预设前缀,得到令牌流;所述令牌流为列表结构;
通过所述语法规则将所述令牌流从列表结构转换为树结构,得到所述目标语法树。
在一些实施例,所述获取结构化数据查询语句,包括:
获取脚本文件;
获取结构化数据查询关键字,并根据所述结构化数据查询关键字构建预设正则表达式;
通过所述预设正则表达式对所述脚本文件进行语句筛选,得到所述结构化数据查询语句。
在一些实施例,在所述根据所述目的表名称和所述来源表名称构建所述目标数据和所述源数据之间的数据血缘关系之后,所述数据血缘关系构建方法还包括:
获取目标血缘关系数据;所述目标血缘关系数据用于表示第一预设数据与第二预设数据的数据血缘关系;
获取血缘关系查询请求;所述血缘关系查询请求包括所述第一预设数据;
根据所述目标血缘关系数据对所述第一预设数据进行数据血缘关系查询,得到所述第二预设数据。
为实现上述目的,本申请实施例的第二方面提出了一种数据血缘关系构建装置,所述装置包括:
数据查询语句获取模块,用于获取结构化数据查询语句;所述结构化数据查询语句包括数据操作关键字、目的字段、数据来源关键字、数据来源字段;
数据查询语句解析模块,用于对所述结构化数据查询语句进行语句解析,得到目标语法树;其中,所述目标语法树是抽象语法树;
语法树遍历模块,用于对所述目标语法树进行遍历,得到所述数据操作关键字的数据操作节点、所述数据来源关键字的数据来源节点;
第一表信息查询模块,用于对所述数据操作节点进行表信息查询,得到所述目的字段的目的表名称;
第二表信息查询模块,用于对所述数据来源节点进行表信息查询,得到所述数据来源字段的来源表名称;
数据获取模块,用于根据所述目的表名称获取目标数据,根据所述来源表名称获取源数据;
数据血缘关系构建模块,用于根据所述目的表名称和所述来源表名称构建所述目标数据和所述源数据之间的数据血缘关系。
为实现上述目的,本申请实施例的第三方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的数据血缘关系构建方法。
为实现上述目的,本申请实施例的第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的数据血缘关系构建方法。
本申请提出的数据血缘关系构建方法、数据血缘关系构建装置、电子设备及计算机可读存储介质,通过对结构化数据查询语句进行语句解析,得到目标语法树,基于目标语法树可以准确表示结构化数据查询语句的语法结构。对目标语法树进行遍历,得到数据操作关键字的数据操作节点、数据来源关键字的数据来源节点,目标语法树提供了丰富的语法信息,以遍历的方式对目标语法树进行语法分析,可以快速而准确地得到数据操作节点和数据来源节点。为了得到目标数据,对数据操作节点进行表信息查询,得到目的字段的目的表名称,以通过目标表名称定位到目标数据。为了得到源数据,对数据来源节点进行表信息查询,得到数据来源字段的来源表名称,以通过来源表名称定位到源数据。根据目的表名称和来源表名称构建目标数据和源数据之间的数据血缘关系,将目标数据视为下游数据,将来源数据视为上游数据,通过数据血缘关系可以确定上游数据所有的下游数据,避免上游数据变更导致下游数据异常。
附图说明
图1是本申请实施例提供的数据血缘关系构建方法的流程图;
图2是图1中的步骤S110的流程图;
图3是图1中的步骤S120的流程图;
图4是本申请实施例提供的目标语法树的示意图;
图5是图1中的步骤S130的流程图;
图6是图1中的步骤S140的流程图;
图7是图1中的步骤S150的流程图;
图8是本申请实施例提供的数据血缘关系构建方法的另一流程图;
图9是本申请实施例提供的数据血缘关系构建装置的结构示意图;
图10是本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
首先,对本申请中涉及的若干名词进行解析:
结构化查询语言(Structured Query Language,SQL):是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
Hive:是基于Hadoop构建的一套数据仓库分析系统,用来存储、查询和分析存储在Hadoop中的大规模数据集。它与关系型数据库的SQL略有不同,但支持了绝大多数的语句如DDL、DML以及常见的聚合函数、连接查询、条件查询。
Hive SQL:是Hive提供的一个SQL语句。Hive查询操作过程严格遵守HadoopMapReduce的作业执行模型,Hive将用户的Hive SQL语句通过解释器转换为MapReduce作业提交到Hadoop集群上,Hadoop监控作业执行过程,然后返回作业执行结果给用户。
数据血缘关系(Data Lineage):是对数据在系统内、系统间、业务线之间的流动和转换过程的记录,通过这份记录可以追溯数据的源头,跟踪数据的流转历史,查看数据在某一时刻的状态,寻找数据的最终去向等。
ANTLR:是一种根据输入自动生成语法树并将语法树进行可视化显示的开源语法分析器。
抽象语法树(Abstract Syntax Tree,AST):是源代码语法结构的一种抽象表示,它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。
ETL(Extract-Transform-Load):用来描述将数据从来源端经过抽取、交互转换、加载至目的端的过程。
下游数据是上游数据经过数据处理层、数据传递层、数据应用层到达下游终端的数据。在进行数据开发时,上游数据的变更容易导致下游数据的异常。因此,需要将上游数据的变更告知下游数据,并同步对下游数据进行修改,以保证上游数据和下游数据之间的数据兼容性。然而,上游数据很难完全掌握其所有的下游数据,因此需要分析数据之间的血缘关系,以确定上游数据对应的所有下游数据。如何确定数据之间的血缘关系成为了亟待解决的问题。
基于此,本申请实施例提供了一种数据血缘关系构建方法、数据血缘关系构建装置、电子设备及计算机可读存储介质,旨在通过构建数据之间的血缘关系,确定上游数据以及与上游数据关联的下游数据,避免上游数据变更导致下游数据异常。
本申请实施例提供的数据血缘关系构建方法、数据血缘关系构建装置、电子设备及计算机可读存储介质,具体通过如下实施例进行说明,首先描述本申请实施例中的数据血缘关系构建方法。
本申请实施例提供的数据血缘关系构建方法,涉及金融科技技术领域。本申请实施例提供的数据血缘关系构建方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现数据血缘关系构建方法的应用等,但并不局限于以上形式。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本申请的各个具体实施方式中,当涉及到需要根据对象信息、对象行为数据,对象历史数据以及对象位置信息等与对象身份或特性相关的数据进行相关处理时,都会先获得对象的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关法律法规和标准。此外,当本申请实施例需要获取对象的个人信息时,会通过弹窗或者跳转到确认页面等方式获得对象的单独许可或者单独同意,在明确获得对象的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的对象相关数据。
图1是本申请实施例提供的数据血缘关系构建方法的一个可选的流程图,图1中的方法可以包括但不限于包括步骤S110至步骤S170。
步骤S110,获取结构化数据查询语句;结构化数据查询语句包括数据操作关键字、目的字段、数据来源关键字、数据来源字段;
步骤S120,对结构化数据查询语句进行语句解析,得到目标语法树;其中,目标语法树是抽象语法树;
步骤S130,对目标语法树进行遍历,得到数据操作关键字的数据操作节点、数据来源关键字的数据来源节点;
步骤S140,对数据操作节点进行表信息查询,得到目的字段的目的表名称;
步骤S150,对数据来源节点进行表信息查询,得到数据来源字段的来源表名称;
步骤S160,根据目的表名称获取目标数据,根据来源表名称获取源数据;
步骤S170,根据目的表名称和来源表名称构建目标数据和源数据之间的数据血缘关系。
本申请实施例所示意的步骤S110至步骤S170,通过对结构化数据查询语句进行语句解析,得到目标语法树,基于目标语法树可以准确表示结构化数据查询语句的语法结构。对目标语法树进行遍历,得到数据操作关键字的数据操作节点、数据来源关键字的数据来源节点,目标语法树提供了与结构化数据查询语句相关的语法信息,通过对目标语法树进行遍历,可以快速而准确地得到数据操作节点和数据来源节点。为了得到目标数据,对数据操作节点进行表信息查询,得到目的字段的目的表名称,以通过目标表名称定位到目标数据。为了得到源数据,对数据来源节点进行表信息查询,得到数据来源字段的来源表名称,以通过来源表名称定位到源数据。根据目的表名称和来源表名称构建目标数据和源数据之间的数据血缘关系,将目标数据视为下游数据,将来源数据视为上游数据,通过数据血缘关系可以确定上游数据所有的下游数据,避免上游数据变更导致下游数据异常,在中台建设、数据治理、降本增效、集群迁移等项目上均能发挥正向影响。
请参阅图2,在一些实施例中,步骤S110可以包括但不限于包括步骤S210至步骤S230:
步骤S210,获取脚本文件;
步骤S220,获取结构化数据查询关键字,并根据结构化数据查询关键字构建预设正则表达式;
步骤S230,通过预设正则表达式对脚本文件进行语句筛选,得到结构化数据查询语句。
在一些实施例的步骤S210中,在进行数据开发时,上游数据的变更容易导致与该上游数据存在依赖关系的下游数据异常。上游数据通常很难掌握与其存在依赖关系的所有下游数据。一个完整的数据血缘关系分析,能够最大可能地避免给下游数据造成异常损失。在数据开发领域,设计平台主要承载数据模型设计的工作,例如字根解析、数据类开发功能、规范的平台化、各种数据模型表及属性的数字化留档。目前,数据血缘分析依赖于设计平台维护的目标表与来源表的映射关系。但设计平台在不断的版本迭代中会存在历史数据不完整的问题,导致数据血缘关系不完整,导致无法确定与上游数据相关联的所有下游数据以及间接下游数据。调度平台用于使一系列ETL任务按照配置的频率自动化执行,并利用ETL任务的执行顺序关系进行数据血缘分析。执行顺序关系是数据流转的一种体现,在一定程度上反映了任务之间的依赖关系,但调度平台中高频任务不能依赖低频任务,会导致依赖关系不完整,从而导致数据血缘关系不完整。为了解决数据血缘关系不完整的问题,本申请实施例通过对实际代码库中的代码进行代码解析来构建完整的数据血缘关系。从实际代码库中获取脚本文件。具体地,通过配置文件获取实际代码库中脚本文件的脚本路径,遍历脚本路径下所有的脚本文件。脚本文件是根据一定格式编写的可执行文件,是一系列指令的集合,脚本文件可以是shell脚本,指令包括SQL语句。
在一些实施例的步骤S220中,结构化数据查询关键字是SQL语句的关键字,结构化数据查询关键字可以是insert关键字、from关键字、where关键字、select关键字、join关键字等。预设正则表达式是用事先定义好的特定字符或者特定字符的组合构建的一个规则字符串,通过该规则字符串可以从脚本文件提取出SQL语句。通过正则表达式操作符将结构化数据查询关键字构建为预设正则表达式。预设正则表达式可以为:^(select|drop|delete|update|insert).*$,可用于提取以select、drop、delete、update、insert为开头的整行语句,其中^、.*和$均为正则表达式操作符,^用于匹配行的开头、.*用于匹配任意数量的字符,$用于匹配行的结尾。可以理解的是,预设正则表达式可根据脚本文件结构和SQL语句格式进行更改。例如,Hive SQL语句不支持update关键字,为了从脚本文件中提取出Hive SQL语句,将预设正则表达式更改为:^(select|drop|delete|insert|from|where|join).*$。
在一些实施例,若脚本文件使用特定编程语言,可利用编程语言中预定义的库、模块从脚本文件中提取出SQL语句。例如,编程语言为python,可通过re模块进行SQL语句的提取。在一些实施例,通过hive-e指令从脚本文件中读取SQL语句。
在一些实施例,脚本文件存在较多嵌套语法,文件的语法结构较为复杂,可通过脚本分析工具将脚本文件解析成语法树或者令牌流,根据语法树或者令牌流从脚本文件中提取出SQL语句。
在一些实施例的步骤S230中,将预设正则表达式作为文本解析规则,通过预设正则表达式中特定的SQL语句模式匹配脚本文件,过滤脚本文件中的无关内容字符串、其他非SQL语句,从脚本文件提取出匹配的SQL语句,得到结构化数据查询语句。结构化数据查询语句包括数据操作关键字、目的字段、数据来源关键字、数据来源字段,目的字段用于确定目标表的名称,数据操作关键字用于对目标表中的数据进行某种操作。例如,数据操作关键字为delete关键字,则说明对目标表中的数据进行删除操作。数据来源字段用于确定来源表的名称。数据来源关键字即from关键字,用于指定来源表。
通过对shell脚本进行解析得到数据血缘关系,弥补了设计平台在数据完整性、及时性、准确性等方面的缺陷,也解决了调度平台因缺失配置的依赖关系或者无法配置的依赖关系导致血缘关系丢失的问题,在数据变更影响性分析方面更加准确便利,可以更加精确的对数据变更影响作出判断,将分析工作具体化、工具化,提高了血缘关系分析和数据开发的效率、准确性,规避了一些因分析不准确导致的风险。
通过上述步骤S210至步骤S230,能够从脚本文件中提取出结构化数据查询语句,以基于结构化数据查询语句构建数据血缘关系。
请参阅图3,在一些实施例中,结构化数据查询语句包括数据插入语句,步骤S120可以包括但不限于包括步骤S310至步骤S340:
步骤S310,获取预设的文法文件;文法文件包括词法规则、语法规则;
步骤S320,对数据插入语句进行字符切分,得到字符序列;
步骤S330,通过词法规则对字符序列添加预设前缀,得到令牌流;令牌流为列表结构;
步骤S340,通过语法规则将令牌流从列表结构转换为树结构,得到目标语法树。
在一些实施例的步骤S310中,结构化数据查询语句为Hive SQL语句,采用开源语法分析器ANTLR对Hive SQL语句进行词法解析和语法解析,将Hive SQL语句转换为抽象语法树,得到目标语法树,以基于目标语法树实现对特定字段的查询。具体地,获取预先定义的ANTLR文法文件,文法文件包括词法规则和语法规则,词法规则用于对结构化数据查询语句进行词法解析,语法规则用于对结构化数据查询语句进行语法解析。结构化数据查询语句包括数据插入语句,数据插入语句的语法格式为insert into表1select*from表2,数据操作关键字为insert into,表示向表1中插入数据,目的字段为表1,数据来源关键字为from,数据来源字段为表2。
在一些实施例的步骤S320中,通过空格、特殊字符、标点符号等对数据插入语句进行字符切分,得到多个字符,这多个字符构成字符序列。字符序列包括结构化数据查询关键字、标识符、运算符、常量等。若数据插入语句的语法格式为:insert intotable_namepartition(partition_col=value,...)select column1,column2,...fromsource_table,则insert into、partition、select、from均为结构化数据查询关键字,table_name、partition_col、column1、column2、source_table均为标识符,value为常量,=为运算符。
在一些实施例的步骤S330中,通过ANTLR可以构造出相应的词法分析器Lexer以及语法分析器Parser。词法分析器Lexer通过词法规则对字符序列添加tok_前缀,将无含义的字符序列转换为有意义的标记序列,得到令牌流。其中,令牌流为列表结构,包括多个token标记,令牌流可以表示为tokens{tok_insert;tok_query;tok_select;tok_selectdi;tok_selexpr;tok_from;tok_tab;tok_partspec;tok_partval;tok_dir;tok_tabref;...}。具体地,若字符序列包括Hive SQL语句中表示插入操作的关键字,则生成tok_insert。若字符序列包括Hive SQL语句中表示数据来源的关键字,则生成tok_from。若字符序列包括HiveSQL语句的查询关键字例如select关键字,则生成tok_query。若字符序列包括Hive SQL语句中的select子句,则生成tok_select。若字符序列包括Hive SQL语句中的selectdistinct子句,则生成tok_selectdi。select distinct子句用于进行去重操作。若字符序列包括Hive SQL语句中的select子句的表达式,则生成tok_selexpr。若字符序列包括表名,则生成tok_tab。若字符序列包括通过partition关键字表征的分区方式,则生成tok_partspec。若字符序列包括通过partition关键字表征的分区值,则生成tok_partval。若字符序列包括表引用相关字符,则声称tok_tabref。
在一些实施例的步骤S340中,语法分析器Parser遍历令牌流,按照语法规则重写令牌流,根据令牌流自顶向下建立树结构,以将令牌流从列表结构转换为树结构,得到抽象语法树,将该抽象语法树作为目标语法树。若数据插入语句的语句片段为where a>10,对该语句片段进行词法分析得到令牌流为[where,(a,>,10)]。语法规则为condition->ID>number、expression->(condition),第一个语法规则表示一个条件由一个变量ID、一个数字number以及操作符>连接而成,第二个语法规则表示一个表达式由一个条件构成。当遍历到(a,>,10),a是ID,10是number,(a,>,10)符合语法规则中关于condition的语法定义,则根据语法规则重写令牌流得到目标语法树的第一层为condition。由于>操作符的优先级高于ID和number,所以第二层为>。第三层为>的子树,包括a和10。根据上述方法构建Hive SQL语句的目标语法树,得到目标语法树如图4所示,目标语法树由tok_insert、tok_from两部分组成,tok_from表示from子句的语法树,tok_insert包括tok_destination子树以及select子句的语法树。
通过上述步骤S310至步骤S340,能够得到抽象语法树,以基于抽象语法树构建数据血缘关系。
请参阅图5,在一些实施例中,步骤S130可以包括但不限于包括步骤S510至步骤S540:
步骤S510,获取目标语法树的根节点,得到数据初始节点;
步骤S520,遍历数据初始节点的子节点,得到数据查询节点;
步骤S530,遍历数据查询节点的子节点,得到第一对象节点和第二对象节点;
步骤S540,将第一对象节点作为数据操作节点,将第二对象节点作为数据来源节点。
在一些实施例的步骤S510中,目标语法树是源代码语法结构的一种抽象表示,它以树状形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。以根节点为起始自顶向下遍历目标语法树,利用Hive内置的解析器解析目标语法树,以构建数据之间的血缘关系。具体地,获取目标语法树的根节点,将根节点作为数据初始节点,数据初始节点为空节点empty。
在一些实施例的步骤S520中,遍历数据初始节点的子节点,得到tok_query节点,将tok_query节点作为数据查询节点。
在一些实施例的步骤S530中,数据查询节点包括两个并列的子节点,这两个并列的子节点分别是tok_insert节点和tok_from节点。遍历数据查询节点的子节点,将tok_insert节点作为第一对象节点,将tok_from节点作为第二对象节点。
在一些实施例的步骤S540中,将第一对象节点作为数据操作关键字的数据操作节点,将第二对象节点作为数据来源关键字的数据来源节点。
通过上述步骤S510至步骤S540,能够得到数据操作节点和数据来源节点,通过对数据操作节点进行表信息查询得到目标表,对数据来源节点进行表信息查询得到来源表,从而得到目标表和来源表之间的数据血缘关系。
请参阅图6,在一些实施例中,步骤S140可以包括但不限于包括步骤S610至步骤S640:
步骤S610,遍历数据操作节点的子节点,得到数据目的节点;
步骤S620,遍历数据目的节点的子节点,得到数据表节点;
步骤S630,遍历数据表节点的子节点,得到第一数据表名节点;
步骤S640,对第一数据表名节点进行表名查询,得到目的表名称。
在一些实施例的步骤S610中,数据操作节点包括两个并列的子节点,这两个子节点分别是tok_destination节点和tok_select节点。遍历数据操作节点的子节点,将tok_destination节点作为数据目的节点。tok_select节点的子节点包括tok_selexpr节点。tok_selexpr节点表示的是数据插入语句的字段,tok_selexpr节点的子节点表示字段处理逻辑。
在一些实施例的步骤S620中,遍历数据目的节点的子节点,得到tok_tab节点,将tok_tab节点作为数据表节点。
在一些实施例的步骤S630中,遍历数据表节点的子节点,得到tok_tabname节点,将tok_tabname节点作为第一数据表名节点。数据表节点的子节点还包括tok_partspec节点,通过遍历tok_partspec节点的子节点tok_partval,可得到分区方式的具体取值。
在一些实施例的步骤S640中,对第一数据表名节点进行表名查询,得到目的字段的目的表名称,目的表名称为目标表的表名称。
通过上述步骤S610至步骤S640,能够得到目的表名称,以基于目标表名称定位目标表。
请参阅图7,在一些实施例中,步骤S150可以包括但不限于包括步骤S710至步骤S730:
步骤S710,遍历数据来源节点的子节点,得到数据参考节点;
步骤S720,遍历数据参考节点的子节点,得到第二数据表名节点;
步骤S730,对第二数据表名节点进行表名查询,得到来源表名称。
在一些实施例的步骤S710中,遍历数据来源节点的子节点,得到tok_tabref节点,将tok_tabref节点作为数据参考节点。遍历数据来源节点的子节点,得到tok_join节点或者tok_unionall节点,遍历tok_join节点的子节点或者tok_unionall节点的子节点得到数据参考节点。tok_join节点的子节点还包括equal节点,equal节点表示表的关联条件。
在一些实施例的步骤S720中,遍历数据参考节点的子节点,得到tok_tabname节点,将tok_tabname节点作为第二数据表名节点。
在一些实施例的步骤S730中,对第二数据表名节点进行表名查询,得到来源字段的来源表名称,来源表名称用于表示来源表的名称。
通过上述步骤S710至步骤S730,能够得到来源表名称,以基于来源表名称定位来源表。
在一些实施例的步骤S160中,根据目的表名称进行表数据查询得到目标数据,根据来源表名称进行表数据查询得到源数据。目标数据为目标表中的数据,源数据为来源表中的数据。
在一些实施例的步骤S170中,根据目的表名称和来源表名称构建目标数据和源数据之间的数据血缘关系,从而形成要给完整的数据血缘关系链,获得每一个脚本文件表级数据之间的血缘关系,大大提高了血缘分析的效率。可以理解的是,目标数据为下游数据,来源数据为上游数据,通过对数据血缘关系进行递归查询,可得到上游数据所有的直接下游数据和间接下游数据。例如,A表为目标表,B表和C表为来源表,则A表直接依赖B表和C表。B表为目标表,D为来源表,则B表直接依赖D表,A表间接依赖D表。
请参阅图8,在一些实施例中,在步骤S170之后,数据血缘关系构建方法还可以包括但不限于包括步骤S810至步骤S830:
步骤S810,获取目标血缘关系数据;目标血缘关系数据用于表示第一预设数据与第二预设数据的数据血缘关系;
步骤S820,获取血缘关系查询请求;血缘关系查询请求包括第一预设数据;
步骤S830,根据目标血缘关系数据对第一预设数据进行数据血缘关系查询,得到第二预设数据。
在一些实施例的步骤S810中,根据目的表名称和来源表名称构建目标数据和源数据之间的数据血缘关系,得到目标血缘关系数据。获取目标血缘关系数据,目标血缘关系数据用于表示第一预设数据与第二预设数据的数据血缘关系,第一预设数据为来源表的源数据或者目标表的目标数据。当第一预设数据为源数据,第二预设数据为目标数据。当第一预设数据为目标数据,第二预设数据为源数据。在一些实施例,第一表的数据包括身高、体重,第二表的数据包括BMI指数。由于BMI指数等于体重与身高平方的比值,第二表的数据依赖于第一表的数据,第一表为来源表,第二表为目标表,第一表的数据和第二表的数据之间存在数据血缘关系,得到目标血缘关系数据。在一些实施例,第一表的数据包括血压、血压化验结果、心电图等多个体检结果,第二表的数据包括根据体检结果得到的诊断结果,第二表的数据依赖于第一表的数据,第一表为来源表,第二表为目标表,第一表的数据和第二表的数据之间存在数据血缘关系,得到目标血缘关系数据。
在一些实施例的步骤S820中,获取血缘关系查询请求,血缘关系查询请求包括第一预设数据。
在一些实施例的步骤S830中,根据目标血缘关系数据对第一预设数据进行数据血缘关系查询,得到第二预设数据,第二预设数据为与第一预设数据存在数据血缘关系的数据。
通过上述步骤S810至步骤S830,可以查询到与第一预设数据存在数据血缘关系的第二预设数据,避免数据变更导致下游数据异常。
本申请实施例提供一种数据血缘关系构建方法,包括:从预设路径读取shell脚本文件,从shell脚本文件中提取出HiveSQL语句。通过ANTLR对Hive SQL语句进行语句解析,生成目标语法树。通过语法树解析规则对目标语法树进行解析,得到根节点。遍历根节点的子节点得到tok_insert节点和tok_from节点。遍历tok_insert节点的子节点,得到tok_destination。遍历tok_destination节点的子节点,得到tok_tab节点。遍历tok_tab节点的子节点得到tok_tabname节点。对tok_tabname节点进行表名称查询,得到目标表名称。遍历tok_from节点的子节点,得到tok_tabref节点。遍历tok_tabref节点的子节点,得到tok_tabname节点。对tok_tabname节点进行表名称查询,得到来源表名称。根据目标表名称进行表数据查询得到目标表数据,根据来源表名称进行表数据查询得到来源表数据,构建目标表数据和来源表数据之间的数据血缘关系。通过寻找上下游依赖的递归技术,找到需要查询表的上下游所有直接、间接依赖表,从而形成一个完整的数据血缘关系链,大大提高了数据血缘关系的分析效率。
请参阅图9,本申请实施例还提供一种数据血缘关系构建装置,可以实现上述数据血缘关系构建方法,该数据血缘关系构建装置包括:
数据查询语句获取模块910,用于获取结构化数据查询语句;结构化数据查询语句包括数据操作关键字、目的字段、数据来源关键字、数据来源字段;
数据查询语句解析模块920,用于对结构化数据查询语句进行语句解析,得到目标语法树;其中,目标语法树是抽象语法树;
语法树遍历模块930,用于对目标语法树进行遍历,得到数据操作关键字的数据操作节点、数据来源关键字的数据来源节点;
第一表信息查询模块940,用于对数据操作节点进行表信息查询,得到目的字段的目的表名称;
第二表信息查询模块950,用于对数据来源节点进行表信息查询,得到数据来源字段的来源表名称;
数据获取模块960,用于根据目的表名称获取目标数据,根据来源表名称获取源数据;
数据血缘关系构建模块970,用于根据目的表名称和来源表名称构建目标数据和源数据之间的数据血缘关系。
该数据血缘关系构建装置的具体实施方式与上述数据血缘关系构建方法的具体实施例基本相同,在此不再赘述。
本申请实施例还提供了一种电子设备,电子设备包括括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述数据血缘关系构建方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
请参阅图10,图10示意了另一实施例的电子设备的硬件结构,电子设备包括:
处理器1010,可以采用通用的CPU(CentralProcessingUnit,中央处理器)、微处理器、应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器1020,可以采用只读存储器(ReadOnlyMemory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(RandomAccessMemory,RAM)等形式实现。存储器1020可以存储操作系统和其它应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行本申请实施例的数据血缘关系构建方法;
输入/输出接口1030,用于实现信息输入及输出;
通信接口1040,用于实现本设备与其它设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线1050,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息;
其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述数据血缘关系构建方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其它非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例提供的数据血缘关系构建方法、数据血缘关系构建装置、电子设备及计算机可读存储介质,通过对目标语法树进行遍历,可以快速而准确地得到数据操作节点和数据来源节点。对数据操作节点进行表信息查询,得到目的字段的目的表名称,以通过目标表名称定位到目标数据。对数据来源节点进行表信息查询,得到数据来源字段的来源表名称,以通过来源表名称定位到源数据。根据目的表名称和来源表名称构建目标数据和源数据之间的数据血缘关系,通过数据血缘关系可以得到相互关联的上游数据和下游数据,避免上游数据变更导致下游数据异常。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
Claims (10)
1.数据血缘关系构建方法,其特征在于,所述方法包括:
获取结构化数据查询语句;所述结构化数据查询语句包括数据操作关键字、目的字段、数据来源关键字、数据来源字段;
对所述结构化数据查询语句进行语句解析,得到目标语法树;其中,所述目标语法树是抽象语法树;
对所述目标语法树进行遍历,得到所述数据操作关键字的数据操作节点、所述数据来源关键字的数据来源节点;
对所述数据操作节点进行表信息查询,得到所述目的字段的目的表名称;
对所述数据来源节点进行表信息查询,得到所述数据来源字段的来源表名称;
根据所述目的表名称获取目标数据,根据所述来源表名称获取源数据;
根据所述目的表名称和所述来源表名称构建所述目标数据和所述源数据之间的数据血缘关系。
2.根据权利要求1所述的数据血缘关系构建方法,其特征在于,所述对所述目标语法树进行遍历,得到所述数据操作关键字的数据操作节点、所述数据来源关键字的数据来源节点,包括:
获取所述目标语法树的根节点,得到数据初始节点;
遍历所述数据初始节点的子节点,得到数据查询节点;
遍历所述数据查询节点的子节点,得到第一对象节点和第二对象节点;
将所述第一对象节点作为所述数据操作节点,将所述第二对象节点作为所述数据来源节点。
3.根据权利要求1所述的数据血缘关系构建方法,其特征在于,所述对所述数据操作节点进行表信息查询,得到所述目的字段的目的表名称,包括:
遍历所述数据操作节点的子节点,得到数据目的节点;
遍历所述数据目的节点的子节点,得到数据表节点;
遍历所述数据表节点的子节点,得到第一数据表名节点;
对所述第一数据表名节点进行表名查询,得到所述目的表名称。
4.根据权利要求1所述的数据血缘关系构建方法,其特征在于,所述对所述数据来源节点进行表信息查询,得到所述数据来源字段的来源表名称,包括:
遍历所述数据来源节点的子节点,得到数据参考节点;
遍历所述数据参考节点的子节点,得到第二数据表名节点;
对所述第二数据表名节点进行表名查询,得到所述来源表名称。
5.根据权利要求1所述的数据血缘关系构建方法,其特征在于,所述结构化数据查询语句包括数据插入语句,所述对所述结构化数据查询语句进行语句解析,得到目标语法树,包括:
获取预设的文法文件;所述文法文件包括词法规则、语法规则;
对所述数据插入语句进行字符切分,得到字符序列;
通过所述词法规则对所述字符序列添加预设前缀,得到令牌流;所述令牌流为列表结构;
通过所述语法规则将所述令牌流从列表结构转换为树结构,得到所述目标语法树。
6.根据权利要求1所述的数据血缘关系构建方法,其特征在于,所述获取结构化数据查询语句,包括:
获取脚本文件;
获取结构化数据查询关键字,并根据所述结构化数据查询关键字构建预设正则表达式;
通过所述预设正则表达式对所述脚本文件进行语句筛选,得到所述结构化数据查询语句。
7.根据权利要求1至6任一项所述的数据血缘关系构建方法,其特征在于,在所述根据所述目的表名称和所述来源表名称构建所述目标数据和所述源数据之间的数据血缘关系之后,所述数据血缘关系构建方法还包括:
获取目标血缘关系数据;所述目标血缘关系数据用于表示第一预设数据与第二预设数据的数据血缘关系;
获取血缘关系查询请求;所述血缘关系查询请求包括所述第一预设数据;
根据所述目标血缘关系数据对所述第一预设数据进行数据血缘关系查询,得到所述第二预设数据。
8.数据血缘关系构建装置,其特征在于,所述装置包括:
数据查询语句获取模块,用于获取结构化数据查询语句;所述结构化数据查询语句包括数据操作关键字、目的字段、数据来源关键字、数据来源字段;
数据查询语句解析模块,用于对所述结构化数据查询语句进行语句解析,得到目标语法树;其中,所述目标语法树是抽象语法树;
语法树遍历模块,用于对所述目标语法树进行遍历,得到所述数据操作关键字的数据操作节点、所述数据来源关键字的数据来源节点;
第一表信息查询模块,用于对所述数据操作节点进行表信息查询,得到所述目的字段的目的表名称;
第二表信息查询模块,用于对所述数据来源节点进行表信息查询,得到所述数据来源字段的来源表名称;
数据获取模块,用于根据所述目的表名称获取目标数据,根据所述来源表名称获取源数据;
数据血缘关系构建模块,用于根据所述目的表名称和所述来源表名称构建所述目标数据和所述源数据之间的数据血缘关系。
9.电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的数据血缘关系构建方法。
10.计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的数据血缘关系构建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311532958.0A CN117472940A (zh) | 2023-11-15 | 2023-11-15 | 数据血缘关系构建方法和装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311532958.0A CN117472940A (zh) | 2023-11-15 | 2023-11-15 | 数据血缘关系构建方法和装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117472940A true CN117472940A (zh) | 2024-01-30 |
Family
ID=89629172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311532958.0A Pending CN117472940A (zh) | 2023-11-15 | 2023-11-15 | 数据血缘关系构建方法和装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117472940A (zh) |
-
2023
- 2023-11-15 CN CN202311532958.0A patent/CN117472940A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109388637B (zh) | 数据仓库信息处理方法、装置、系统、介质 | |
US11068439B2 (en) | Unsupervised method for enriching RDF data sources from denormalized data | |
US9122746B2 (en) | Executing structured queries on unstructured data | |
KR102230661B1 (ko) | Sql 검토 방법, 장치, 서버 및 저장 매체 | |
CN106202207B (zh) | 一种基于HBase-ORM的索引及检索系统 | |
US6889223B2 (en) | Apparatus, method, and program for retrieving structured documents | |
US8103705B2 (en) | System and method for storing text annotations with associated type information in a structured data store | |
US11789945B2 (en) | Clause-wise text-to-SQL generation | |
CN102479252B (zh) | 查询语句转换装置及查询语句转换方法 | |
US11030242B1 (en) | Indexing and querying semi-structured documents using a key-value store | |
WO2021139426A1 (zh) | 查询数据库数据的方法、装置、设备和存储介质 | |
US11914592B2 (en) | Systems and methods for processing structured queries over clusters | |
US9043321B2 (en) | Enhancing cluster analysis using document metadata | |
CN113051268A (zh) | 数据查询方法、数据查询装置、电子设备及存储介质 | |
CN112579610A (zh) | 多数据源结构分析方法、系统、终端设备及存储介质 | |
CN114461603A (zh) | 多源异构数据融合方法及装置 | |
WO2018127747A1 (en) | A method, apparatus and computer program product for user-directed database configuration, and automated mining and conversion of data | |
CN116034349A (zh) | 列式分析存储格式的半结构化数据的概率文本索引 | |
CN116483850A (zh) | 数据处理方法、装置、设备以及介质 | |
CN114117242A (zh) | 数据查询方法和装置、计算机设备、存储介质 | |
CN111782738B (zh) | 构建数据仓库表级别血缘关系的方法及装置 | |
CN108614821B (zh) | 地质资料互联互查系统 | |
CN117472940A (zh) | 数据血缘关系构建方法和装置、电子设备及存储介质 | |
CN114791882A (zh) | 变量命名冲突解决方法和装置、电子设备、存储介质 | |
CN111782958A (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 |