CN110633333A - 数据血缘关系的处理方法及***、计算设备和介质 - Google Patents
数据血缘关系的处理方法及***、计算设备和介质 Download PDFInfo
- Publication number
- CN110633333A CN110633333A CN201910915599.4A CN201910915599A CN110633333A CN 110633333 A CN110633333 A CN 110633333A CN 201910915599 A CN201910915599 A CN 201910915599A CN 110633333 A CN110633333 A CN 110633333A
- Authority
- CN
- China
- Prior art keywords
- execution
- node
- query
- binary
- fields
- 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 43
- 210000004369 blood Anatomy 0.000 title claims abstract description 43
- 238000003672 processing method Methods 0.000 title description 5
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000012545 processing Methods 0.000 claims abstract description 50
- 238000003860 storage Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 15
- 238000000638 solvent extraction Methods 0.000 claims description 14
- 238000010276 construction Methods 0.000 claims description 6
- 230000000875 corresponding effect Effects 0.000 description 109
- 238000010586 diagram Methods 0.000 description 17
- 238000004458 analytical method Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 11
- 230000015654 memory Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 3
- 238000013499 data model Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种数据血缘关系的处理方法,包括:获取目标查询语句,目标查询语句包括多个查询字段;解析目标查询语句,以确定根节点、与根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段;利用根节点、与根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段,构建执行计划树;以及基于执行计划树,获得多个查询字段之间的数据血缘关系。另外,本公开还提供了一种数据血缘关系的处理***、计算设备和介质。
Description
技术领域
本公开涉及数据处理领域,更具体地,涉及一种数据血缘关系的处理方法及***、电子设备和介质。
背景技术
数据仓库是一个面向主题的、集成的、非易失的且随时间变化的数据集合,用来支持管理人员的决策。数据仓库把企业内生产***的业务数据经过清洗、抽取、转换,形成可用于分析、分主题的数据模型,分析人员通过技术手段对模型数据进行分析,用来支撑管理人员的决策。随着业务的不断发展,数据仓库不断地抽取新的业务数据、创建新的数据模型,元数据表管理变得越来越重要。元数据表血缘关系能够清晰和明确的描述数据入库、加工、出库的流向,同时能够清晰的描述某些业务数据变更对下游数据产生的影响。
数据仓库的血缘关系分析可以分成表级别的血缘关系分析和字段级别血缘关系分析。其中,表级别的血缘关系,即“表与表之间的关系”。字段级别血缘关系,即“字段与字段之间的关系”。
相关技术提供了一些针对数据仓库的血缘关系分析方案。例如,解析SQL(Structured Query Language,结构化查询语言),包括SQLParser、Druid、Hive AST(Abstract Syntax Tree,抽象语法树);通过Job History的Input和Output解析;ApacheAtlas;星环等平台提供的字段级血缘关系分析工具以及基于AST树的深度优先遍历。
发明内容
有鉴于此,本公开提供了一种数据血缘关系的处理方法及***、电子设备和介质。
本公开的一个方面提供了一种数据血缘关系的处理方法,包括:获取目标查询语句,上述目标查询语句包括多个查询字段,解析上述目标查询语句,以确定根节点、与上述根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段,利用上述根节点、与上述根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段,构建执行计划树,以及基于上述执行计划树,获得上述多个查询字段之间的数据血缘关系。
根据本公开的实施例,上述基于上述执行计划树,获得上述多个查询字段之间的数据血缘关系包括:确定包含在所述执行计划树中的至少一个二叉节点;针对所述至少一个二叉节点中的每个二叉节点,执行块划分,以获得隶属于所述每个二叉节点的两个查询块;以及递归处理所述每个二叉节点的两个查询块,以获得所述多个查询字段之间的数据血缘关系。
根据本公开的实施例,上述执行计划树包含一个二叉节点,所述递归处理所述每个二叉节点的两个查询块,以获得所述多个查询字段之间的数据血缘关系包括:获取隶属于所述二叉节点的两个查询块对应的执行字段;递归处理与所述两个查询块对应的执行字段,以获得与上述二叉节点对应的数据血缘关系,以及基于与上述二叉节点对应的数据血缘关系,获得上述多个查询字段之间的数据血缘关系。
根据本公开的实施例,上述执行计划树包含多个二叉节点,所述递归处理所述每个二叉节点的两个查询块,以获得所述多个查询字段之间的数据血缘关系包括:按照指向所述根节点的方向,确定所述每个二叉节点的遍历顺序,获取隶属于所述每个二叉节点的两个查询块对应的执行字段;按照上述每个二叉节点的遍历顺序,递归处理与所述两个查询块对应的执行字段,以获得与上述每个二叉节点对应的数据血缘关系,以及基于与上述每个二叉节点对应的数据血缘关系,获得上述多个查询字段之间的数据血缘关系。
根据本公开的实施例,上述解析上述目标查询语句,以确定根节点、与上述根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段包括:解析上述目标查询语句,以生成相应的执行计划集,上述执行计划集包含多条执行计划,基于上述多条执行计划,获取每条执行计划包含的执行节点和与上述执行节点对应的执行字段,确定上述每条执行计划包含的执行节点的节点属性,基于上述节点属性,确定根节点和多个叶子节点,以及基于与上述执行节点对应的执行字段,确定与上述根节点对应的执行字段以及与每个叶子节点对应的执行字段。
根据本公开的实施例,上述方法还包括:结构化存储上述多个查询字段之间的数据血缘关系。
本公开的另一个方面提供了一种数据血缘关系的处理***,包括:获取模块,被配置为获取目标查询语句,上述目标查询语句包括多个查询字段,确定模块,被配置为解析上述目标查询语句,以确定根节点、与上述根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段,构建模块,被配置为利用上述根节点、与上述根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段,构建执行计划树,以及获得模块,被配置为基于上述执行计划树,获得上述多个查询字段之间的数据血缘关系。
根据本公开的实施例,上述获得模块包括:第一确定子模块,被配置为确定包含在所述执行计划树中的至少一个二叉节点;划分子模块,被配置为针对所述至少一个二叉节点中的每个二叉节点,执行块划分,以获得隶属于所述每个二叉节点的两个查询块;以及获得子模块,被配置为递归处理所述每个二叉节点的两个查询块,以获得所述多个查询字段之间的数据血缘关系。
根据本公开的实施例,上述执行计划树包含一个二叉节点,所述获得子模块包括:第一获取单元,被配置为获取隶属于所述二叉节点的两个查询块对应的执行字段,第一获得单元,被配置为递归处理与所述两个查询块对应的执行字段,以获得与上述二叉节点对应的数据血缘关系,以及第二获得单元,被配置为基于与上述二叉节点对应的数据血缘关系,获得上述多个查询字段之间的数据血缘关系。
根据本公开的实施例,所述执行计划树包含多个二叉节点,上述获得子模块包括:第一确定单元,被配置为按照指向所述根节点的方向,确定所述每个二叉节点的遍历顺序,第三获取单元,被配置为获取隶属于所述每个二叉节点的两个查询块对应的执行字段;第三获得单元,被配置为按照上述每个二叉节点的遍历顺序,递归处理与所述两个查询块对应的执行字段,以获得与上述每个二叉节点对应的数据血缘关系,以及第四获得单元,被配置为基于与上述每个二叉节点对应的数据血缘关系,获得上述多个查询字段之间的数据血缘关系。
根据本公开的实施例,上述确定模块包括:解析子模块,被配置为解析上述目标查询语句,以生成相应的执行计划集,上述执行计划集包含多条执行计划,获取子模块,被配置为基于上述多条执行计划,获取每条执行计划包含的执行节点和与上述执行节点对应的执行字段,第二确定子模块,被配置为确定上述每条执行计划包含的执行节点的节点属性,第三确定子模块,被配置为基于上述节点属性,确定根节点和多个叶子节点,以及第四确定子模块,被配置为基于与上述执行节点对应的执行字段,确定与上述根节点对应的执行字段以及与每个叶子节点对应的执行字段。
根据本公开的实施例,上述***还包括:存储模块,被配置为结构化存储上述多个查询字段之间的数据血缘关系。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如上所述的方法。
根据本公开的实施例,基于Spark SQL执行计划的字段级血缘关系分析方法,实现对数据仓库内数据流向的全流程管理。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的数据血缘关系的处理方法及***的***架构;
图2示意性示出了根据本公开实施例的数据血缘关系的处理方法的流程图;
图3示意性示出了根据本公开实施例的基于执行计划树,获得多个查询字段之间的数据血缘关系的流程图;
图4示意性示出了根据本公开实施例的执行计划树的示意图;
图5示意性示出了根据本公开实施例的对执行计划树执行块划分的示意图;
图6示意性示出了根据本公开另一实施例的数据血缘关系的处理方法的流程图;
图7示意性示出了根据本公开实施例的递归处理查询块的流程图;
图8示意性示出了根据本公开实施例的递归处理二叉节点的流程图;
图9示意性示出了根据本公开实施例的数据血缘关系的处理***的框图;以及
图10示意性示出了根据本公开实施例的适于实现数据血缘关系的处理方法及***的计算机***的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
需要说明的是,本公开的上下文中涉及的术语包括块(Block)和二叉节点(简称为BinaryNode)。其中,BinaryNode是Spark执行计划中包含两个叶子节点的节点。BinaryNode通常为Join、Union等节点。Block可以为不包含Join、Union等BinaryNode属性的一个相对完整的SQL片段的集合。相对完整的SQL片段指该SQL片段包含select、from等核心可读节点的集合。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
本公开提供了一种数据血缘关系的处理方法,包括生成执行计划、执行计划预处理、数据血缘关系的处理核心流程三部分组成。具体地,首先,获取目标查询语句,目标查询语句包括多个查询字段。然后,解析目标查询语句,以确定根节点、与根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段。接着,利用根节点、与根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段,构建执行计划树。最后,基于执行计划树,获得多个查询字段之间的数据血缘关系。
图1示意性示出了根据本公开实施例的数据血缘关系的处理方法及***的***架构100。需要注意的是,图1所示仅为可以应用本公开实施例的***架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图1所示,根据该实施例的***架构100可以为大规模数据处理而设计的快速通用的计算引擎,例如,Apache Spark(简称为Spark)。Spark是一种与Hadoop相似的开源集群计算环境。Spark提供了大量的库,包括Spark Core、Spark SQL、Spark Streaming、MLlib、GraphX。开发者可以在同一个应用程序中无缝组合使用这些库。Spark可以支持HadoopYARN,Apache Mesos,以及其自带的独立集群管理器。
本公开提供了一种基于Spark SQL的字段级别血缘关系分析方法。
图2示意性示出了根据本公开实施例的数据血缘关系的处理方法的流程图。
如图2所示,该方法包括操作S210~操作S240。
在操作S210,获取目标查询语句,目标查询语句包括多个查询字段。
在操作S220,解析目标查询语句,以确定根节点、与根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段。
在操作S230,利用根节点、与根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段,构建执行计划树。
根据本公开的实施例,可以使用如图1所示的***架构中Spark SQL库提供的SparkSqlParser类中的parsePlan方法生成执行计划树(LogicalPlan)。
具体地,前述操作S220(解析目标查询语句,以确定根节点、与根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段)包括:解析目标查询语句,以生成相应的执行计划集,执行计划集包含多条执行计划,基于多条执行计划,获取每条执行计划包含的执行节点和与执行节点对应的执行字段,确定每条执行计划包含的执行节点的节点属性,基于节点属性,确定根节点和多个叶子节点,以及基于与执行节点对应的执行字段,确定与根节点对应的执行字段以及与每个叶子节点对应的执行字段。
为了便于理解,以以下目标查询语句(简称为SQL)为例,说明前述操作S220的执行过程。
select t.ku_name,t.num_tb from(
select ku_name,num_tb,tb1_name from app.app_cluster_table_store_d twhere dt=sysdate(-1)and db_cluster_name=′hope′and db_mart=′recsys′)t
left join(select tbl_name from app.app_cluster_table_store_dt wheredt=sysdate(-1)and db_cluster_name=′10k′and db_mart=′dd_edw′)b
on t.tbl name=b.tbl name where b.tbl name is not null
解析上述SQL,可以生成如下所示与SQL相应的执行计划集。该执行计划集包括索引号从“00”到“12”的13条执行计划,其中,一个索引号对应一条执行计划。每条执行计划包含执行节点和与执行节点对应的执行字段。
例如,对索引号为“02”的执行计划而言,该条执行计划包含的执行节点为“Join”,与该执行节点对应的执行字段为“LeftOuter,(′t.tbl_name=′b.tbl_name)”。对索引号为“07”的执行计划而言,该条执行计划包含的执行节点为“UnresolvedRelation”,与该执行节点对应的执行字段为“`app`.`app_cluster_table_store_d`”。同理,可以获取每条执行计划包含的执行节点和与执行节点对应的执行字段。
由执行节点“Join”的节点属性可知,该执行节点包含两个叶子节点的节点,即二叉节点。基于上述各执行节点可以创建计划执行树(Logical Plan)。该计划执行树以Spark内置的树状结构(Unresolved Logical Plan)存储。具体地,可以结合执行计划树的数据结构为一棵树的特性,针对每条执行计划获取对应的分割节点名称(nodeName)、索引位置(1ocation)、是否有兄弟节点(hasBrother)、是否为父亲节点(isParent)、子节点的索引位置(sons),并结构化存储到数组中,供后续血缘关系处理使用。以Join节点为例:
nodeName:Join,index:3,hasBrother:false,value:LeftOuter,(′t.tbl_name=′b.tbl_name),location:2,parentsLocation:-9,brotherLocation:-9,isParent:true,sons:3#8
如上所示,结构化存储属性数据包括:分割节点名称(nodeName:Join)、索引位置(1ocation:2)、是否有兄弟节点(hasBrother:false,value:LeftOuter,(′t.tbl_name=b.tbl_name))、是否为父亲节点(isParent:true)、子节点的索引位置(sons:3#8)。
作为一种可选的实施例,Logical Plan转化为结构化实例后,还可以按照Block块的定义进行Block的划分。
在操作S240,基于执行计划树,获得多个查询字段之间的数据血缘关系。
作为一种可选的实施例,图3示意性示出了根据本公开实施例的基于执行计划树,获得多个查询字段之间的数据血缘关系的流程图。
如图所示,前述操作S240(基于执行计划树,获得多个查询字段之间的数据血缘关系)可以包括操作S310~操作S330。
在操作S310,确定包含在执行计划树中的至少一个二叉节点。
可以理解,执行计划树可以包含一个二叉节点,也可以包含多个二叉节点,为了说明简便,下文将以执行计划树包含一个二叉节点为例,阐明基于执行计划树,获得多个查询字段之间的数据血缘关系的流程。而执行计划树包含多个二叉节点的情况,本领域技术人员可以以此类推,本公开不再赘述。
图4示意性示出了根据本公开实施例的执行计划树的示意图。
如图4所示,该执行计划树包括1个根节点和12个子节点。
1个根节点为“Project”,与其对应的执行字段“[′t.ku_name@#@′t.num_tb]”。
12个子节点分别为:
子节点1“Fliter”,与其对应的执行字段“isnotnull(′b.tbl_name)”。
子节点2“Join”,与其对应的执行字段“LeftOuter,(′t.tbl_name=′b.tb1_name)”。
子节点3“SubqueryAlias”,与其对应的执行字段“t”。
子节点4“Project”,与其对应的执行字段“[′ku_name@#@′num_tb@#@′tbl_name]”。
子节点5“Fliter”,与其对应的执行字段“(((′dt=′sysdate(-1))&&(′db_cluster_name=hope))&&(′db_mart=recsys))”。
子节点6“SubqueryAlias”,与其对应的执行字段“t”。
子节点7“UnresolvedRelation”,与其对应的执行字段“`app`.`app_cluster_table_store_d`”。
子节点8“SubqueryAlias”,与其对应的执行字段“b”。
子节点9“Project”,与其对应的执行字段“[′tbl_name]”。
子节点10“Fliter”,与其对应的执行字段“(((′dt=′sysdate(-1))&&(′db_cluster_name=10k))&&(′db_mart=dd_edw))”。
子节点11“SubqueryAlias”,与其对应的执行字段“t”。
子节点12“UnresolvedRelation”,与其对应的执行字段“`app`.`app_cluster_table_store_d`”。
根据执行计划树的树结构可以看出,上述12个子节点中子节点2“Join”为二叉节点。
在操作S320,针对至少一个二叉节点中的每个二叉节点,执行块划分,以获得隶属于每个二叉节点的两个查询块。
在本公开中,针对二叉节点“Join”,执行块划分,可以获得隶属于该二叉节点“Join”的两个查询块,即第一子查询块(包含子节点3“SubqueryAlias”、子节点4“Project”、子节点5“Fliter”、子节点6“SubqueryAlias”和子节点7“UnresolvedRelation”)和第二子查询块(包含子节点8“SubqueryAlias”、子节点9“Project”、子节点10“Fliter”、子节点11“SubqueryAlias”和子节点12“UnresolvedRelation”)。
图5示意性示出了根据本公开实施例的对执行计划树执行块划分的示意图。
如图5所示,Join后的两个子查询被定义成两个不同的Block,即第一子查询块(Block t)和第二子查询块(Block b)。
在操作S330,递归处理每个二叉节点的两个查询块,以获得多个查询字段之间的数据血缘关系。
结合图5所示的块划分之后的执行计划树,递归处理第一子查询块(Block t)和第二子查询块(Block b),可以获得多个查询字段之间的数据血缘关系。
作为一种可选的实施例,在执行计划树包含一个二叉节点的情况下,前述操作S330可以包括:获取隶属于二叉节点的两个查询块对应的执行字段,递归处理与与两个查询块对应的执行字段,以获得与二叉节点对应的数据血缘关系,以及基于与二叉节点对应的数据血缘关系,获得多个查询字段之间的数据血缘关系。
作为一种可选的实施例,递归处理Block内的血缘关系如下所述。
如果Block内的SQL包含Join等BinaryNode,则Block内可能包含多个小的Block块查询,则可以把Block切分到最细粒度,以获得子查询块。以select a from(select t as afrom dst)target为例。按照图5所示的块划分方法处理该SQL可以得到两个Block块,即Block1(select t as a from dst)和Block2(select a from target)。两个Block块之间的纽带即target是Block1的别名。根据两个Block块之间的别名关系,可以关联出查询字段a来自于源表“dst”的t字段,最终把该结果输出作为Block内的血缘关系的解析结果。
如果该SQL不包含Join等BinaryNode,则直接可以生成Block内的血缘关系的解析结果。
作为一种可选的实施例,在执行计划树包含多个二叉节点的情况下,前述操作S330可以包括:按照指向根节点的方向,确定每个二叉节点的遍历顺序,获取隶属于每个二叉节点的两个查询块对应的执行字段;按照每个二叉节点的遍历顺序,递归处理与两个查询块对应的执行字段,以获得与每个二叉节点对应的数据血缘关系,以及基于与每个二叉节点对应的数据血缘关系,获得多个查询字段之间的数据血缘关系。
作为一种可选的实施例,BinaryNode数据递归处理如下所述。从叶子节点开始向根节点遍历的方向,可以确定第一个遍历的BinaryNode,递归处理第一个遍历的BinaryNode包含的两个查询块,可以获得第一个遍历的BinaryNode对应的数据血缘关系,继续开始向上遍历BinaryNode,执行Block划分,遍历的终止条件为当前遍历节点不为BinaryNode。此时BinaryNode的子节点和遍历节点组成新的Block。
如果该BinaryNode包含的两个子节点均为Block,则按照BinaryNode上层的递归结果确定的对应查询字段的数据血缘关系,分别从BinaryNode的两个子Block中查找对应的字段对应关系,生成该BinaryNode的血缘关系,同时把该BinaryNode Block的解析结果存储在Map对象中,Map对象用于保存具有映射关系的数据,Map对象中保存两个值,一个是键(Key),一个是值(Value)。Key和Value之间存在单向一对一的关系,通过Key,可以找到唯一的,确定的Value。例如,Key可以是查询字段,Value可以是与该查询字段对应的血缘关系解析结果。
如果该BinaryNode的两个子节点中包含BinaryNode子节点和普通节点,则可以把该BinaryNode的子节点包含的普通Block的血缘关系存储在Map对象中。
按照上述逻辑递归处理BinaryNode,并把每次处理的BinaryNode的血缘关系对象存储在Map对象中,供后续递归使用。
当递归到最后一个BinaryNode时,把所存储的BinaryNode Block的Map数据、BinaryNode子节点中的Block的Map数据整合,按照BinaryNode上层的查询节点的字段对应关系,从上述Map对象中查找对应的字段对应关系,生成新的Map对象。
通过本公开的实施例,采用Spark SQL的Logical Plan生成SQL的执行计划树,根据执行计划树包含的多个不同节点对应的节点属性可以,把执行计划树翻译成可读性较强的执行对象(执行节点和与执行节点对应的执行字段)。同时,基于Block的SQL拆分技术,可以把SQL拆分成普通Block和BinaryNode Block,通过递归处理打通相邻Block之间的执行字段之间的加工逻辑,可以形成SQL的血缘关系图谱。
根据本公开的实施例,方法还包括:结构化存储多个查询字段之间的数据血缘关系。
通过本公开的实施例,可以将上述血缘关系输出落地成hive表,供后续分析、展现使用。
图6示意性示出了根据本公开另一实施例的数据血缘关系的处理方法的流程图。
如图6所示,该方法可以包括操作S610~S619。
在操作S610,数据准备。
在操作S611,生成Spark SQL Logical Plan。
在操作S612,执行计划每个节点属性预处理。
在操作S613,拆分Block。
在操作S614,递归Block生成Block血缘关系。
在操作S615,检测是否包含BinaryNode节点。若是,则执行操作S616。若否,则执行操作S619。
在操作S616,BinaryNode节点数据处理。
在操作S617,BinaryNode节点外Block数据处理。
在操作S618,递归处理BinaryNode数据。
在操作S619,生成最终血缘关系图谱。
图7示意性示出了根据本公开实施例的递归处理查询块的流程图。
如图7所示,该方法可以包括操作S710~S715。
在操作S710,Block内数据放入堆栈中。
在操作S711,检测堆栈是否为空。若是,则结束。若否,则执行操作S712。
在操作S712,推出一个元素。
在操作S713,检测是否为SubqueryAlias或Insert。若是,则执行操作S714。若否,则执行操作S715。
在操作S714,对象属性放入list,对象重新实例化。
在操作S715,Block元素解析存入对象属性。
图8示意性示出了根据本公开实施例的递归处理二叉节点的流程图。
如图8所示,该方法可以包括操作S810~S815。
在操作S810,BinaryNode放入堆栈。
在操作S811,检测堆栈是否为空。若是,则执行操作S815。若否,则执行操作S812。
在操作S812,推出一个BinaryNode。
在操作S813,递归生成BinaryNode的Block。
在操作S814,生成Block的血缘关系。
在操作S815,输出血缘关系。
图9示意性示出了根据本公开实施例的数据血缘关系的处理***的框图。
如图9所示,该处理***900包括获取模块910、确定模块920、构建模块930和获得模块940。
获取模块910,被配置为例如执行前述操作S210,获取目标查询语句,目标查询语句包括多个查询字段。
确定模块920,被配置为例如执行前述操作S220,解析目标查询语句,以确定根节点、与根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段。
构建模块930,被配置为例如执行前述操作S230,利用根节点、与根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段,构建执行计划树。
获得模块940,被配置为例如执行前述操作S240,基于执行计划树,获得多个查询字段之间的数据血缘关系。
根据本公开的实施例,前述获得模块940可以包括:第一确定子模块,被配置为确定包含在执行计划树中的至少一个二叉节点;划分子模块,被配置为针对至少一个二叉节点中的每个二叉节点,执行块划分,以获得隶属于每个二叉节点的两个查询块,以及获得子模块,被配置为递归处理每个二叉节点的两个查询块,以获得多个查询字段之间的数据血缘关系。
根据本公开的实施例,上述执行计划树包含一个二叉节点,获得子模块包括:第一获取单元,被配置为获取隶属于二叉节点的两个查询块对应的执行字段,第一获得单元,被配置为递归处理与两个查询块对应的执行字段,以获得与上述二叉节点对应的数据血缘关系,以及第二获得单元,被配置为基于与上述二叉节点对应的数据血缘关系,获得上述多个查询字段之间的数据血缘关系。
根据本公开的实施例,执行计划树包含多个二叉节点,上述获得子模块包括:第一确定单元,被配置为按照指向根节点的方向,确定每个二叉节点的遍历顺序,第三获取单元,被配置为获取隶属于每个二叉节点的两个查询块对应的执行字段;第三获得单元,被配置为按照上述每个二叉节点的遍历顺序,递归处理与两个查询块对应的执行字段,以获得与上述每个二叉节点对应的数据血缘关系,以及第四获得单元,被配置为基于与上述每个二叉节点对应的数据血缘关系,获得上述多个查询字段之间的数据血缘关系。
根据本公开的实施例,前述确定模块920可以包括:解析子模块,被配置为解析目标查询语句,以生成相应的执行计划集,执行计划集包含多条执行计划,获取子模块,被配置为基于多条执行计划,获取每条执行计划包含的执行节点和与执行节点对应的执行字段,第二确定子模块,被配置为确定每条执行计划包含的执行节点的节点属性,第三确定子模块,被配置为基于节点属性,确定根节点和多个叶子节点,以及第四确定子模块,被配置为基于与执行节点对应的执行字段,确定与根节点对应的执行字段以及与每个叶子节点对应的执行字段。
通过本公开的实施例,采用Spark SQL的Logical Plan生成SQL的执行计划树,根据执行计划树包含的多个不同节点对应的节点属性可以,把执行计划树翻译成可读性较强的执行对象(执行节点和与执行节点对应的执行字段)。同时,基于Block的SQL拆分技术,可以把SQL拆分成普通Block和BinaryNode Block,通过递归处理打通相邻Block之间的执行字段之间的加工逻辑,可以形成SQL的血缘关系图谱。
根据本公开的实施例,前述***900还可以包括:存储模块,被配置为结构化存储多个查询字段之间的数据血缘关系。
通过本公开的实施例,可以将上述血缘关系输出落地成hive表,供后续分析、展现使用。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块910、确定模块920、构建模块930和获得模块940、第一确定子模块、划分子模块、获得子模块、第一获取单元、第一获得单元、第二获得单元、第一确定单元、第三获取单元、第三获得单元、第四获得单元、解析子模块、获取子模块以及第二确定子模块、第三确定子模块、第四确定子模块以及存储模块中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块910、确定模块920、构建模块930和获得模块940、第一确定子模块、划分子模块、获得子模块、第一获取单元、第一获得单元、第二获得单元、第一确定单元、第三获取单元、第三获得单元、第四获得单元、解析子模块、获取子模块以及第二确定子模块、第三确定子模块、第四确定子模块以及存储模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块910、确定模块920、构建模块930和获得模块940、第一确定子模块、划分子模块、获得子模块、第一获取单元、第一获得单元、第二获得单元、第一确定单元、第三获取单元、第三获得单元、第四获得单元、解析子模块、获取子模块以及第二确定子模块、第三确定子模块、第四确定子模块以及存储模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图10示意性示出了根据本公开实施例的适于实现数据血缘关系的处理方法及***的计算机***的方框图。图10示出的计算机***仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,根据本公开实施例的计算机***1000包括处理器1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。处理器1001例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1001还可以包括用于缓存用途的板载存储器。处理器1001可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1003中,存储有***1000操作所需的各种程序和数据。处理器1001、ROM1002以及RAM 1003通过总线1004彼此相连。处理器1001通过执行ROM 1002和/或RAM 1003中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1002和RAM 1003以外的一个或多个存储器中。处理器1001也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,***1000还可以包括输入/输出(I/O)接口1009,输入/输出(I/O)接口1005也连接至总线1004。***1000还可以包括连接至I/O接口1005的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被处理器1001执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1002和/或RAM 1003和/或ROM 1002和RAM 1003以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (14)
1.一种数据血缘关系的处理方法,包括:
获取目标查询语句,所述目标查询语句包括多个查询字段;
解析所述目标查询语句,以确定根节点、与所述根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段;
利用所述根节点、与所述根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段,构建执行计划树;以及
基于所述执行计划树,获得所述多个查询字段之间的数据血缘关系。
2.根据权利要求1所述的方法,其中,所述基于所述执行计划树,获得所述多个查询字段之间的数据血缘关系包括:
确定包含在所述执行计划树中的至少一个二叉节点;
针对所述至少一个二叉节点中的每个二叉节点,执行块划分,以获得隶属于所述每个二叉节点的两个查询块;以及
递归处理所述每个二叉节点的两个查询块,以获得所述多个查询字段之间的数据血缘关系。
3.根据权利要求2所述的方法,其中,所述执行计划树包含一个二叉节点,所述递归处理所述每个二叉节点的两个查询块,以获得所述多个查询字段之间的数据血缘关系包括:
获取隶属于所述二叉节点的两个查询块对应的执行字段;
递归处理与所述两个查询块对应的执行字段,以获得与所述二叉节点对应的数据血缘关系;以及
基于与所述二叉节点对应的数据血缘关系,获得所述多个查询字段之间的数据血缘关系。
4.根据权利要求2所述的方法,其中,所述执行计划树包含多个二叉节点,所述递归处理所述每个二叉节点的两个查询块,以获得所述多个查询字段之间的数据血缘关系包括:
按照指向所述根节点的方向,确定所述每个二叉节点的遍历顺序;
获取隶属于所述每个二叉节点的两个查询块对应的执行字段;
按照所述每个二叉节点的遍历顺序,递归处理与所述两个查询块对应的执行字段,以获得与所述每个二叉节点对应的数据血缘关系;以及
基于与所述每个二叉节点对应的数据血缘关系,获得所述多个查询字段之间的数据血缘关系。
5.根据权利要求1所述的方法,其中,所述解析所述目标查询语句,以确定根节点、与所述根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段包括:
解析所述目标查询语句,以生成相应的执行计划集,所述执行计划集包含多条执行计划;
基于所述多条执行计划,获取每条执行计划包含的执行节点和与所述执行节点对应的执行字段;
确定所述每条执行计划包含的执行节点的节点属性;
基于所述节点属性,确定根节点和多个叶子节点;以及
基于与所述执行节点对应的执行字段,确定与所述根节点对应的执行字段以及与每个叶子节点对应的执行字段。
6.根据权利要求1所述的方法,其中,所述方法还包括:
结构化存储所述多个查询字段之间的数据血缘关系。
7.一种数据血缘关系的处理***,包括:
获取模块,被配置为获取目标查询语句,所述目标查询语句包括多个查询字段;
确定模块,被配置为解析所述目标查询语句,以确定根节点、与所述根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段;
构建模块,被配置为利用所述根节点、与所述根节点对应的执行字段、多个叶子节点和与每个叶子节点对应的执行字段,构建执行计划树;以及
获得模块,被配置为基于所述执行计划树,获得所述多个查询字段之间的数据血缘关系。
8.根据权利要求7所述的***,其中,所述获得模块包括:
第一确定子模块,被配置为确定包含在所述执行计划树中的至少一个二叉节点;
划分子模块,被配置为针对所述至少一个二叉节点中的每个二叉节点,执行块划分,以获得隶属于所述每个二叉节点的两个查询块;以及
获得子模块,被配置为递归处理所述每个二叉节点的两个查询块,以获得所述多个查询字段之间的数据血缘关系。
9.根据权利要求7所述的***,其中,所述执行计划树包含一个二叉节点,所述获得子模块包括:
第一获取单元,被配置为获取隶属于所述二叉节点的两个查询块对应的执行字段;
第一获得单元,被配置为递归处理与所述两个查询块对应的执行字段,以获得与所述二叉节点对应的数据血缘关系;以及
第二获得单元,被配置为基于与所述二叉节点对应的数据血缘关系,获得所述多个查询字段之间的数据血缘关系。
10.根据权利要求7所述的***,其中,所述执行计划树包含多个二叉节点,所述获得子模块包括:
第一确定单元,被配置为按照指向所述根节点的方向,确定所述每个二叉节点的遍历顺序;
第二获取单元,被配置为获取隶属于所述每个二叉节点的两个查询块对应的执行字段;
第二获得单元,被配置为按照所述每个二叉节点的遍历顺序,递归处理与与所述两个查询块对应的执行字段,以获得与所述每个二叉节点对应的数据血缘关系;以及
第三获得单元,被配置为基于与所述每个二叉节点对应的数据血缘关系,获得所述多个查询字段之间的数据血缘关系。
11.根据权利要求7所述的***,其中,所述确定模块包括:
解析子模块,被配置为解析所述目标查询语句,以生成相应的执行计划集,所述执行计划集包含多条执行计划;
获取子模块,被配置为基于所述多条执行计划,获取每条执行计划包含的执行节点和与所述执行节点对应的执行字段;
第二确定子模块,被配置为确定所述每条执行计划包含的执行节点的节点属性;
第三确定子模块,被配置为基于所述节点属性,确定根节点和多个叶子节点;以及
第四确定子模块,被配置为基于与所述执行节点对应的执行字段,确定与所述根节点对应的执行字段以及与每个叶子节点对应的执行字段。
12.根据权利要求7所述的***,其中,所述***还包括:
存储模块,被配置为结构化存储所述多个查询字段之间的数据血缘关系。
13.一种计算设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现权利要求1至6中任一项的方法。
14.一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至6中任一项的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910915599.4A CN110633333A (zh) | 2019-09-25 | 2019-09-25 | 数据血缘关系的处理方法及***、计算设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910915599.4A CN110633333A (zh) | 2019-09-25 | 2019-09-25 | 数据血缘关系的处理方法及***、计算设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110633333A true CN110633333A (zh) | 2019-12-31 |
Family
ID=68974169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910915599.4A Pending CN110633333A (zh) | 2019-09-25 | 2019-09-25 | 数据血缘关系的处理方法及***、计算设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110633333A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860811A (zh) * | 2021-02-05 | 2021-05-28 | 北京百度网讯科技有限公司 | 数据血缘关系的确定方法、装置、电子设备和存储介质 |
CN113297212A (zh) * | 2021-04-28 | 2021-08-24 | 上海淇玥信息技术有限公司 | 一种基于物化视图的Spark查询方法、装置及电子设备 |
CN115080599A (zh) * | 2022-07-25 | 2022-09-20 | 成都烽顺科技有限公司 | 一种数据库查询sql字段血缘关系生成方法 |
WO2024109376A1 (zh) * | 2022-11-22 | 2024-05-30 | 中兴通讯股份有限公司 | 一种数据处理的方法、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030204513A1 (en) * | 2002-04-25 | 2003-10-30 | Sybase, Inc. | System and methodology for providing compact B-Tree |
CN107180053A (zh) * | 2016-03-11 | 2017-09-19 | ***通信集团河北有限公司 | 一种数据仓库优化方法和装置 |
CN107644073A (zh) * | 2017-09-18 | 2018-01-30 | 广东中标数据科技股份有限公司 | 一种基于深度优先遍历的字段血缘分析方法、***及装置 |
CN108256113A (zh) * | 2018-02-09 | 2018-07-06 | 口碑(上海)信息技术有限公司 | 数据血缘关系的挖掘方法及装置 |
CN109325078A (zh) * | 2018-09-18 | 2019-02-12 | 拉扎斯网络科技(上海)有限公司 | 基于结构数据的数据血缘确定方法及装置 |
CN109542901A (zh) * | 2018-11-12 | 2019-03-29 | 北京懿医云科技有限公司 | 数据处理方法、装置、计算机可读存储介质及电子设备 |
CN110263155A (zh) * | 2019-05-21 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 数据分类方法、数据分类模型的训练方法及*** |
-
2019
- 2019-09-25 CN CN201910915599.4A patent/CN110633333A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030204513A1 (en) * | 2002-04-25 | 2003-10-30 | Sybase, Inc. | System and methodology for providing compact B-Tree |
CN107180053A (zh) * | 2016-03-11 | 2017-09-19 | ***通信集团河北有限公司 | 一种数据仓库优化方法和装置 |
CN107644073A (zh) * | 2017-09-18 | 2018-01-30 | 广东中标数据科技股份有限公司 | 一种基于深度优先遍历的字段血缘分析方法、***及装置 |
CN108256113A (zh) * | 2018-02-09 | 2018-07-06 | 口碑(上海)信息技术有限公司 | 数据血缘关系的挖掘方法及装置 |
CN109325078A (zh) * | 2018-09-18 | 2019-02-12 | 拉扎斯网络科技(上海)有限公司 | 基于结构数据的数据血缘确定方法及装置 |
CN109542901A (zh) * | 2018-11-12 | 2019-03-29 | 北京懿医云科技有限公司 | 数据处理方法、装置、计算机可读存储介质及电子设备 |
CN110263155A (zh) * | 2019-05-21 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 数据分类方法、数据分类模型的训练方法及*** |
Non-Patent Citations (1)
Title |
---|
ECHO LEE: ""Spark-SQL解析"", 《HTTPS://BLOG.CSDN.NET/LISENYEAHYEAH/ARTICLE/DETAILS/83539105》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860811A (zh) * | 2021-02-05 | 2021-05-28 | 北京百度网讯科技有限公司 | 数据血缘关系的确定方法、装置、电子设备和存储介质 |
CN112860811B (zh) * | 2021-02-05 | 2023-07-18 | 北京百度网讯科技有限公司 | 数据血缘关系的确定方法、装置、电子设备和存储介质 |
CN113297212A (zh) * | 2021-04-28 | 2021-08-24 | 上海淇玥信息技术有限公司 | 一种基于物化视图的Spark查询方法、装置及电子设备 |
CN115080599A (zh) * | 2022-07-25 | 2022-09-20 | 成都烽顺科技有限公司 | 一种数据库查询sql字段血缘关系生成方法 |
WO2024109376A1 (zh) * | 2022-11-22 | 2024-05-30 | 中兴通讯股份有限公司 | 一种数据处理的方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3475887B1 (en) | System and method for dynamic lineage tracking, reconstruction, and lifecycle management | |
CN110633333A (zh) | 数据血缘关系的处理方法及***、计算设备和介质 | |
US10628418B2 (en) | Data driven multi-provider pruning for query execution plan | |
US8219581B2 (en) | Method and system for analyzing ordered data using pattern matching in a relational database | |
CN105335403B (zh) | 数据库访问方法及装置、数据库*** | |
US9104720B2 (en) | Generation of technical description of report from functional description of report | |
Goasdoué et al. | RDF graph summarization for first-sight structure discovery | |
US11243923B2 (en) | Computing the need for standardization of a set of values | |
US10565201B2 (en) | Query processing management in a database management system | |
US11144549B2 (en) | Dynamic generation of join statements for database operations | |
Elzein et al. | Managing big RDF data in clouds: Challenges, opportunities, and solutions | |
US11698918B2 (en) | System and method for content-based data visualization using a universal knowledge graph | |
US10901963B2 (en) | Database entity analysis | |
US11182370B2 (en) | Reorganizing a data table to improve analytical database performance | |
Shakhovska et al. | Big data federated repository model | |
US20160342646A1 (en) | Database query cursor management | |
CN114461603A (zh) | 多源异构数据融合方法及装置 | |
Zhang et al. | A Map-Reduce based parallel approach for improving query performance in a geospatial semantic web for disaster response | |
US8756169B2 (en) | Feature specification via semantic queries | |
US11847121B2 (en) | Compound predicate query statement transformation | |
CN113535781B (zh) | 一种时序库的数据查询方法、装置、设备及存储介质 | |
US11449504B2 (en) | Database partition pruning using dependency graph | |
US20160314170A1 (en) | SQL Join Plan Representation | |
US20200311067A1 (en) | Database partition pruning using dependency graph | |
US20140074875A1 (en) | Device and method for managing structured document, and computer program product |
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 |
Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176 Applicant after: Jingdong Technology Holding Co.,Ltd. Address before: Room 221, floor 2, block C, No. 18, Kechuang 11th Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing 100176 Applicant before: JINGDONG DIGITAL TECHNOLOGY HOLDINGS Co.,Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191231 |
|
RJ01 | Rejection of invention patent application after publication |