CN112753029A - 用于基于图的查询分析的***和方法 - Google Patents
用于基于图的查询分析的***和方法 Download PDFInfo
- Publication number
- CN112753029A CN112753029A CN201980062106.5A CN201980062106A CN112753029A CN 112753029 A CN112753029 A CN 112753029A CN 201980062106 A CN201980062106 A CN 201980062106A CN 112753029 A CN112753029 A CN 112753029A
- Authority
- CN
- China
- Prior art keywords
- query
- data
- graph
- nodes
- lineage
- 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
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000004458 analytical method Methods 0.000 title description 27
- 230000015654 memory Effects 0.000 claims abstract description 50
- 230000006870 function Effects 0.000 claims description 31
- 238000012800 visualization Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 27
- 238000003860 storage Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000007405 data analysis Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 230000009466 transformation Effects 0.000 description 7
- 238000013523 data management Methods 0.000 description 6
- 238000000844 transformation Methods 0.000 description 6
- 230000002776 aggregation Effects 0.000 description 5
- 238000004220 aggregation Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000004931 aggregating effect Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000004927 fusion Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013501 data transformation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 102100038367 Gremlin-1 Human genes 0.000 description 1
- 101001032872 Homo sapiens Gremlin-1 Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- 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/2453—Query optimisation
-
- 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
- G06F16/285—Clustering or classification
- G06F16/287—Visualization; Browsing
-
- 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
- G06F16/288—Entity relationship models
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)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了一种根据数据库查询确定数据血统的计算机实现的方法。解析接收到的数据库查询以检测与多个数据流相关联的多个数据实体。生成与所述接收到的数据库查询相关联的查询图,其中,所述查询图包括通过边缘连接的多个节点。所述多个节点对应于所述多个数据实体,所述边缘对应于所述多个数据流。数据血统查询从存储器中检索。所述数据血统查询包括与所述生成的查询图内的所述多个节点相关联的所述多个数据实体中的一个或多个数据实体。所述生成的查询图的表示根据所述数据血统查询输出。
Description
相关申请的交叉引用
本申请要求2018年9月20日递交的发明名称为“用于基于图的查询分析的***和方法(Systems And Methods For Graph-Based Query Analysis)”的第62/733,998号美国临时专利申请的优先权,该申请的全部内容通过引用并入本文。
技术领域
本发明涉及数据血统管理,具体地,涉及用于细粒度数据血统管理的基于图的查询分析的***和方法。
背景技术
数据血统是数据的基因,它描述了数据在经历不同的过程和数据操作时发生的情况。更具体地,数据血统使分析管道可见,并简化了对错误溯源的过程。现在,企业可以使用数据血统分析来发现最终数据报告中检测到异常时可能的因果关系,或评估数据表修改所造成的影响。此类数据管理和分析任务对于维持业务的正常运营至关重要。
在“大数据”环境中,企业可能有大量数据源需要合并、连接、过滤等,以定期生成数据报告,这使维护数据血统的复杂性增加。因此,表示、管理和评估数据血统的工具对公司来说是必不可少的。
发明内容
现在描述各种示例,简单地介绍一些概念,在具体实施方式中会进一步描述这些概念。发明内容并非旨在确定请求保护的主题的关键或必要特征,也并非旨在用于限制请求保护的主题的范围。
根据本发明的第一方面,提供了一种根据数据库查询确定数据血统的计算机实现的方法。解析接收到的数据库查询以检测与多个数据流相关联的多个数据实体。根据所述接收到的数据库查询生成查询图。所述查询图包括多个通过边缘连接的节点。所述多个节点对应于所述多个数据实体,所述边缘对应于所述多个数据流。数据血统查询从存储器中检索。所述数据血统查询包括与所述生成的查询图内的所述多个节点相关联的所述多个数据实体中的一个或多个数据实体。所述生成的查询图的表示根据所述数据血统查询输出。
在所述第一方面提供的所述方法的第一种实现方式中,检索至少一个第二查询图,其中,所述第二查询图包括与所述生成的查询图共用的至少一个节点。
在所述第一方面或所述第一方面的任一前述实现方式提供的所述方法的第二种实现方式中,与所述生成的查询图共用的所述至少一个节点包括以下各项中的至少一个:数据表、表列、数据视图、查询结果集和用户定义函数。在这方面,通过在生成查询图的过程中对用户定义的表、列和数据转换(包括用户定义函数)建模,可以在图中涉及细粒度操作,从而允许与数据血统相关联的细粒度数据分析。
在所述第一方面或所述第一方面的任一前述实现方式提供的所述方法的第三种实现方式中,根据所述查询图和所述第二查询图生成组合属性图。所述组合属性图从所述查询图内的起始节点开始通过所述至少一个共用节点跟踪数据的数据血统并终止于输出所述数据的最终表示的节点。在这方面,可以通过合并引用相同实体(例如,数据表、UDF等)的顶点/节点来聚合查询图,这有助于生成聚合属性图,以便所有影响路径都自然地呈现在具有高性能访问优化的血统图中。此外,另一个益处在于,可以对聚合血统图执行数据血统分析,从而生成更详细的数据血统报告,该报告可以根据结合所述聚合属性图执行的数据血统查询生成。
在所述第一方面或所述第一方面的任一前述实现方式提供的所述方法的第四种实现方式中,使用所述组合属性图并根据所述数据血统查询输出图可视化或JavaScript对象表示法(JavaScript Object Notation,JSON)。所述图可视化基于所述组合属性图的至少一部分,所述至少一部分包括对应于所述查询中引用的所述多个数据实体的节点。
在所述第一方面或所述第一方面的任一前述实现方式提供的所述方法的第五种实现方式中,将所述数据血统查询转换为与所述生成的查询图兼容的一个或多个图查询语言。
在所述第一方面或所述第一方面的任一前述实现方式提供的所述方法的第六种实现方式中,检测所述多个数据实体的多个属性。对应于所述多个数据实体的所述多个节点附加有所述多个属性。
在所述第一方面或所述第一方面的任一前述实现方式提供的所述方法的第七种实现方式中,在所述解析之前,验证所述接收到的数据库查询。执行经过验证的查询,以生成查询报告。
在所述第一方面或所述第一方面的任一前述实现方式提供的所述方法的第八种实现方式中,执行所述经过验证的查询与生成所述查询图同时进行。
在所述第一方面或所述第一方面的任一前述实现方式提供的所述方法的第九种实现方式中,检测所述多个数据流中的一个或多个数据流与在不影响所述查询报告的情况下操作数据的数据操作相关联。
在所述第一方面或所述第一方面的任一前述实现方式提供的所述方法的第十种实现方式中,从所述查询图中排除所述多个数据流中的所述一个或多个数据流。
在所述第一方面或所述第一方面的任一前述实现方式提供的所述方法的第十一种实现方式中,所述数据库查询包括嵌套查询,并且所述查询图内的所述多个节点中的一个节点与所述嵌套查询的结构化查询语言(structured query language,SQL)操作相关联。
根据本发明的第二方面,提供了一种设备,所述设备包括存储器和一个或多个处理器,其中,所述存储器包括指令,所述一个或多个处理器与所述存储器通信。所述一个或多个处理器执行所述指令,以执行操作,所述操作包括:解析接收到的数据库查询,以检测与多个数据流相关联的多个数据实体。根据所述接收到的数据库查询生成查询图,所述查询图包括通过边缘连接的多个节点。所述多个节点对应于所述多个数据实体,所述边缘对应于所述多个数据流。从存储器检索数据血统查询,其中,所述数据血统查询包括与所述生成的查询图内的所述多个节点相关联的所述多个数据实体中的一个或多个数据实体。所述生成的查询图的表示根据所述数据血统查询输出。
在所述第二方面提供的所述设备的第一种实现形式中,所述一个或多个处理器执行所述指令,以执行还包括检索至少一个第二查询图的操作。所述第二查询图包括与所述生成的查询图共用的至少一个节点。
在所述第二方面或所述第二方面的任一前述实现方式提供的所述设备的第二种实现方式中,所述一个或多个处理器执行所述指令,以执行操作,所述操作还包括根据所述查询图和所述第二查询图生成组合属性图。
在所述第二方面或所述第二方面的任一前述实现方式提供的所述设备的第三种实现方式中,所述一个或多个处理器执行所述指令,以执行操作,所述操作还包括使用所述组合属性图并根据所述数据血统查询,输出图可视化或JavaScript对象表示法(JavaScript Object Notation,JSON)。
在所述第二方面或所述第二方面的任一前述实现方式提供的所述设备的第四种实现方式中,所述一个或多个处理器执行所述指令,以执行操作,所述操作还包括检测所述多个数据实体的多个属性。
在所述第二方面或所述第二方面的任一前述实现方式提供的所述设备的第五种实现方式中,所述一个或多个处理器执行所述指令以执行操作,所述操作还包括使对应于所述多个数据实体的所述多个节点附加具有所述多个属性。
在所述第二方面或所述第二方面的任一前述实现方式提供的所述设备的第六种实现方式中,所述一个或多个处理器执行所述指令,以执行操作,所述操作还包括检测所述多个数据流中的一个或多个数据流与在不影响执行所述数据库查询所产生的查询报告的情况下操作数据的数据操作相关联。
在所述第二方面或所述第二方面的任一前述实现方式提供的所述设备的第七种实现方式中,所述一个或多个处理器执行所述指令,以执行操作,所述操作还包括从所述查询图中排除所述多个数据流中的所述一个或多个数据流。
根据本发明的第三方面,提供了一种非瞬时性计算机可读介质,所述非瞬时性计算机可读介质存储用于根据数据库查询确定数据血统的指令,当一个或多个处理器执行所述指令时,使所述一个或多个处理器执行操作。所述操作包括解析接收到的数据库查询,以检测与多个数据流相关联的多个数据实体。根据所述接收到的数据库查询生成查询图,所述查询图包括通过边缘连接的多个节点。所述多个节点对应于所述多个数据实体,所述边缘对应于所述多个数据流。数据血统查询从存储器中检索。所述数据血统查询包括与所述生成的查询图内的所述多个节点相关联的所述多个数据实体中的一个或多个数据实体。所述生成的查询图的表示根据所述数据血统查询输出。
在所述第三方面提供的所述非瞬时性计算机可读介质的第一种实现方式中,所述指令还使所述一个或多个处理器执行操作,所述操作包括检测所述多个数据实体的多个属性。
在所述第三方面或所述第三方面的任一前述实现方式提供的所述非瞬时性计算机可读介质的第二种实现方式中,所述指令还使所述一个或多个处理器执行操作,所述操作包括使对应于所述多个数据实体的所述多个节点附加具有所述多个属性。
前述示例中的任一个可以与前述其它示例中的任何一个或多个组合以在本发明范围内产生新实施例。
附图说明
在不一定按比例绘制的附图中,不同视图中相同的数字可以描述类似组件。附图通过示例而非限制的方式一般地示出了在本文中描述的各种实施例。
图1A是一些示例性实施例提供的使用多个数据管理***的数据仓库内的多个数据血统表示的图示;
图1B是一些示例性实施例提供的图1A的数据仓库的示例数据血统表示;
图2是一些示例性实施例提供的提供基于图的查询分析的数据处理架构的图示;
图3是一些示例性实施例提供的图2的架构进行查询图生成和处理中使用的图数据库模块的框图;
图4是一些示例性实施例提供的使用数据库查询提取查询图的示例节点和边缘的框图;
图5A是一些示例性实施例提供的用于节点和边缘提取的处理流程的图示;
图5B是一些示例性实施例提供的使用样本数据库查询并根据图5A的处理流程的进行节点提取的图示;
图6是一些示例性实施例提供的使用第一数据库查询生成的查询图的图示;
图7是一些示例性实施例提供的使用第二数据库查询生成的查询图的图示;
图8是一些示例性实施例提供的使用第三数据库查询生成的查询图的图示;
图9是一些示例性实施例提供的使用第四数据库查询生成的查询图的图示;
图10是一些示例性实施例提供的通过聚合多个查询图生成的示例属性图的图示;
图11是一些示例性实施例提供的实现算法和执行方法的客户端和服务器的电路框图;
图12是一些示例性实施例提供的适合于基于图的查询分析的方法的流程图。
具体实施方式
首先应理解,即使下文提供了一个或多个实施例的说明性实现方式,但是结合图1A至图12描述的所公开***和/或方法可使用任何数量的技术实现,无论该技术是当前已知还是尚未存在的。本发明决不应限于下文所说明的说明性实现方式、附图和技术,包括本文所说明并描述的示例性设计和实现方式,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
以下描述结合附图,所述附图是描述的一部分,并通过图解说明的方式示出可以实践本发明的具体实施例。这些实施例进行了足够详细的描述以使本领域技术人员能够实践本发明主题,应理解,可以利用其它实施例,并且在不脱离本发明范围的情况下可以进行结构、逻辑和电更改。因此,以下示例性实施例的描述不具有限定意义,本发明的范围由所附权利要求书界定。
在一个实施例中,本文所述的函数或算法可以在软件中实现。所述软件可以包括存储于计算机可读介质或计算机可读存储设备(如一个或多个非瞬时性存储器或其它类型的基于硬件的本地或网络存储设备)中的计算机可执行指令。所述软件可以在数字信号处理器、专用集成电路(application-specific integrated circuit,ASIC)、可编程数据面芯片、现场可编程门阵列(field programmable gate array,FPGA)、微处理器或在计算机***(如交换机、服务器或其它计算机***)中运行的其它类型的处理器中执行,从而将这种计算机***转换成专门编程的机器。
如本文所使用,术语“数据血统”表示数据在经历各种过程时发生的情况(例如,数据操作、聚合等)的表示。在一个方面中,数据血统可以在图(例如,图1A和图1B)上表示为线,起始于数据处理的起始点(例如,从数据源开始),跟踪通过其它数据源或数据相关的功能或操作,终止于数据的最终目的地(例如,输出表或视图)。
如本文所使用,术语“粗粒度分析”表示可用于分析至高数据库表级别的数据血统的数据分析技术。如本文所使用,术语“细粒度分析”表示可用于分析超出数据库表(例如,包括表列和字段的表子组件)的数据血统的数据分析技术。如本文所使用,术语“节点”和“顶点”是可互换的,并且表示图中的有状态实体(即,可以由特定状态、特性和/或属性表征的数据相关实体)。如本文所使用,术语“边缘”或“弧”是可互换的,并且表示两个节点之间的连接,表示在节点之间发生的具体数据转换或其它数据操作。
目前企业在管理数据血统方面存在挑战。例如,现有的数据血统工具通常是由特定数据管理***提供的粗粒度分析工具,功能有限。更具体地,当使用两个或更多不同的数据库***时,使用传统的数据血统工具可能难以进行数据血统分析(实际上,业务平台通常由若干数据库***组成)。此外,由于分析数据库中宽表的存在和影响,目前使用的粗粒度数据血统管理和分析工具会产生高误报率。因此,需要具有高可用性和细粒度数据分析的跨***数据血统管理。
本文公开的技术可用于提供基于查询图表示和聚合的细粒度数据血统分析。更具体地,基于图的查询分析技术可以包括三个部分。第一,从数据库查询生成细粒度查询图。查询被解析和分解,以检测有状态实体,例如,用户可以在数据管理***中创建的任何对象,包括表(外部、内部和临时)、列、视图、存储过程、查询结果集、用户定义函数(user-defined function,UDF)等。每个有状态实体都可以分配一个图节点。图中的边缘可以是两个节点之间的连接,可以表示节点之间的数据流或数据转换。可以将其它特性分配给每个节点,其中,特性可以包括属性和描述。通过对用户定义的表、列和数据转换(包括用户定义函数)建模,可以在图中涉及细粒度操作,从而允许与数据血统相关联的细粒度数据分析。第二,可以通过合并引用相同实体(例如,数据表、UDF等)的顶点/节点来聚合查询图,以生成聚合属性图,以便所有影响路径都自然地呈现在具有高性能访问优化的血统图中。第三,可以对聚合血统图执行数据血统分析,并且可以根据结合聚合属性图执行的数据血统查询生成数据血统报告。
现有的数据血统工具特定于某些数据库管理***,业务平台可以由多个不同的数据库***组成。现有的数据血统分析工具仅执行粗粒度数据分析(例如,基于数据库表是最小的分析组件),这在执行数据血统跟踪时引入了许多误报。通过使用本文公开的技术,可以通过根据数据库查询生成血统图来执行细粒度血统分析,其中,用户定义的组件(包括表子组件,如列和字段)由单个节点表示,从而允许细粒度且高效的数据血统分析。
图1A是一些示例性实施例提供的使用多个数据管理***的数据仓库内的多个数据血统表示的图示。参考图1A,数据血统表示可以包括数据仓库(data warehouse,DW)表105处的初始点或起始点,可以表示数据仓库100内数据处理的起点。可以对表105执行各种数据操作,例如生成初始DW视图110的数据操作。随后的数据处理可以生成附加视图,例如DW视图115和120。在最终处理阶段,可以输出DW报告125(或其它输出视图或表示)。图1A中可见的多条线表示多个数据血统,其中,每条线跟踪数据从起始数据源/起源数据源到目的地(例如,表或视图)的移动/处理。图1B中更详细地示出了若干可见数据血统的示例数据血统表示130。
图1B是一些示例性实施例提供的图1A的数据仓库的示例数据血统表示。参考图1B,数据血统表示130示出了起始数据源135,所述起始数据源可以包括多个不同的数据表(例如,国家、位置、部门、员工、作业历史、工种和区域)。当数据仓库100内的多个数据管理***对起始数据源135执行数据操作时,数据被转换为不同的视图,并在一个或多个最终报告中输出。例如,数据分级140、数据存储145和DW视图150的生成可以在起始数据源135上执行。最终报告155可以基于DW视图150生成。最终报告155可以包括一个或多个差异,并且使用传统的粗粒度数据分析工具可能难以将差异追溯到一个或多个源135。在一些方面中,本文公开的技术可用于执行基于查询的数据血统分析,包括细粒度数据血统分析以检测差异或执行数据血统相关查询。
图2是一些示例性实施例提供的提供基于图的查询分析的数据处理架构的图示。参考图2,数据处理架构200可用于处理数据库管理***内的数据库查询,以及用于生成聚合查询图,以响应数据血统查询。在操作215中,从一个或多个用户205A接收数据库查询210。数据库查询210可以包括标准查询语言(standard query language,SQL)查询或其它类型的查询。在操作220中,可以执行SQL验证,并生成经过验证的查询225。在操作230中,经过验证的查询225可以结合数据库管理***(database management system,DBMS)235执行。DBMS235可以包括一个或多个数据存储库240。作为执行经过验证的查询225的结果,在操作250中,生成查询报告245并将其传送回一个或多个用户205A。
在一些方面中,经过验证的查询225也用于查询图生成255,从而得到查询图260。在示例性实施例中,查询图生成255可以与查询执行230同时发生。在操作265中,查询图260可以与存储在图数据库模块270的属性图存储器275中的一个或多个先前生成的查询图聚合,以生成一个或多个属性图(图数据库模块270的细节在图3中更详细地示出)。不同的用户(例如检查员205B)可以传送数据血统查询280,用于结合图数据库模块270存储的属性图分析数据血统。在操作285中,可以根据血统查询280分析由属性图存储器275存储的一个或多个属性图,以生成最终结果290。在操作295中,将最终结果290返回给检查员205B。
图3是一些示例性实施例提供的图2的架构进行查询图生成和处理中使用的图数据库模块的更详细视图300的框图。参考图3,查询图260由图数据库模块270内的RF接收器305接收。子图接收器305包括适当的接口、电路和/或代码,用于执行查询图260的初始处理,例如节点和边缘检测。查询图260以及关于检测到的节点和边缘的信息被传送到图融合模块310。
图融合模块310包括用于聚合查询图以生成属性图的适当接口、电路和/或代码。更具体地,图融合模块310检索一个或多个存储的图315(例如,基于查询图260内检测到的节点和边缘),并与查询图260执行图聚合,以生成属性图320。然后,属性图320被存储回属性图存储器275中。
数据血统查询280由查询转换模块325接收。查询转换模块325包括合适的接口、电路和/或代码,用于使用图查询算法330执行血统查询280从数据查询语言到图查询语言(例如,Gremlin或Cypher)的转换。执行转换后的数据血统查询以生成血统查询执行结果335。血统查询执行结果335可以进一步重新格式化,以生成传送给检查员205B的最终结果290。例如,血统查询执行结果335可以由图可视化模块340重新格式化,图可视化模块340可以用于将结果335重新格式化为JavaScript对象表示法(JavaScript Object Notation,JSON)或用于呈现给检查员205B的另一种类型的可视化。
图4是一些示例性实施例提供的使用数据库查询提取查询图的示例节点和边缘的框图400。参考图4,示出了可以包括数据相关实体的示例数据库查询405。如本文所使用,术语“数据相关实体”包括在数据处理***内具有特定状态的用户创建的对象,例如表(例如,外部、内部和时间)、表列、数据视图、表行,存储过程、查询结果集、用户定义函数(user-defined function,UDF)等。数据相关实体可以进一步通过特性来表征,所述特性可以包括属性和描述。
如图4所示,可以针对数据相关实体分析数据库查询405,并且这些实体可以被提取为查询图内的节点(或顶点)。例如,数据视图410和415、表425和用户定义函数420可以被检测为有状态数据相关实体(即,给定状态和特性表征的数据相关实体)。可以进一步分析数据库查询405以确定数据相关实体之间发生的数据流和转换。这种数据流和转换可以表示为节点之间的边缘或弧。例如,数据流或转换430、435和440在图4中被引用为连接节点410、415、420和425的边缘。
图5A是一些示例性实施例提供的用于节点和边缘提取的处理流程500的图示。图5B是一些示例性实施例提供的使用样本数据库查询并根据图5A的处理流程的进行节点提取的图示。参考图5A,可以在操作505中解析示例数据库查询520。在操作510中,可以从解析的查询520中提取实体和数据流。更具体地,并且结合查询520,表HIGH-SAL-EMP和表EMPLOYEE可以分别被提取为实体530和535。此外,每个表HIGH-SAL-EMP和EMPLOYEE包括至少一列,分别表示为实体540和545。查询的SQL操作(例如,INSERT/SELECT)可以被提取为实体525。在操作515中,可以根据提取的实体(为每个实体创建顶点或节点)和实体之间的数据流或转换(为每个数据流或转换创建边缘或弧)生成查询图。图6中示出了与查询520相关的示例查询图。
图6是一些示例性实施例提供的使用第一数据库查询生成的查询图600的图示。参考图6,查询图600可以根据数据库查询640生成,这与图5B中的查询520相同。数据库查询640可以解释为从表EMPLOYEE中选择工资大于200000的员工的所有列,并将结果***新表HIGH_SAL_EMP中。选择和***功能由查询640中的SQL语句执行,因此,SQL语句将由单独的节点620表示。起源表和目的地表(EMPLOYEE和HIGH_SAL_EMP)分别表示为节点605和625。
两个表HIGH_SAL_EMP和EMPLOYEE都具有其列/字段。更具体地,表EMPLOYEE可以包括称为EMP_ID、NAME等的列/字段。表HIGH_SAL_EMP从表EMPLOYEE派生(即,HIGH_SAL_EMP的内容通过SQL查询640中的INSERT-with-SELECT语句从EMPLOYEE派生)。表EMPLOYEE列/字段可以表示为节点610和615,从表EMPLOYEE派生的表HIGH_SAL_EMP中的对应列/字段表示为节点630和635。
此外,查询图600中的一个或多个节点可以用节点特性(例如属性和描述)注释。例如,节点620用标签“SQL语句”和描述与查询640关联的SQL操作的子类“Insert_Select”注释。节点605和625用标签“表”注释,以表示存在数据表,以及具有“名称”注释,以表示在查询640中使用的表名称。表列/字段节点(例如,610、615、630和635)使用“标签”、“名称”和“类型”等属性进行注释。
由查询图600的每个边缘表示的数据转移和转换也可以用边缘属性注释。例如,节点610-630与节点615-635之间的虚线边缘用标签“派生”注释,以表示数据从一个表派生到另一个表中。
在一些方面中,虚线框(或其它类型的图名称)可以放置在查询图中,以表示表或视图。例如,如图6中所示,框645和650表示表HIGH_SAL_EMP和EMPLOYEE,框65表示与查询640的SQL语句相关联的数据视图。
图7是一些示例性实施例提供的使用第二数据库查询705生成的查询图700的图示。参考图7,数据库查询705涉及存储在表“客户”中的数据的处理。作为解析查询705的结果,可以为表“客户”创建节点710,并且可以为表“客户”的列“国家”和“客户ID”创建附加节点715和720。为查询705的SQL语句创建单独的节点725。由于表“客户”的“国家”和“客户ID”列的数据由客户ID的SQL语句使用,因此可以创建引用节点730和735(分别对应于节点715和720),使得查询705的数据相关功能可以示出为与节点730和735相关联的边缘。
确定大于5的客户ID列的计数的操作由功能节点740和745表示。例如,节点745表示“HAVING…>5”过滤操作,运算符ID 14对应于比较函数“>”,参数“5”表示“>5”。作为执行查询705的结果,生成结果表示750的输出。由于结果表示750是视图(即,时间数据)并且不存储在表中,因此与结果表示750相关联的节点725的输出箭头在查询图700内用虚线箭头示出。
在一些方面中,可以省略查询图中的一个或多个节点连接,以简化图。例如,节点740-725和730-725之间的“OrderBy”和“GroupBy”虚线连接可以从图中省略,因为这些连接表示最终不会更改查询结果的数据重排函数。参考图8,示出了省略数据重排函数的简化查询图。
图8是一些示例性实施例提供的使用第三数据库查询805生成的查询图800的图示。参考图8,查询805类似于查询705,例外为查询805包括附加的用户定义函数840。作为解析查询805的结果,可以为表“客户”创建节点810,并且可以为表“客户”的列“国家”和“客户ID”创建附加节点815和820。为查询805的SQL语句(即,SELECT函数)创建单独的节点830。由于表“客户”的“国家”和“客户ID”列的数据由UDF 840使用,因此在图800中创建用于UDF840的单独节点825。如图8所示,数据重排函数(例如,ORDER BY和HAVING COUNT>5)可以被省略,从而简化查询图800。来自节点830的输出是来自执行查询805的结果表示835。
图9是一些示例性实施例提供的使用第四数据库查询905生成的查询图900的图示。参考图9,查询905包括嵌套查询(即,查询内的查询)975。作为解析查询905的结果,可以为表“MyEmployee”创建节点915,并且可以为列“部门”、“新标题”和“收入”创建附加节点920、925和930。可以在查询图900中创建大纲框985,以表示表“MyEmployee”,包括节点915、920、925和930。
为嵌套查询975的SQL语句(即,SELECT函数)创建单独的节点935。可以分别使用来自节点925和930的数据生成数据引用节点940和950。嵌套查询975中的WHERE函数通过来自节点920的输入与节点945相关联。可以在查询图900内创建大纲框910,以表示嵌套查询975及其相关联的数据处理和操作功能。
为主查询905的SQL语句(即,SELECT函数)创建单独的节点955。使用来自节点925的引用数据生成数据引用节点960。查询905中的AVG函数通过来自节点930的数据与节点965相关联。可以在查询图900内创建大纲框980,以表示主查询905及其相关联的数据处理和操作功能。来自节点955的输出是来自执行查询905的结果表示970。
图10是一些示例性实施例提供的通过聚合多个查询图生成的示例属性图1000的图示。参考图10,示出了第一查询图1005,其可以生成有节点1010A、1010B、1010C、1010D、1010E、1010F、1010G、1010H、1010I、1010J和1010K。第二查询图1015可以生成有节点1020A、1020B、1020C、1020D、1020E、1020F、1020G、1020H、1020I、1020J和1020K。
在示例性方面中,通过在单个查询图中定位共用节点并围绕共用节点聚合单个图,可以聚合单个查询图以生成聚合属性图。如果一个查询图的输出是另一个查询图的输入,则也可以聚合单个查询图。多个属性图也可以基于一个或多个共用节点聚合。
例如,由于来自查询图1005的节点1010K的输出是到查询图1015的节点1020A的输入,因此可以聚合查询图1005和1015。在另一方面中,节点1010K可以与节点1020A相同,并且查询图1005和1015可以基于共用节点聚合。
如图10所示,属性图1000还包括连接到节点1030(与未知操作相关联)并生成到节点1035的输出的节点1025。此外,来自节点1020K和1020J的输出被传送到节点1040。在这方面,查询图1005和1015以及节点1025、1030、1035和1040都可以聚合到属性图1000中。第一结果表示1045可以从节点1035输出,第二结果表示1050可以从节点1040输出。图10中的属性图表示是示例性的,并且使用本文所述的技术,查询图到属性图的其它变体和聚合是可能的。
图11是一些示例性实施例提供的实现算法和执行方法的客户端和服务器的电路框图。在各种实施例中不需要使用所有组件。例如,客户端、服务器和基于云的网络资源可以各自使用不同的组件集,或者在例如服务器的情况下使用更大存储设备。
一个计算机1100(也称为计算设备1100和计算机***1100)形式的示例性计算设备可以包括处理器1105、存储器1110、可移动存储器1115、不可移动存储器1120、输入接口1125、输出接口1130和通信接口1135,它们均通过总线1140连接。尽管示例性计算设备被示出和描述为计算机1100,但计算设备在不同实施例中可以呈不同形式。
存储器1110可以包括易失性存储器1145和非易失性存储器1150,并且可以存储程序1155。计算机1100可以包括或可以访问计算环境,所述计算环境包括各种计算机可读介质,如易失性存储器1145、非易失性存储器1150、可移动存储器1115和不可移动存储器1120。计算机存储器包括随机存取存储器(random-access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read-onlymemory,EPROM)和电可擦除可编程只读存储器(electrically erasable programmableread-only memory,EEPROM)、闪存或其它存储器技术、只读光盘存储器(compact discread-only memory,CD ROM)、数字通用磁盘(digital versatile disk,DVD)或其它光盘存储器、磁带盒、磁带、磁盘存储器或其它磁性存储设备,或任何其它能够存储计算机可读指令的介质。
存储在计算机可读介质中的计算机可读指令(例如,存储在存储器1110中的程序1155)可由计算机1100的处理器1105执行。硬盘驱动器、CD-ROM和RAM是包括非瞬时性计算机可读介质(如存储设备)的制品的一些示例。术语“计算机可读介质”和“存储设备”不包括被认为过于瞬时的载波。“计算机可读非瞬时性介质”包括所有类型的计算机可读介质,包括磁性存储介质、光存储介质、闪存介质和固态存储介质。应当理解,软件可以安装在计算机中并随计算机一起销售。或者,可以获取软件并将其装载到计算机中,包括通过物理介质或分配***获取软件,包括例如从软件创作者拥有的服务器或从软件创作者未拥有但使用的服务器获取软件。例如,可以将软件存储在服务器中以通过互联网分布。如本文所用,术语“计算机可读介质”和“机器可读介质”是可互换的。
程序1155可以利用客户偏好结构,所述客户偏好结构使用例如查询解析模块1160、查询验证模块1165、属性图生成模块1170和血统查询处理模块1175的模块。本文所述的任何一个或多个模块可以使用硬件(例如,机器的处理器、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gatearray,FPGA)或其任何合适的组合)实现。此外,这些模块中的任何两个或更多个可以组合成单个模块,并且本文所述的单个模块的功能可以在多个模块之间细分。此外,根据各种示例性实施例,本文描述为在单个机器、数据库或设备内实现的模块可以分布到多个机器、数据库或设备中。
查询解析模块1160包括适当的电路、逻辑、接口和/或代码,并且用于解析数据库查询,以便检测查询中的数据相关实体。这种实体可以包括数据处理***内具有特定状态的用户创建的对象,例如表(例如,外部、内部和临时)、表列、数据视图、表行、存储过程、查询结果集,用户定义函数(user-defined function,UDF)等。数据相关实体可以进一步通过特性来表征,所述特性可以包括属性和描述。查询解析模块1160还用于检测与数据库查询相关联的数据流和转换。
查询验证模块1165包括适当的电路、逻辑、接口和/或代码,并且用于执行接收到的查询的查询验证(例如,如图2中20的查询验证操作所执行)。
属性图生成模块1170包括合适的电路、逻辑、接口和/或代码,并且用于生成一个或多个查询图以及用于执行查询图的聚合,以生成一个或多个属性图。更具体地,属性图生成模块1170用于根据查询解析模块1160获得的节点、边缘和属性生成查询图。属性图生成模块1170可以执行与图2中的查询图生成255、子图接收器功能305、图融合功能310和属性图存储功能相同的功能,如结合图3所述。
血统查询处理模块1175包括合适的电路、逻辑、接口和/或代码,并且用于处理数据血统查询并使用一个或多个属性图生成血统查询执行结果。更具体地,血统查询处理模块1175可以执行与查询转换模块325和图可视化模块340相同的功能,如结合图3所述。
在一些方面中,模块1160-1175中的一个或多个模块可以集成为单个模块,以执行集成模块的对应功能。
图12是一些示例性实施例提供的适合于基于图的查询分析的方法的流程图。方法1200包括操作1205、1210和1215。作为示例而非限制,方法1200被描述为由设备1100使用图12的模块1160-1175执行。
在操作1205中,解析接收到的数据库查询以检测与多个数据流相关联的多个数据实体。例如,查询解析模块1160可以接收和解析查询805,以检测与查询805相关联的数据相关实体、数据流、转换和属性。
在操作1210中,生成与接收到的数据库查询相关联的查询图。例如,属性图生成模块1170可以根据查询解析模块1160检测到的数据相关实体、数据流、转换和属性生成查询图800。查询图800包括通过边缘连接的多个节点(例如,810、815、820、825和830),其中,多个节点对应于多个数据实体,并且边缘对应于多个数据流。
在操作1215中,从存储器检索数据血统查询。数据血统查询包括与生成的查询图内的多个节点相关联的多个数据实体中的一个或多个数据实体。例如,血统查询处理模块1175检索(例如,从易失性存储器1145或非易失性存储器1150)源自用户(例如,数据检查员)205B的血统查询280。血统查询处理模块1175将查询转换为查询图语言(例如,使用图查询算法330)。
在数据血统查询不包括与生成的查询图相关联的数据实体的方面,血统查询处理模块1175可以从属性图存储器275检索另一个查询图(或基于多个聚合查询图的属性图),其中,检索的查询图包括数据血统查询中的数据实体。
在操作1220中,血统查询处理模块1175根据数据血统查询输出生成的查询图的表示。例如,血统查询处理模块1175通过使用存储在存储器275中的一个或多个属性图执行转换后的数据血统查询,以生成血统查询执行结果335。血统查询处理模块1175使用图可视化模块340来生成可返回给用户205B的最终结果290。
尽管上文详细描述了几个实施例,但也可以进行其它修改。例如,在图中描述的逻辑流程不需要所示特定顺序或连续顺序来达到期望的结果。可以向所描述的流程提供其它步骤或从所描述的流程中删除步骤,并可以向所描述的***添加其它组件或从所描述的***中移除组件。其它实施例可在所附权利要求书的范围内。
还应理解,可以在符合本发明的一个或多个计算设备中安装并与符合本发明的一个或多个计算设备一起销售包括一个或多个计算机可执行指令的软件,所述一个或多个计算机可执行指令有利于如上文结合本发明的任何一个步骤或所有步骤所描述的处理和操作。或者,可以获取软件并将其装载到一个或多个计算设备中,包括通过物理介质或分布***获取软件,包括例如从软件创作者拥有的服务器或从软件创作者未拥有但使用的服务器获取软件。例如,可以将软件存储在服务器中以通过互联网分布。
此外,本领域技术人员应理解,本发明在其应用中不限于在说明书中阐述或附图中说明的组件的构造和布置细节。本文的实施例能够适用其它实施例,并且能够以各种方式实践或执行。此外,应理解,本文使用的措辞和术语是为了描述目的,不应视为限制性的。在本文中使用“包括”、“包含”或“具有”及其变体旨在涵盖其后列举的项目及其等效物以及其它项目。除非另有限制,否则术语“连接”、“耦合”和“安装”以及其变体在本文中被广泛使用,并且涵盖直接连接和间接连接、耦合和安装。此外,术语“连接”和“耦合”及其变体不限于物理或机械连接或耦合。此外,如“上”、“下”、“底部”和“顶部”等术语是相对的,用于帮助说明,但并不具有限制性。
可以至少部分地在数字电子电路、模拟电子电路中,或计算机硬件、固件、软件或其组合中实现根据所说明的实施例使用的说明性设备、***和方法的组件。例如,这些组件可以实现为有形地体现于信息载体中,或机器可读存储设备中的计算机程序产品(如计算机程序、程序代码或计算机指令),以由数据处理装置(如可编程处理器、计算机或多台计算机)执行,或用于控制数据处理装置的操作。
计算机程序可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以部署成任何形式,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其它单元。可以将计算机程序部署成在一台计算机中或多台计算机中在一个站点处执行,也可以分布在多个站点处并通过通信网络互连。此外,用于实现本文描述的技术的功能程序、代码和代码段很容易被本文描述的技术所属领域的程序员理解为在权利要求的范围内。与说明性实施例相关联的方法步骤可以由一个或多个可编程处理器执行,从而执行计算机程序、代码或指令来执行功能(例如,对输入数据进行操作和/或生成输出)。例如,方法步骤也可以由专用逻辑电路(例如,现场可编程门阵列(field programmable gate array,FPGA)或专用集成电路(application-specific integrated circuit,ASIC))执行,并且用于执行所述方法的装置可以实现为该专用逻辑电路。
结合本文所公开实施例描述的各种说明性逻辑块、模块和电路可以利用通用处理器、数字信号处理器(digital signal processor,DSP)、ASIC、FPGA或其它可编程逻辑设备、分立门或晶体管逻辑、分立硬件组件或其为执行本文描述的功能而设计的任何组合来实施或执行。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以实现为计算设备的组合,例如DSP和微处理器、多个微处理器、一个或多个微处理器结合DSP核,或任何其它类似的配置的组合。
例如,适合执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者中接收指令和数据。计算机的必需元件是用于执行指令的处理器和用于存储指令和数据的一个或多个内存设备。通常,计算机还包括一个或多个用于存储数据的大容量存储设备(例如磁盘、磁光盘或光盘),或与一个或多个用于存储数据的大容量存储设备可操作地耦合以从所述大容量存储设备接收数据和/或将数据传送给所述大容量存储设备。适于体现计算机程序指令和数据的信息载体包括各种形式的非易失性内存,例如,包括半导体内存设备,例如电可编程只读内存或电可编程ROM(electrically programmable read-onlymemory,EPROM)、电可擦除可编程ROM(electrically erasable programmable ROM,EEPROM)、闪存设备、数据存储盘(例如,磁盘、内置硬盘、或可移动磁盘、磁光盘、CD-ROM和DVD-ROM盘)。处理器和内存可以由专用逻辑电路补充或并入专用逻辑电路。
本领域技术人员应当理解,可以使用多种不同的技术和技术方法中的任意一种来表示信息和信号。例如,上文描述中可以引用的数据、指令、命令、信息、信号、比特、符号和芯片可由电压、电流、电磁波、磁场或磁粒、光场或光粒、或者任何组合表示。
如本文所使用的,“机器可读介质(或计算机可读介质)”是指能够暂时或永久存储指令和数据的设备,可以包括但不限于随机存取存储器(random-access memory,RAM)、只读存储器(read-only memory,ROM)、缓冲存储器、闪存、光学介质、磁性介质、高速缓存存储器、其它类型的存储器(例如,可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EEPROM))和/或其任何合适的组合。术语“机器可读介质”应理解为包括能够存储处理器指令的单个介质或多个介质(例如,集中式或分布式数据库,或关联的高速缓存和服务器)。术语“机器可读介质”还应理解为包括能够存储由一个或多个处理器152执行的指令的任何介质或多种介质的组合,一个或多个处理器152执行所述指令时,使一个或多个处理器152执行本文描述的任何一种或多种方法。相应地,“机器可读介质”是指单个存储装置或设备,以及包括多个存储装置或设备的“基于云”的存储***或存储网络。本文使用的术语“机器可读介质”不包括信号本身。
另外,在不脱离本发明范围的情况下,各种实施例中描述及图示为独立或分离的技术、***、子***和方法可以与其它***、模块、技术或方法组合或集成。示出或描述为彼此耦合、或直接耦合、或相互通信的其它项目可通过某种接口、设备或中间组件以电方式、机械方式或其它方式间接耦合或通信。变化、替换和变更的其它示例可由本领域技术人员确定,并可在不脱离本文公开的精神和范围的情况下举例。
尽管已经参考本发明的特定特征和实施例描述了本发明,但是明显在不脱离本发明的情况下可以制定本发明的各种修改和组合。例如,可以将其它组件添加到所描述的***中或从所描述的***中移除其它组件。因此,说明书和附图仅被视为所附权利要求书限定的对本发明的说明,并且预期覆盖落入本发明的范围内的任何和所有修改、变化、组合或等同物。其它方面可在所附权利要求书的范围内。
Claims (20)
1.一种根据数据库查询确定数据血统的计算机实现的方法,其特征在于,所述方法包括:
解析接收到的数据库查询,以检测与多个数据流相关联的多个数据实体;
根据所述接收到的数据库查询生成查询图,所述查询图包括通过边缘连接的多个节点,其中,所述多个节点对应于所述多个数据实体,所述边缘对应于所述多个数据流;
从存储器检索数据血统查询,所述数据血统查询包括与所述生成的查询图内的所述多个节点相关联的所述多个数据实体中的一个或多个数据实体;以及
根据所述数据血统查询输出所述生成的查询图的表示。
2.根据权利要求1所述的计算机实现的方法,其特征在于,还包括:
检索至少一个第二查询图,其中,所述第二查询图包括与所述生成的查询图共用的至少一个节点。
3.根据权利要求1或2所述的计算机实现的方法,其特征在于,与所述生成的查询图共用的所述至少一个节点包括以下各项中的至少一个:数据表、表列、数据视图、查询结果集和用户定义函数。
4.根据权利要求1至3中任一项所述的计算机实现的方法,其特征在于,还包括:
根据所述查询图和所述第二查询图生成组合属性图,其中,所述组合属性图从所述查询图内的起始节点开始通过所述至少一个共用节点跟踪数据的数据血统并终止于输出所述数据的最终表示的节点。
5.根据权利要求1至4中任一项所述的计算机实现的方法,其特征在于,还包括:
使用所述组合属性图并根据所述数据血统查询输出图可视化或JavaScript对象表示法(JavaScript Object Notation,JSON),其中,所述图可视化基于所述组合属性图的至少一部分,所述至少一部分包括对应于所述查询中引用的所述多个数据实体的节点。
6.根据权利要求1至5中任一项所述的计算机实现的方法,其特征在于,还包括:
将所述数据血统查询转换为与所述生成的查询图兼容的一个或多个图查询语言。
7.根据权利要求1至6中任一项所述的计算机实现的方法,其特征在于,还包括:
检测所述多个数据实体的多个属性;以及
使对应于所述多个数据实体的所述多个节点附加具有所述多个属性。
8.根据权利要求1至7中任一项所述的计算机实现的方法,其特征在于,还包括:
在所述解析之前,验证所述接收到的数据库查询;
执行所述经过验证的查询,以生成查询报告。
9.根据权利要求1至8中任一项所述的计算机实现的方法,其特征在于,执行所述经过验证的查询与生成所述查询图同时进行。
10.根据权利要求1至9中任一项所述的计算机实现的方法,其特征在于,还包括:
检测所述多个数据流中的一个或多个数据流与在不影响所述查询报告的情况下操作数据的数据操作相关联。
11.根据权利要求1至10中任一项所述的计算机实现的方法,其特征在于,还包括:
从所述查询图中排除所述多个数据流中的所述一个或多个数据流。
12.根据权利要求1至11中任一项所述的计算机实现的方法,其特征在于,所述数据库查询包括嵌套查询,并且所述查询图内的所述多个节点中的一个节点与所述嵌套查询的结构化查询语言(structured query language,SQL)操作相关联。
13.一种设备,其特征在于,包括:
存储器,所述存储器包括指令;
一个或多个处理器,与所述存储器通信,其中,所述一个或多个处理器执行所述指令,以执行包括以下各项的操作:
解析接收到的数据库查询,以检测与多个数据流相关联的多个数据实体;
根据所述接收到的数据库查询生成查询图,所述查询图包括通过边缘连接的多个节点,其中,所述多个节点对应于所述多个数据实体,所述边缘对应于所述多个数据流;
从存储器检索数据血统查询,所述数据血统查询包括与所述生成的查询图内的所述多个节点相关联的所述多个数据实体中的一个或多个数据实体;以及
根据所述数据血统查询输出所述生成的查询图的表示。
14.根据权利要求13所述的设备,其特征在于,所述一个或多个处理器执行所述指令,
以执行操作,所述操作还包括:
检索至少一个第二查询图,其中,所述第二查询图包括与所述生成的查询图共用的至少一个节点。
15.根据权利要求13或14所述的设备,其特征在于,所述一个或多个处理器执行所述指令,以执行操作,所述操作还包括:
根据所述查询图和所述第二查询图生成组合属性图。
16.根据权利要求13至15中任一项所述的设备,其特征在于,所述一个或多个处理器执行所述指令,以执行操作,所述操作还包括:
使用所述组合属性图并根据所述数据血统查询,输出图可视化或JavaScript对象表示法(JavaScript Object Notation,JSON)。
17.根据权利要求13至16中任一项所述的设备,其特征在于,所述一个或多个处理器执行所述指令,以执行操作,所述操作还包括:
检测所述多个数据实体的多个属性;以及
使对应于所述多个数据实体的所述多个节点附加具有所述多个属性。
18.根据权利要求13至17中任一项所述的设备,其特征在于,所述一个或多个处理器执行所述指令,以执行操作,所述操作还包括:
检测所述多个数据流中的一个或多个数据流与在不影响执行所述数据库查询所产生的查询报告的情况下操作数据的数据操作相关联;
从所述查询图中排除所述多个数据流中的所述一个或多个数据流。
19.一种非瞬时机器可读介质,其特征在于,存储用于根据数据库查询确定数据血统的指令,当一个或多个处理器执行所述指令时,使所述一个或多个处理器执行包括以下各项的操作:
解析接收到的数据库查询,以检测与多个数据流相关联的多个数据实体;
根据所述接收到的数据库查询生成查询图,所述查询图包括通过边缘连接的多个节点,其中,所述多个节点对应于所述多个数据实体,所述边缘对应于所述多个数据流;
从存储器检索数据血统查询,所述数据血统查询包括与所述生成的查询图内的所述多个节点相关联的所述多个数据实体中的一个或多个数据实体;以及
根据所述数据血统查询输出所述生成的查询图的表示。
20.根据权利要求19所述的非瞬时性机器可读介质,其特征在于,所述指令在执行时还使所述一个或多个处理器执行包括以下各项的操作:
检测所述多个数据实体的多个属性;以及
使对应于所述多个数据实体的所述多个节点附加具有所述多个属性。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862733998P | 2018-09-20 | 2018-09-20 | |
US62/733,998 | 2018-09-20 | ||
PCT/CN2019/106563 WO2020057576A1 (en) | 2018-09-20 | 2019-09-19 | Systems and methods for graph-based query analysis |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112753029A true CN112753029A (zh) | 2021-05-04 |
Family
ID=69888271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980062106.5A Pending CN112753029A (zh) | 2018-09-20 | 2019-09-19 | 用于基于图的查询分析的***和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20200356599A1 (zh) |
EP (1) | EP3850559A4 (zh) |
CN (1) | CN112753029A (zh) |
WO (1) | WO2020057576A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116011548A (zh) * | 2023-03-24 | 2023-04-25 | 北京澜舟科技有限公司 | 一种多知识图谱问答模型训练方法、***及存储介质 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113553477B (zh) * | 2020-04-23 | 2024-06-25 | 阿里巴巴集团控股有限公司 | 一种图的拆分方法和装置 |
US11681721B2 (en) * | 2020-05-08 | 2023-06-20 | Jpmorgan Chase Bank, N.A. | Systems and methods for spark lineage data capture |
CN114860894A (zh) * | 2021-01-20 | 2022-08-05 | 京东科技控股股份有限公司 | 知识库的查询方法、装置、计算机设备和存储介质 |
US11983178B2 (en) * | 2021-04-27 | 2024-05-14 | Capital One Services, Llc | Techniques for building data lineages for queries |
US11461297B1 (en) | 2021-06-09 | 2022-10-04 | T-Mobile Usa, Inc. | Ensuring database integrity using a data flow in a graph, such as for use by a wireless telecommunications service provider |
US11880362B2 (en) * | 2022-01-10 | 2024-01-23 | Micro Focus Llc | Generating debugging information for query plan steps |
US20220171772A1 (en) * | 2022-02-15 | 2022-06-02 | Garner Distributed Workflow Inc. | Structured query language interface for tabular abstraction of structured and unstructured data |
US20240004932A1 (en) * | 2022-06-30 | 2024-01-04 | Dell Products L.P. | Automated query modification using graphical query representations |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1510941A1 (en) * | 2003-08-29 | 2005-03-02 | Sap Ag | A method of providing a visualisation graph on a computer and a computer for providing a visualisation graph |
CN104216888A (zh) * | 2013-05-30 | 2014-12-17 | 中国电信股份有限公司 | 数据处理任务关系设置方法及*** |
CN104424269A (zh) * | 2013-08-30 | 2015-03-18 | 中国电信股份有限公司 | 数据血统分析方法与装置 |
CN104915390A (zh) * | 2015-05-25 | 2015-09-16 | 广州精点计算机科技有限公司 | 一种etl数据血统查询***及查询方法 |
CN105210058A (zh) * | 2012-12-14 | 2015-12-30 | 微软技术许可有限责任公司 | 使用多个引擎来进行图查询处理 |
US20170154087A1 (en) * | 2015-11-30 | 2017-06-01 | Bank Of America Corporation | Data discovery and analysis tool |
CN107203640A (zh) * | 2017-06-14 | 2017-09-26 | 成都四方伟业软件股份有限公司 | 通过数据库运行记录建立物理模型的方法及*** |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1317715A1 (en) * | 2000-08-04 | 2003-06-11 | Infoglide Corporation | System and method for comparing heterogeneous data sources |
US9063998B2 (en) * | 2012-10-18 | 2015-06-23 | Oracle International Corporation | Associated information propagation system |
US9348879B2 (en) * | 2013-07-02 | 2016-05-24 | Bank Of America Corporation | Data lineage transformation analysis |
GB201322057D0 (en) * | 2013-12-13 | 2014-01-29 | Qatar Foundation | Descriptive and prescriptive data cleaning |
US10379825B2 (en) * | 2017-05-22 | 2019-08-13 | Ab Initio Technology Llc | Automated dependency analyzer for heterogeneously programmed data processing system |
US10769165B2 (en) * | 2017-12-20 | 2020-09-08 | Sap Se | Computing data lineage across a network of heterogeneous systems |
US11106820B2 (en) * | 2018-03-19 | 2021-08-31 | International Business Machines Corporation | Data anonymization |
-
2019
- 2019-09-19 CN CN201980062106.5A patent/CN112753029A/zh active Pending
- 2019-09-19 WO PCT/CN2019/106563 patent/WO2020057576A1/en unknown
- 2019-09-19 EP EP19862066.8A patent/EP3850559A4/en active Pending
-
2020
- 2020-07-27 US US16/947,288 patent/US20200356599A1/en not_active Abandoned
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1510941A1 (en) * | 2003-08-29 | 2005-03-02 | Sap Ag | A method of providing a visualisation graph on a computer and a computer for providing a visualisation graph |
CN105210058A (zh) * | 2012-12-14 | 2015-12-30 | 微软技术许可有限责任公司 | 使用多个引擎来进行图查询处理 |
CN104216888A (zh) * | 2013-05-30 | 2014-12-17 | 中国电信股份有限公司 | 数据处理任务关系设置方法及*** |
CN104424269A (zh) * | 2013-08-30 | 2015-03-18 | 中国电信股份有限公司 | 数据血统分析方法与装置 |
CN104915390A (zh) * | 2015-05-25 | 2015-09-16 | 广州精点计算机科技有限公司 | 一种etl数据血统查询***及查询方法 |
US20170154087A1 (en) * | 2015-11-30 | 2017-06-01 | Bank Of America Corporation | Data discovery and analysis tool |
CN107203640A (zh) * | 2017-06-14 | 2017-09-26 | 成都四方伟业软件股份有限公司 | 通过数据库运行记录建立物理模型的方法及*** |
Non-Patent Citations (1)
Title |
---|
龚利: "基于数据血统标注的物化视图精确更新技术", 《计算机研究与发展》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116011548A (zh) * | 2023-03-24 | 2023-04-25 | 北京澜舟科技有限公司 | 一种多知识图谱问答模型训练方法、***及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020057576A1 (en) | 2020-03-26 |
US20200356599A1 (en) | 2020-11-12 |
EP3850559A1 (en) | 2021-07-21 |
EP3850559A4 (en) | 2021-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200356599A1 (en) | Systems and methods for graph-based query analysis | |
Souibgui et al. | Data quality in ETL process: A preliminary study | |
CN109684352B (zh) | 数据分析***、方法、存储介质及电子设备 | |
CN108701258B (zh) | 用于通过统计剖析和参考模式匹配进行本体归纳的***和方法 | |
KR102143889B1 (ko) | 메타데이터 관리를 위한 시스템 | |
US10204151B2 (en) | Syntactic tagging in a domain-specific context | |
EP3657348B1 (en) | Profiling data with source tracking | |
US8645332B1 (en) | Systems and methods for capturing data refinement actions based on visualized search of information | |
US8543535B2 (en) | Generation of star schemas from snowflake schemas containing a large number of dimensions | |
US20140074764A1 (en) | Simplifying a graph of correlation rules while preserving semantic coverage | |
US20140115012A1 (en) | Data model optimization using multi-level entity dependencies | |
US20150032743A1 (en) | Analyzing files using big data tools | |
CN111177134B (zh) | 适用于海量数据的数据质量分析方法、装置、终端及介质 | |
CN113760891B (zh) | 一种数据表的生成方法、装置、设备和存储介质 | |
CN110555035A (zh) | 一种对查询语句进行优化的方法、装置 | |
WO2015008026A1 (en) | Optimising data integration | |
Mazón et al. | Open business intelligence: on the importance of data quality awareness in user-friendly data mining | |
CN105760418B (zh) | 用于对关系数据库表进行交叉列搜索的方法和*** | |
US10896227B2 (en) | Data processing system, data processing method, and data structure | |
US20130080837A1 (en) | Fault localization for data-centric programs | |
Rizk et al. | Diftong: a tool for validating big data workflows | |
CN109918367B (zh) | 一种结构化数据的清洗方法、装置、电子设备及存储介质 | |
US20130086123A1 (en) | Presenting information from heterogeneous and distributed data sources with real time updates | |
Eken et al. | AutoTest: Automation to test tabular data quality | |
Tan | A database optimization model for java web architecture |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220224 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TA01 | Transfer of patent application right |