CN111492344A - 用于监测结构化查询语言(sql)查询的执行的系统和方法 - Google Patents
用于监测结构化查询语言(sql)查询的执行的系统和方法 Download PDFInfo
- Publication number
- CN111492344A CN111492344A CN201880079340.4A CN201880079340A CN111492344A CN 111492344 A CN111492344 A CN 111492344A CN 201880079340 A CN201880079340 A CN 201880079340A CN 111492344 A CN111492344 A CN 111492344A
- Authority
- CN
- China
- Prior art keywords
- data processing
- query
- data
- processing operation
- gui
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000012544 monitoring process Methods 0.000 title abstract description 5
- 238000012545 processing Methods 0.000 claims abstract description 287
- 238000003860 storage Methods 0.000 claims description 28
- 230000015654 memory Effects 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 11
- 238000013500 data storage Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/323—Visualisation of programs or trace data
-
- 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
- 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/217—Database tuning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
用于监测结构化查询语言(SQL)查询的执行的技术。这些技术包括:获得SQL查询;生成用于该SQL查询的查询计划,该查询计划包括要由该数据处理系统进行的多个操作,该多个操作至少包括第一操作和第二操作;显示包含多个图形用户界面(GUI)元素的GUI,该多个GUI元素包括表示该第一操作的第一GUI元素和表示该第二操作的第二GUI元素;在执行该SQL查询期间,采集该SQL查询的跟踪信息,包括采集该第一操作的第一跟踪信息和该第二操作的第二跟踪信息;以及在该GUI中与该第一GUI元素相关联地显示该第一跟踪信息中的至少一些以及与该第二GUI元素相关联地显示该第二跟踪信息中的至少一些。
Description
相关申请的交叉引用
本申请根据35 U.S.C.§120要求2017年12月8日提交的名称为“SYSTEMS ANDMETHODS FOR MONITORING EXECUTION OF STRUCTURED QUERY LANGUAGE(SQL)QUERIES[用于监测结构化查询语言(SQL)查询的执行的系统和方法]”的美国专利申请序列号15/835,823的权益并且是其部分继续申请,该美国专利申请通过引用以其整体并入本文。
背景技术
数据处理系统可以使用一个或多个计算机程序来处理数据。数据处理系统利用的一个或多个计算机程序可以被开发为数据流图。数据流图可以包括表示要对输入数据进行的数据处理操作的组件(称为“节点”或“顶点”)、以及组件之间的表示数据流的链路。数据流图的节点可以包括:表示相应输入数据集的一个或多个输入节点;表示相应输出数据集的一个或多个输出节点;以及表示要对数据进行的数据处理操作的一个或多个节点。用于执行由数据流图进行编码的计算的技术在名称为“Executing Computations Expressedas Graphs[执行表示为图的计算]”的美国专利号5,966,072以及名称为“ManagingParameters for Graph-Based Computations[管理基于图的计算的参数]”的美国专利7,716,630中进行了描述,这些美国专利中的每一个通过引用以其整体并入本文。
发明内容
一些实施例涉及一种数据处理系统,该数据处理系统包括:至少一个计算机硬件处理器;以及存储处理器可执行指令的至少一个非暂态计算机可读存储介质,这些指令在由该至少一个计算机硬件处理器执行时,使该至少一个计算机硬件处理器进行以下操作:获得联合结构化查询语言(SQL)查询;生成用于该联合SQL查询的查询计划,该查询计划包括要由该数据处理系统进行的多个数据处理操作,该多个数据处理操作至少包括第一数据处理操作和第二数据处理操作;显示包含多个图形用户界面(GUI)元素的GUI,该多个GUI元素包括表示该第一数据处理操作的第一GUI元素和表示该第二数据处理操作的第二GUI元素;在执行该联合SQL查询期间,采集该联合SQL查询的跟踪信息,包括采集该第一数据处理操作的第一跟踪信息和该第二数据处理操作的第二跟踪信息;以及在该GUI中与该第一GUI元素相关联地显示该第一跟踪信息中的至少一些以及与该第二GUI元素相关联地显示该第二跟踪信息中的至少一些。
一些实施例涉及一种存储处理器可执行指令的至少一个非暂态计算机可读存储介质,这些指令在由至少一个计算机硬件处理器执行时,使该至少一个计算机硬件处理器进行以下操作:获得联合结构化查询语言(SQL)查询;生成用于该联合SQL查询的查询计划,该查询计划包括要由该数据处理系统进行的多个数据处理操作,该多个数据处理操作至少包括第一数据处理操作和第二数据处理操作;显示包含多个图形用户界面(GUI)元素的GUI,该多个GUI元素包括表示该第一数据处理操作的第一GUI元素和表示该第二数据处理操作的第二GUI元素;在执行该联合SQL查询期间,采集该联合SQL查询的跟踪信息,包括采集该第一数据处理操作的第一跟踪信息和该第二数据处理操作的第二跟踪信息;以及在该GUI中与该第一GUI元素相关联地显示该第一跟踪信息中的至少一些以及与该第二GUI元素相关联地显示该第二跟踪信息中的至少一些。
一些实施例涉及一种由至少一个计算机硬件处理器进行的方法,该方法包括:获得联合结构化查询语言(SQL)查询;生成用于该联合SQL查询的查询计划,该查询计划包括要由该数据处理系统进行的多个数据处理操作,该多个数据处理操作至少包括第一数据处理操作和第二数据处理操作;显示包含多个图形用户界面(GUI)元素的GUI,该多个GUI元素包括表示该第一数据处理操作的第一GUI元素和表示该第二数据处理操作的第二GUI元素;在执行该联合SQL查询期间,采集该联合SQL查询的跟踪信息,包括采集该第一数据处理操作的第一跟踪信息和该第二数据处理操作的第二跟踪信息;以及在该GUI中与该第一GUI元素相关联地显示该第一跟踪信息中的至少一些以及与该第二GUI元素相关联地显示该第二跟踪信息中的至少一些。
一些实施例涉及一种存储处理器可执行指令的至少一个非暂态计算机可读存储介质,该至少一个非暂态计算机可读存储介质包括:用于获得联合结构化查询语言(SQL)查询的装置;生成用于该联合SQL查询的查询计划的装置,该查询计划包括要由该数据处理系统进行的多个操作,该多个操作至少包括第一数据处理操作和第二数据处理操作;用于显示包含多个图形用户界面(GUI)元素的GUI的装置,该多个GUI元素包括表示该第一数据处理操作的第一GUI元素和表示该第二数据处理操作的第二GUI元素;用于在执行该联合SQL查询期间进行以下操作的装置:采集该联合SQL查询的跟踪信息,包括采集该第一数据处理操作的第一跟踪信息和该第二数据处理操作的第二跟踪信息;以及在该GUI中与该第一GUI元素相关联地显示该第一跟踪信息中的至少一些以及与该第二GUI元素相关联地显示该第二跟踪信息中的至少一些。
在总体上适用于本发明的任何实施例,可以在执行SQL查询的同时显示向用户显示的跟踪信息,即,在由系统执行SQL查询的同时显示向用户显示的信息。
在总体上适用于本发明的任何实施例,关于SQL查询的数据处理操作的跟踪信息可以是指示针对给定数据记录集的特定数据处理操作的执行进展和/或可用于处理特定数据处理操作的计算资源的信息,该给定数据记录集作为该数据处理操作的一部分而处理。
在包括前述实施例中任一项的一些实施例中,执行该联合SQL查询包括:从第一类型的第一数据源读取数据记录和/或向其写入数据记录,以及从不同于该第一类型的第二类型的第二数据源读取数据记录和/或向其写入数据记录。
在包括前述实施例中任一项的一些实施例中,该多个操作包括用于访问第一类型的第一数据源中的数据记录的至少一个数据处理操作以及用于访问不同于该第一类型的第二类型的第二数据源中的数据记录的至少另一个数据处理操作。
在包括前述实施例中任一项的一些实施例中,该第一类型的第一数据源是平面文件数据源、多文件数据源、Hadoop数据源、Oracle数据源、Teradata数据源、DB2数据源、SQLServer数据源、Informix数据源、MongoDB数据源、SAP数据源、SAS数据源或元数据数据源。
在包括前述实施例中任一项的一些实施例中,如任一前述权利要求所述的数据处理系统,其中,该图形用户界面是非表格形式的。
在包括前述实施例中任一项的一些实施例中,如任一前述权利要求所述的数据处理系统,其中,显示该GUI包括至少部分地通过以下方式生成图的图形表示:生成该第一GUI元素以表示该图的与该第一数据处理操作相关联的第一节点;以及生成该第二GUI元素以表示该图的与该第二数据处理操作相关联的第二节点。
在包括前述实施例中任一项的一些实施例中,生成图的图形表示包括生成数据流图的图形表示,该数据流图是用于执行该SQL查询的数据流图。
在包括前述实施例中任一项的一些实施例中,生成该数据流图的图形表示进一步包括生成第三GUI元素,该第三GUI元素表示该数据流图的第一节点与该数据流图的第二节点之间的边。
在包括前述实施例中任一项的一些实施例中,这些处理器可执行指令进一步使该至少一个计算机硬件处理器进行以下操作:基于该查询计划,生成表示该数据流图的至少一个数据结构,该数据流图包括包含该第一节点和该第二节点的多个节点以及连接该多个节点的多个边,该多个节点中的每一个对应于该多个数据处理操作中的相应数据处理操作,该多个边表示该多个节点中的各个节点之间的数据流。
在包括前述实施例中任一项的一些实施例中,采集该第一操作的第一跟踪信息包括跟踪经由该第一数据处理操作处理的数据记录的数量,并且其中,经由该GUI显示该第一跟踪信息中的至少一些包括与该第一GUI元素相关联地显示经由该第一数据处理操作处理的数据记录的数量。
在包括前述实施例中任一项的一些实施例中,与该第一GUI元素相关联地显示经由该第一数据处理操作处理的数据记录的数量包括在该第一节点的输出端处显示经由该第一数据处理操作处理的数据记录的数量。
在包括前述实施例中任一项的一些实施例中,采集该第一数据处理操作的第二跟踪信息包括跟踪经由该第二数据处理操作处理的数据记录的数量,并且其中,经由该GUI显示该第二跟踪信息中的至少一些包括与该第二GUI元素相关联地显示经由该第二数据处理操作处理的数据记录的数量。
在包括前述实施例中任一项的一些实施例中,
采集该第一操作的第一跟踪信息包括采集选自由以下各项组成的组的跟踪信息:经由该第一数据处理操作处理的数据记录的数量、用于进行该第一数据处理操作的并行性程度、标识用于进行该第一数据处理操作的一个或多个计算设备的信息、用于进行该第一数据处理操作的处理资源量、用于进行该第一数据处理操作的存储器量、进行该第一数据处理操作所花费的总时间量、进行该第一数据处理操作的计算设备上的处理负荷之间的偏斜度量、该第一数据处理操作的参数、指示该第一数据处理操作是否完成的信息。
在包括前述实施例中任一项的一些实施例中,采集该第一数据处理操作的第一跟踪信息包括识别该第一数据处理操作的一个或多个参数,并且其中,显示该跟踪信息中的至少一些包括显示所识别的一个或多个参数中的至少一个参数的至少一个值。
在包括前述实施例中任一项的一些实施例中,这些处理器可执行指令进一步使该至少一个计算机硬件处理器进行以下操作:显示第二GUI,该第二GUI显示由该数据处理系统执行的一个或多个SQL查询的列表,该一个或多个SQL查询包括该SQL查询;以及响应于用户经由该第二GUI对该SQL查询的选择,生成包含该多个GUI元素的GUI,该多个GUI元素包括表示该第一数据处理操作的该第一GUI元素和表示该第二数据处理操作的该第二GUI元素。
在包括前述实施例中任一项的一些实施例中,这些处理器可执行指令进一步使该至少一个计算机硬件处理器进行以下操作:显示第二GUI,该第二GUI显示由该数据处理系统执行的一个或多个SQL查询的列表,该一个或多个SQL查询包括该SQL查询;以及响应于用户经由该第二GUI对该SQL查询的选择,停止执行该SQL查询。
在包括前述实施例中任一项的一些实施例中,该显示进一步包括刷新该第一跟踪信息中所显示的至少一些。
前述内容为本发明的非限制性发明内容,其由所附权利要求限定。
附图说明
将参照以下附图描述各个方面和实施例。应当理解,附图不一定按比例绘制。出现在多个附图中的项在其出现的所有附图中由相同或相似的附图标记指示。
图1是根据本文所描述的技术的一些实施例的说明性数据处理系统的图示。
图2是根据本文所描述的技术的一些实施例的说明性图形用户界面(GUI)的图示,其示出了关于数据处理系统中的活动查询(诸如结构化查询语言(SQL)查询)的信息。
图3是根据本文所描述的技术的一些实施例的说明性GUI的图示,其示出了由根据输入SQL查询生成的数据流图中的节点表示的多个数据处理操作的跟踪信息。
图4A是根据本文所描述的技术的一些实施例的另一说明性GUI的图示,其示出了关于数据处理系统中的活动查询的信息。
图4B是根据本文所描述的技术的一些实施例的另一说明性GUI的图示,其通过示出由根据输入SQL查询生成的数据流图中的节点表示的多个数据处理操作的跟踪信息来示出该输入SQL查询的跟踪信息。
图5A是根据本文所描述的技术的一些实施例的根据输入SQL查询自动生成的说明性数据流图的图示。
图5B是根据本文所描述的技术的一些实施例的说明性GUI的图示,其示出了由图5A的数据流图中的节点表示的多个数据处理操作的跟踪信息。
图5C是根据本文所描述的技术的一些实施例的根据输入SQL查询生成的数据流图中的数据处理操作的说明性跟踪信息的图示。
图5D是根据本文所描述的技术的一些实施例的与图5C中示出的数据处理操作相关联的参数的图示。
图6是根据本文所描述的技术的一些实施例的用于跟踪SQL查询的说明性过程600的流程图。
图7是可以用于实施本文所描述的技术的一些实施例的说明性计算系统环境的框图。
具体实施方式
本文所描述的技术的方面涉及通过改进用于执行结构化查询语言(SQL)查询的常规技术来提高数据处理系统的速度和吞吐量。
发明人已经理解,常规数据处理系统提供非常少的关于在其上执行的SQL查询的信息。例如,一些常规数据处理系统仅提供正在执行SQL查询的指示,并且用户必须等待以查看SQL查询是否完成以及何时完成。这让用户非常沮丧,因为用户不知道SQL查询将花费多长时间才能完成,或者究竟会不会完成。作为另一个示例,一些常规数据处理系统允许用户在完成SQL查询之后查看在执行SQL查询期间访问了数据库中的哪些行。此方法在执行SQL查询期间不提供任何信息,并且在完成SQL查询之后提供的信息具有有限的用途,因为此信息在执行SQL查询期间不可用,并且结果是,用户在不等待SQL查询完成的情况下无法停止和/或调整SQL查询,SQL查询完成可能花费很长时间。作为另一个示例,一些常规数据处理系统提供了对正在运行的每个SQL查询已消耗了多少处理功率的指示。然而,这样的系统不提供关于查询的完成已经取得多少进展的任何含义。例如,知道从开始执行SQL查询起已经经过了一个小时并不指示要完成查询的执行需要多少时间。
这些常规数据处理系统都没有在执行SQL查询期间提供关于为什么执行SQL查询会花费很长时间的诊断信息。发明人已经认识到在执行期间向用户提供这种信息可以改进常规数据处理系统的性能。因此,一些实施例提供了允许数据处理系统在执行SQL查询的同时向用户提供关于该SQL查询的详细信息的技术。例如,在执行SQL查询期间,数据处理系统可以向用户提供对由SQL查询所牵涉的每个数据处理操作处理了多少记录的指示。以这种方式,用户不仅可以查看输入表中已处理了多少行,而且还可以查看在任何给定时间这些记录中有多少记录已通过SQL查询的查询计划的每个阶段。
作为被提供了关于正在执行的SQL查询的详细跟踪信息的结果,用户可以查看SQL查询是否存在可能导致查询花费比预期长得多的时间的问题(例如,错误),并且他或她可以在执行SQL查询的同时进行此操作。类似地,用户可以查看执行计划中是否存在瓶颈或者是否存在优化SQL查询的方式。另外,用户可以查看其他状态信息,诸如在执行查询期间发生的溢出量。因此,用户可以停止具有错误或其他问题的SQL查询,优化SQL查询,以改进的方式重写SQL查询,所有这些都提高了速度、资源利用率(例如CPU、存储器和网络资源)、以及执行SQL查询的常规数据处理系统的吞吐量。
另外,本文所描述的技术允许数据处理系统提供联合SQL查询的详细跟踪信息,这些联合SQL查询是从/向不同类型的数据库系统读取和/或写入数据记录的SQL查询。常规数据处理系统不提供联合SQL查询的任何跟踪信息。
本文所描述的技术的一些实施例解决了常规数据处理系统和用于执行SQL查询的技术的以上讨论的缺点中的一些。然而,并非每个实施例都解决了这些缺点中的每个缺点,并且一些实施例可能不解决它们中的任何一个缺点。这样,应当理解,本文所描述的技术的方面不限于解决常规数据处理系统和用于执行SQL查询的技术的以上讨论的缺点中的所有或任何缺点。
因此,一些实施例提供了一种数据处理系统,该数据处理系统被配置为进行以下操作:(1)获得结构化查询语言(SQL)查询;(2)生成用于该SQL查询的查询计划,该查询计划包括要由该数据处理系统进行的多个操作,该多个操作至少包括第一操作和第二操作;(3)生成包含多个图形用户界面(GUI)元素的GUI,该多个GUI元素包括表示该第一操作的第一GUI元素和表示该第二操作的第二GUI元素;以及(4)在执行该SQL查询期间,采集该SQL查询的跟踪信息,包括采集该第一操作的第一跟踪信息和该第二操作的第二跟踪信息;以及在该GUI中与该第一GUI元素相关联地显示该第一跟踪信息中的至少一些以及与该第二GUI元素相关联地显示该第二跟踪信息中的至少一些。
在一些实施例中,所生成的GUI包括用于执行SQL查询的数据流图。可以根据查询计划生成数据流图,以包括:(1)用于表示第一数据处理操作的第一节点,(2)用于表示第二数据处理操作的第二节点,以及(3)从该第一节点到该第二节点的有向链路,该有向链路指示在使用第二数据处理操作对数据记录进行处理之前,使用第一数据处理操作对它们进行处理。在一些实施例中,GUI是非表格形式的(即,不是表)。
在一些实施例中,生成数据流图可以包括:基于查询计划,生成表示该数据流图的至少一个数据结构,该数据流图包括包含第一节点和第二节点的多个节点以及连接该多个节点的多个边,该多个节点中的每一个对应于多个操作中的相应操作,该多个边表示该多个节点中的各个节点之间的数据流。
在一些实施例中,采集第一操作的第一跟踪信息包括跟踪使用由数据流图中的节点表示的一个或多个数据处理操作中的每一个处理的数据记录的数量。针对每个数据处理操作,可以经由图形用户界面(例如,在数据流图中表示数据处理操作的节点附近)显示经由数据处理操作处理的数据记录的数量。
数据处理操作的跟踪信息的示例包括但不限于:经由第一操作处理的数据记录的数量、用于进行该第一操作的并行性程度、标识用于进行该第一操作的一个或多个计算设备的信息、用于进行该第一操作的处理资源量、用于进行该第一操作的存储器量、用于进行该第一操作的时间量(例如,进行该第一数据处理操作所花费的总时间量、优选地是针对为完成查询而处理的所有记录的总时间量)、进行该第一操作的计算设备上的处理负荷之间的偏斜度量、该第一操作的参数、指示该第一操作是否完成的信息。
在一些实施例中,查询计划中的多个操作包括用于访问第一类型的第一数据源中的数据记录的至少一个操作以及用于访问不同于该第一类型的第二类型的第二数据源中的数据记录的至少另一个操作。该第一类型的第一数据源可以是平面文件数据源、多文件数据源、Hadoop数据源、Oracle数据源、Teradata数据源、DB2数据源、SQL Server数据源、Informix数据源、MongoDB数据源、SAP数据源或元数据数据源。在一些实施例中,数据源可以不同于数据库表。
应当理解,可以以多种方式中的任何方式来实施上文介绍的和下文更详细讨论的技术,因为这些技术不限于任何特定实施方式。本文仅出于说明性目的提供了实施方式细节的示例。此外,由于本文所描述的技术的方面不限于使用任何特定技术或技术组合,因此本文所披露的技术可以单独使用或以任何合适的组合使用。
图1是根据本文所描述的技术的一些实施例的说明性数据处理系统100的图示。如图1中所展示的,数据处理系统100包括查询输入模块104、查询计划生成器106、数据流图生成器108、查询跟踪模块110和图执行引擎115。
数据处理系统100被配置为访问(例如,从中读取数据和/或向其中写入数据)数据存储装置102-1、102-2、…、和102-n。数据存储装置102-1、102-2、…、和102-n中的每一个可以存储一个或多个数据集。数据存储装置可以以任何合适的方式存储任何合适类型的数据。数据存储装置可以使用数据库系统(例如,关系数据库系统)或以任何其他合适的方式将数据存储为平面文本文件、电子表格。在一些实例中,数据存储装置可以存储交易数据。例如,数据存储装置可以存储信用卡交易、电话记录数据或银行交易数据。应当理解,数据处理系统100可以被配置为访问任何合适类型的任何合适数量的数据存储装置,因为本文所描述的技术的方面在这方面不受限制。可以将数据处理系统100可以被配置为从其读取数据的数据存储装置称为数据源。可以将数据处理系统100可以被配置为向其写入数据的数据存储装置称为数据接收器。
在一些实施例中,数据存储装置102-1、102-2、…、102-n可以是相同类型(例如,全部可以是关系数据库)或不同类型(例如,一种可以是关系数据库,而另一种可以是将数据存储在文件中的数据存储装置)。数据存储装置可以是SQL server数据存储装置、ORACLE数据存储装置、TERADATA数据存储装置、平面文件数据存储装置、多文件数据存储装置、HADOOP数据存储装置、DB2数据存储装置、Microsoft SQL SEVER数据存储装置、INFORMIX数据存储装置、SAP数据存储装置、MongoDB数据存储装置、元数据数据存储装置、和/或任何其他合适类型的数据存储装置,因为本文所描述的技术的方面在这方面不受限制。
在一些实施例中,查询输入模块104可以被配置为接收输入SQL查询。在一些实施例中,查询输入模块104可以被配置为从用户接收输入SQL查询。例如,查询输入模块104可以被配置为生成图形用户界面,用户可以通过该图形用户界面输入SQL查询。作为另一个示例,查询输入模块104可以被配置为接收由用户通过图形用户界面(该图形用户界面不一定由查询输入模块104本身生成)提供的信息。在一些实施例中,查询输入模块104可以被配置为从另一个计算机程序接收输入SQL查询。例如,查询输入模块104可以暴露可以通过其提供输入SQL查询的应用编程接口(API),可以响应于表明要访问SQL查询的通知来访问SQL查询,或者以任何其他合适的方式从另一个计算机程序接收输入SQL查询。
由查询输入模块104接收的SQL查询可以涉及从单个数据存储装置读取数据和/或向其写入数据。可替代地,由查询输入模块104接收的SQL查询可以涉及从多个数据存储装置读取数据和/或向其写入数据。当数据存储装置是不同类型时,SQL查询可以称为联合SQL查询。
在一些实施例中,查询计划生成器106被配置为根据来自由查询输入模块104接收的SQL查询的SQL查询来生成查询计划。如果执行了SQL查询,则所生成的查询计划可以标识要进行的一个或多个数据处理操作。所生成的查询计划可以进一步指定要执行所标识的数据处理操作的顺序。这样,所生成的查询计划可以表示为了执行由查询输入模块104接收的SQL查询而要进行的一系列数据处理操作。查询计划生成器106可以被配置为以任何合适的方式生成查询计划。例如,在一些实施例中,查询计划生成器106可以实施在名称为“Managing Data Queries[管理数据查询]”的美国专利号9,116,955中描述的用于生成查询计划的任何技术,该美国专利通过引用以其整体并入本文。
在一些实施例中,数据流图生成器108被配置为根据由查询计划生成器106生成的查询计划来生成数据流图。数据流图生成器108可以被配置为以任何合适的方式根据查询计划生成数据流图。例如,在一些实施例中,数据流图生成器108可以实施在名称为“Managing Data Queries[管理数据查询]”的美国专利号9,116,955中描述的用于生成查询计划的任何技术,该美国专利通过引用以其整体并入本文。
在一些实施例中,可以至少部分地通过以下方式根据查询计划生成数据流图:生成数据流图以包括针对在查询计划中标识的数据处理操作的至少一个子集(例如,一些或全部)中的每一个的节点。随后,查询计划中指定的数据处理操作的顺序可以用于生成连接数据流图中的节点的链路。例如,当所生成的查询计划指示在第二数据处理操作之前进行第一数据处理操作时,所生成的数据流图可以具有第一节点(表示第一数据处理操作)和第二节点(表示第二数据处理操作)以及指定从第一节点到第二节点的路径的一个或多个链路。
在一些实施例中,根据查询计划生成数据流图包括将一个或多个节点添加到表示输入和/或输出数据源的图。例如,生成数据流图可以包括为在执行SQL查询期间要从其中读取数据记录的每个数据源添加输入节点。每个输入节点可以配置有与相应数据源相关联的参数值。这些值可以指示如何访问数据源中的数据记录。作为另一个示例,生成数据流图可以包括为在执行SQL查询期间要向其写入数据记录的每个数据接收器添加输出节点。每个输出节点可以配置有与相应数据接收器相关联的参数值。这些值可以指示如何将数据记录写入数据源。
在一些实施例中,生成数据流图可以包括确定用于进行数据流图中的数据处理操作的处理布局。数据处理操作的处理布局可以指定要使用多少个计算设备来进行数据处理操作,并且可以标识要用于进行数据处理操作的特定计算设备。例如,生成数据流图可以包括:针对一个或多个节点中的每一个,确定是要使用单个设备(例如,单个处理器、单个虚拟机等)还是多个设备(例如,多个处理器、多个虚拟机等)以及应使用哪些设备来进行数据处理操作。在一些实施例中,可以将不同的并行性程度指派给不同的节点。这样,应当理解,可以将不同的处理布局指派给在执行数据流图期间要进行的不同的数据处理操作,该数据流图是根据由查询输入模块104获得的SQL查询而生成的。
在一些实施例中,图执行引擎115被配置为执行一个或多个数据流图,包括例如由数据流图生成器108生成的任何数据流图。图执行引擎可以包括协作系统或用于执行数据流图的任何其他合适的执行环境。用于开发和执行数据流图的环境的方面在名称为“Executing Computations Expressed as Graphs[执行表示为图的计算]”的美国专利号5,966,072以及名称为“Managing Parameters for Graph-Based Computations[管理基于图的计算的参数]”的美国专利7,716,630中进行了描述,这些美国专利中的每一个通过引用以其整体并入本文。
查询跟踪模块110被配置为在SQL查询的执行期间采集关于该SQL查询的跟踪信息。本文提供了跟踪信息的示例。例如,在一些实施例中,查询跟踪模块110可以被配置为在执行根据所接收的SQL查询生成(例如,使用查询计划器106和数据流图生成器108)的数据流图期间采集跟踪信息。在一些实施例中,图执行引擎115可以被配置为监测数据流图中的一个或多个数据处理操作中的每一个的执行,并且可以在执行期间收集可以从中获得跟踪数据的信息。所收集的信息可以直接包括至少一些跟踪数据和/或可以从所收集的信息中导出至少一些跟踪数据。通过举例而非限制,图执行引擎可以保持跟踪由特定数据处理操作处理的数据记录的数量、由数据处理操作利用的处理功率和/或存储器的量、和/或任何其他合适的跟踪信息,本文提供了其示例。此收集的信息进而可以包括正在采集的至少一些跟踪信息和/或可以从此收集的信息中导出至少一些跟踪信息。
图2是示出了关于数据处理系统中的活动查询的信息的说明性图形用户界面(GUI)200的图示。GUI 200可以提供关于数据处理系统中的一个或多个(例如,全部)活动查询中的每一个的执行的概要信息。如图2所示,GUI 200包括表201,该表具有针对在数据处理系统中活动的每个查询的行。活动查询可以是已开始执行但尚未完成的查询。
如图2所示,例如,表201包含行202、204和206,每行包含针对相应活动查询的信息。对于每个活动查询,对应行中的信息包括查询标识符(例如,行202中的“QID 1”)、用户标识符(例如,行202中的“UID 1”)、指示何时开始执行活动查询的信息(例如,行202中的“11:00:03”)、指示从开始执行活动查询的时间起经过了多少时间的信息(例如,行202中的“0:59:57”)、指示到目前为止在执行活动查询期间已处理了多少记录(例如,表中的行)的信息(例如,行202中的“506,239”)、以及指示活动查询的状态的信息(例如,行202中的“运行中”和行204中的“暂停”)。然而,应当理解,附加于或代替表201中所示的信息,表201可以包括关于每个活动查询的任何其他合适的信息,因为本文所描述的技术的方面在这方面不受限制。还应当理解,尽管在图2的说明性实施例中,关于活动查询的信息被示出为表的一部分,但是在其他实施例中,此信息中的至少一些可以以非表格形式(例如,使用图、图表、可视化、列表等)显示。
如图2所示,GUI 200进一步提供允许GUI 200的用户针对在数据处理系统上活动的一个或多个查询进行一个或多个动作的控制元素。例如,GUI 200提供GUI控制元素208,用户可以通过该GUI控制元素停止执行活动查询(例如,如果查询已经执行了比预期更长的时间,查询所处理的记录的数量比预期的大,等等)。例如,用户可以选择活动查询(例如,通过选择表201中的行),并选择GUI控制元素208(在此说明性示例中其为标记为“停止查询”的按钮,但可以是任何其他合适类型的GUI元素)以停止执行所选活动查询。在一些实施例中,停止执行所选活动查询可以使活动查询的执行被暂停,使得可以随后恢复其执行。在其他实施例中,停止执行所选活动查询可能导致该活动查询的执行被终止,使得查询无法恢复。
作为另一个示例,GUI 200提供了GUI控制元素210,用户可以通过该GUI控制元素来请求刷新关于活动查询的信息。例如,响应于用户对GUI控制元素210的选择,可以在表201中更新指示活动查询已执行了多长时间以及已处理了多少记录的信息。
作为另一个示例,GUI 200提供GUI控制元素212,用户可以通过该GUI控制元素请求提供关于特定活动查询的进一步信息。例如,在一些实施例中,用户可以选择活动查询(例如,通过选择表201中的行或以任何其他合适的方式),并选择GUI控制元素212(在此说明性示例中其为标记为“跟踪”的按钮,但可以是除按钮之外的任何合适类型的GUI元素),作为响应,可以生成另一个GUI并将其呈现给用户,该另一个GUI示出所选活动查询的更详细的跟踪信息。在一些实施例中,可以在非表格形式的图形用户界面中提供更详细的信息,其说明性示例在图3中示出并在下文进行讨论。
应当理解,附加于或代替控制元素208、210和212,GUI 200可以具有一个或多个其他控制元素,因为本文所描述的技术的方面在这方面不受限制。
图3是说明性GUI 300的图示,其示出了由根据输入SQL查询生成的数据流图中的节点表示的多个数据处理操作的跟踪信息。数据流图可以由数据处理系统100根据输入SQL查询生成,如参照图1所描述的。
如本文所描述的,数据流图可以包括多个节点,这些节点包括:(a)表示一个或多个相应数据源(例如,一个或多个输入数据集)的一个或多个输入节点;(b)表示一个或多个相应数据接收器(例如,一个或多个输出数据集)的一个或多个输出节点;和/或(c)表示可以对数据进行的数据处理操作的一个或多个节点。数据流图中各个节点之间的有向链路或边表示这些节点之间的数据流。
如图3所示,数据流图包括表示相应数据源的输入节点302和304、表示数据接收器的输出节点314、表示过滤操作的节点306和308、表示排序操作的节点310以及表示联接操作的节点312。因此,在一些实施例中,从由节点302表示的数据源获得的记录可以被过滤、排序并与从由节点304表示的数据源获得的过滤后的记录联接。作为联接操作的结果而产生的记录可以被输出到由输出节点314表示的数据接收器。
由输入节点302和304表示的数据源可以是任何合适的类型。在一些实施例中,由输入节点302和304表示的数据源可以是相同类型的数据源(例如,两者都可以是SQLServer数据源)。在其他实施例中,当输入SQL查询是联合查询时,由输入节点302和304表示的数据源可以是不同类型的(例如,一个数据源可以是ORACLE数据源,并且另一个数据源可以是TERADATA数据源)。在一些实施例中,输出节点314可以表示与由输入节点302和304表示的数据源中的一个或两个相同类型的数据接收器。在其他实施例中,由输出节点314表示的数据接收器可以完全是不同类型的(例如,数据源可以是DB2数据源,而数据接收器可以是MongoDB数据接收器)。
在一些实施例中,数据源/接收器可以是平面文件数据源/接收器、多文件数据源/接收器、HADOOP数据源/接收器、ORACLE数据源/接收器、TERADATA数据源/接收器、DB2数据源/接收器、Microsoft SQL SERVER数据源/接收器、INFORMIX数据源/接收器、MongoDB数据源/接收器、SAP数据源/接收器、元数据数据源/接收器、和/或任何其他合适类型的数据源或数据接收器,因为本文所描述的技术的方面在这方面不受限制。
如图3所示,GUI 300示出了SQL查询的各种类型的跟踪信息,根据该SQL查询生成了数据流图。例如,在执行根据SQL查询生成的数据流图期间,GUI300示出了由图中的节点表示的各个数据处理操作所处理的数据记录的数量。作为一个示例,GUI 300中示出的跟踪信息包括:(1)指示已从由输入节点302表示的数据源读取了35,000个记录的信息316;(2)指示已过滤了这35,000个记录中的10,000个的信息318;(3)指示已从由输入节点304表示的数据源读取了5,000个记录的信息320;(4)指示已过滤了这5,000个记录中的250个的信息322;以及(5)指示到目前为止由于联接操作,已生成了75,323个记录的信息324。
在一些实施例中,指示由数据处理操作处理的记录的数量的跟踪信息可以提供关于数据处理操作离完成有多接近的指示。例如,信息320和322指示,到目前为止,由节点308表示的过滤操作仅已处理了5000个数据记录中的250个。
在一些实施例中,指示由数据处理操作处理的记录的数量的跟踪信息可以提供表明正在执行的查询存在问题(例如,瓶颈或其他低效率情况)的指示。跟踪信息不仅可以帮助识别这种问题的存在,而且可以提出解决该问题的方式。例如,如图3所示,信息324指示正在从联接操作输出75,323个记录,该联接操作已从一个输入端接收不超过10,000个记录,并且已从另一输入端接收不超过250个记录。此信息不仅表明联接操作存在瓶颈,而且还提出了解决该问题的方式(例如,因为大量的输出记录表明可能正在进行外部联接,而不是可能打算进行的内部联接)。
在一些实施例中,可以与表示数据处理操作的数据流图节点(例如,节点312)相关联地示出指示由特定数据处理操作处理的记录的数量的信息(例如,信息324)。例如,可以在节点的输出端处(例如,在离开节点的边附近、上方、下方)示出处理的记录的数量。作为另一个示例,可以在节点的输入端处、节点内、节点上方或节点下方示出处理的记录的数量,因为本文所描述的技术的方面在这方面不受限制。
可以在GUI 300中示出的针对SQL查询的跟踪信息的另一个示例是指示一个或多个数据处理操作中的每一个是否已完成的信息。例如,如图3所示,复选标记325和327指示由节点306和308表示的过滤操作已完成。相比而言,符号326和328提供表明尚未完成排序和联接操作的相应指示。
可以在GUI 300中示出的针对SQL查询的跟踪信息的另一个示例是关于由数据流图中的节点表示的一个或多个数据处理操作中的每一个的信息。在一些实施例中,可以响应于用户提供指示该用户希望查看关于特定数据处理操作的更多跟踪信息的输入来揭示这样的信息(例如,通过点击表示数据处理操作的节点、通过将光标移动到表示数据处理操作的节点上、或以任何其他合适的方式)。
关于数据处理操作的信息的示例包括但不限于:已经经由数据处理操作处理的数据记录的数量、用于进行数据处理操作的并行性程度(例如,用于进行数据处理操作的物理和/或虚拟设备的数量)、标识用于进行数据处理操作的一个或多个物理和/或虚拟设备的信息、用于进行数据处理操作的处理资源量(例如CPU利用率)、用于进行数据处理操作的存储器(易失性和/或非易失性存储器)量、用于进行数据处理操作的时间量(例如,进行第一数据处理操作所花费的总时间量、优选地是针对为完成查询而处理的所有记录的总时间量)、进行数据处理操作的物理和/或虚拟计算设备上的处理负荷之间的偏斜度量、数据处理操作的参数(例如,正在其上进行联接操作的键、正在其上进行排序操作的键等)、指示到数据处理操作完成为止的剩余时间的估计的信息、以及指示数据处理操作是否完成的信息。
图4A是根据本文所描述的技术的一些实施例的另一说明性GUI 400的图示,其示出了关于数据处理系统中的活动查询的信息。GUI 400允许用户输入一个或多个SQL查询,查看基于输入SQL查询生成的数据流图,查看关于正在由数据处理系统执行的活动查询的概要信息,以及在输入SQL查询的执行期间访问其跟踪信息。
如图4A所示,GUI 400包括输入部分402,用户可以使用该输入部分将SQL查询输入到数据处理系统中。用户可以通过键入、剪切和粘贴、指定和/或以任何其他合适的方式将SQL查询提供到输入部分402中,因为本文所描述的技术的方面在这方面不受限制。在图4A中将说明性SQL查询404示出为已被输入到输入部分402中。用户可以选择GUI控制元素406以开始执行所输入的SQL查询404。用户可以选择GUI控制元素408以查看根据所输入的SQL查询404生成的数据流图(例如,如参照图1所描述的,使用查询计划生成器106和数据流图生成器108生成)。用户可以选择GUI控制元素410以保存根据所输入的SQL查询404生成的图。用户可以选择GUI控制元素412以清除所输入的SQL查询404。
GUI 400还包括一个部分,该部分示出关于数据处理系统中的活动查询的信息。例如,如图4A所示,活动查询选项卡415包括表417,该表具有针对在数据处理系统中活动的每个查询的信息行。例如,表417包括行414,该行包含相应活动查询的信息,该信息包括查询标识符(行414的第一列)、用户标识符(行414的第二列)、指示何时开始执行活动查询的信息(行414的第三列)、指示到目前为止在执行活动查询期间已处理了多少记录的信息(行414的第四列)、以及指示活动查询的状态的信息(行414的第五列)。附加于或代替表417中所示的信息,表417可以包括关于每个活动查询的任何其他合适的信息,因为本文所描述的技术的方面在这方面不受限制。尽管在图4A的说明性实施例中,关于活动查询的信息被示出为表的一部分,但是在其他实施例中,此信息中的至少一些可以以非表格形式(例如,使用图、图表、可视化、列表等)显示。即使在图4A中仅示出了单个行,但表417可以包括任何合适数量的行,因为本文所描述的技术的方面在这方面不受限制。
如图4A所示,GUI 400进一步提供允许GUI 400的用户针对在数据处理系统上活动的一个或多个查询进行一个或多个动作的控制元素。例如,GUI 400提供GUI控制元素418,用户可以通过该GUI控制元素停止执行活动查询(例如,如果查询已经执行了比预期更长的时间,查询所处理的记录的数量比预期的大,等等)。作为另一个示例,GUI 400提供了GUI控制元素420,用户可以通过该GUI控制元素来请求刷新关于活动查询的信息。例如,响应于用户对GUI控制元素420的选择,可以在表417中更新指示活动查询已执行了多长时间以及已处理了多少记录的信息。作为又一个示例,GUI 400提供GUI控制元素416,用户可以通过该GUI控制元素请求提供关于特定活动查询的进一步信息。例如,在一些实施例中,用户可以选择活动查询(例如,通过选择表417中的行或以任何其他合适的方式),并选择GUI控制元素416(在此说明性示例中其为标记为“跟踪”的按钮,但可以是除按钮之外的任何合适类型的GUI元素),作为响应,可以生成另一个GUI并将其呈现给用户,该另一个GUI示出所选活动查询的更详细的跟踪信息。在一些实施例中,可以在非表格形式的图形用户界面中提供更详细的信息,其说明性示例在图4B中示出并在下文进行讨论。附加于或代替控制元素416、418和420,GUI 400可以具有一个或多个其他控制元素,因为本文所描述的技术的方面在这方面不受限制。
应当理解,附加于或代替图4A中展示的GUI控制元素,GUI 400可以包括一个或多个其他GUI控制元素。还应当理解,尽管在图4A的示例中示出的GUI控制元素是按钮,但是GUI控制元素可以是任何其他合适的类型(例如,单选按钮、复选框、文本字段等),因为本文所描述的技术的方面在这方面不受限制。
图4B是根据本文所描述的技术的一些实施例的另一说明性GUI 450的图示,其通过示出由根据输入SQL查询生成的数据流图中的节点表示的多个数据处理操作的跟踪信息来示出该输入SQL查询的跟踪信息。在该示例中,图4B中示出的跟踪信息是针对活动查询的,该活动查询的概要信息在图4A中示出的GUI 400中的表417的行414中被示出。
如图4B所示,数据流图包括表示相应数据源的输入节点452和456、表示数据接收器的输出节点468、表示重新分区操作的节点454、表示排序操作的节点458、表示联接数据处理操作的节点460、表示序列化数据处理操作的节点462、以及表示用于准备要使用TCP连接来发布的数据记录的与输出有关的处理的节点464和466。
由输入节点452和454表示的数据源可以是任何合适的类型。在一些实施例中,由输入节点452和454表示的数据源可以是相同类型的数据源(例如,两者都可以是SQLServer数据源)。在其他实施例中,当输入SQL查询是联合查询时,由输入节点452和454表示的数据源可以是不同类型的(例如,一个数据源可以是ORACLE数据源,并且另一个数据源可以是TERADATA数据源)。在一些实施例中,输出节点468可以表示与由输入节点452和454表示的数据源中的一个或两个相同类型的数据接收器。在其他实施例中,由输出节点468表示的数据接收器可以完全是不同类型的(例如,数据源可以是DB2数据源,而数据接收器可以是MongoDB数据接收器)。
如图4B所示,GUI 450示出了SQL查询的各种类型的跟踪信息,根据该SQL查询生成了数据流图。例如,在执行根据SQL查询生成的数据流图期间,GUI450示出了由图中的节点表示的各个数据处理操作所处理的数据记录的数量。作为一个示例,GUI 350中示出的跟踪信息包括:(1)指示已从由输入节点452表示的数据源读取了1百万个记录的信息;(2)指示已通过重新分区操作的所有这些记录的信息;(3)指示已通过排序数据处理操作处理了7,299个记录的信息;(4)指示已从由输入节点456表示的数据源读取了740个记录的信息;(5)指示已通过由输入节点460表示的联接操作处理了4,112个记录的信息;以及(6)指示分别由节点464、466和468表示的操作已处理了2541、3214和2790个记录的信息。另外,节点454中所示的复选标记指示已将由节点454表示的数据处理(重新分区)操作应用于所有数据记录,而“播放”符号(指向右侧的三角形)指示尚未完成针对由节点458至468表示的操作的处理。
图5A是根据本文所描述的技术的一些实施例的根据输入SQL查询自动生成的说明性数据流图500的图示。例如,可以例如通过以下方式或以任何其他合适的方式根据输入SQL查询生成数据流图500:通过使用查询计划生成器(例如,查询计划生成器106)根据输入查询生成查询计划,并且随后通过使用数据流图生成器(例如,数据流生成器108)根据所生成的查询计划生成数据流图500,因为本文所描述的技术的方面在这方面不受限制。
如图5A所示,数据流图500包括表示相应数据源(例如,信用卡交易的数据库)的输入节点502和506、用于通过网络(例如,使用传输控制协议(TCP))输出数据记录的节点516和518、表示由其从数据记录中移除一个或多个列的丢弃列操作的节点504、表示广播操作的节点506、表示联接数据处理操作的节点510、表示部分计数操作的节点512、以及表示计数数据处理操作的节点514。图500从其读取记录的数据源和/或图500向其写入记录的数据接收器可以是任何合适的类型,本文提供了其示例。
图5B是根据本文所描述的技术的一些实施例的说明性GUI的图示,其示出了由图5A的数据流图500中的节点表示的多个数据处理操作的跟踪信息。图5B示出了数据流图500的子图520,该子图上覆盖有跟踪信息。例如,如图5B所示,在执行数据流图500期间,在GUI中示出了由子图520中的节点表示的数据处理操作中的至少一些处理的数据记录的数量。作为一个示例,图5B中示出的跟踪信息包括:(1)指示已使用由节点504表示的丢弃列操作处理了917,504个记录的信息505;(2)指示已从由输入节点508表示的数据源访问了128,498个记录的信息509a;(3)指示已使用由节点506表示的广播操作处理了1,048,576个记录的信息509b;以及(4)指示作为由节点510表示的联接操作的结果已输出了139,032,831个记录的信息511,这可能指示没有高效地实施联接操作。
如本文所描述的,SQL查询的跟踪信息不仅限于由根据SQL查询生成的数据流图中由各种数据处理操作处理的数据记录的数量。跟踪信息可以包括关于数据流图中的一个或多个数据处理操作中的每一个的任何其他合适的信息。例如,通过举例而非限制,数据处理操作的跟踪信息可以包括:(1)指示用于进行数据处理操作的并行性程度的信息;(2)标识用于进行数据处理操作的一个或多个计算设备的信息;(3)指示用于进行数据处理操作的处理资源量的信息(例如,使用的处理资源总量、每个记录或每阈值数量个记录所使用的平均处理资源量、和/或任何其他合适的统计数据);(3)指示用于进行数据处理操作的存储器量的信息(例如,所使用的存储器总量、每个记录或每阈值数量个记录所使用的平均存储器量、和/或任何其他合适的统计数据);(4)指示用于进行数据处理操作的时间量的信息(例如,经过的总时间量、每个记录或每阈值数量个记录用于应用数据处理操作的平均时间量、和/或任何其他合适的统计数据);(5)指示进行数据处理操作的计算设备上的处理负荷之间的偏斜度量的信息;(6)指示使用数据处理操作处理记录(或阈值数量的记录或以其他方式指定的量的记录)的速率的信息;(7)指示数据处理操作的一个或多个参数的值的信息;以及(8)指示第一操作是否完成的信息。
如本文所讨论的,在一些实施例中,SQL查询的跟踪信息包括针对根据SQL查询生成的数据流图中的一个或多个数据处理操作中的每一个的跟踪信息。在一些实施例中,可以与数据流图一起示出数据处理操作的至少一些跟踪信息。例如,如图5B所示,可以在数据流图中表示数据处理操作的节点附近示出由数据流图中的该数据处理操作处理的记录的数量。在一些实施例中,可以响应于指示用户期望查看附加跟踪信息的用户输入来示出数据处理操作的至少一些跟踪信息。例如,在一些实施例中,用户可以选择数据处理操作,并且可以响应于该选择而示出该数据处理操作的至少一些跟踪信息。用户可以通过点击表示数据处理操作的节点、将鼠标指针定位在该节点上方(例如,鼠标悬停事件)、提供键盘输入和/或以任何其他合适的方式来选择数据处理操作,因为本文所描述的技术的方面在这方面不受限制。
例如,如图5C所示,用户可以选择表示联接数据处理操作的节点510,并且响应于用户的选择,示出了联接信息的附加跟踪信息。在图5C的示例中,针对图5C示出的跟踪信息包括指示所处理的记录的数量的信息、所利用的存储器总量、所利用的处理资源总量、每秒处理的平均记录数量、每秒处理千字节(kB)记录的平均时间量、以及允许用户查看联接操作的各种参数的值的链接点击,这些参数的说明性示例在图5D中示出。
图5D是根据本文所描述的技术的一些实施例的与图5C中示出的联接数据处理操作相关联的参数中的至少一些的值的表550。例如,表550示出:联接数据处理操作被配置为接收已排序的输入(参见表550的第二行);联接操作是内部联接(参见第四行);联接操作将要假设而不是检查数据是否已排序(参见第十三行);以及其他参数值。
图6是根据本文所描述的技术的一些实施例的用于跟踪SQL查询的说明性过程600的流程图。可以使用任何合适的数据处理系统来执行过程600,该数据处理系统包括例如参照图1描述的数据处理系统100。
过程600在动作602处开始,在该动作中,接收SQL查询。在一些实施例中,作为用户将SQL查询作为输入提供给数据处理系统的结果,可以由执行过程600的数据处理系统接收SQL查询。用户可以通过图形用户界面(例如,如图4A所示)或任何其他合适的界面输入SQL查询。在其他实施例中,可以通过另一个计算机程序将SQL查询提供给数据处理系统。例如,SQL查询可以由计算机程序提供,该计算机程序被配置为使数据处理系统执行一个或多个SQL查询,该一个或多个SQL查询中的每一个可以已由用户指定或自动生成。SQL查询可以是任何合适的类型,并且可以以任何合适的格式提供,因为本文所描述的技术的方面在这方面不受限制。
接下来,过程600进行到动作604,在该动作中,根据在动作602处接收的SQL查询生成查询计划。如果执行了SQL查询,则所生成的查询计划可以标识要进行的一个或多个数据处理操作。所生成的查询计划可以进一步指定要执行所标识的数据处理操作的顺序。这样,所生成的查询计划可以表示为了执行在动作602处接收的SQL查询而要进行的一系列数据处理操作。可以使用任何合适的类型的查询计划生成器(例如,查询计划生成器106)来生成所生成的查询计划。在名称为“Managing Data Queries[管理数据查询]”的美国专利号9,116,955中描述了用于生成查询计划的一些说明性技术,该美国专利通过引用以其整体并入本文。
接下来,过程600进行到动作606,在该动作中,使用在动作602处接收的SQL查询根据在动作604处生成的查询计划生成数据流图。在一些实施例中,可以至少部分地通过以下方式根据查询计划生成数据流图:生成数据流图以包括针对在查询计划中标识的数据处理操作的至少一个子集(例如,一些或全部)中的每一个的节点。随后,查询计划中指定的数据处理操作的顺序可以用于生成连接数据流图中的节点的链路。例如,当所生成的查询计划指示在第二数据处理操作之前进行第一数据处理操作时,所生成的数据流图可以具有第一节点(表示第一数据处理操作)和第二节点(表示第二数据处理操作)以及指定从第一节点到第二节点的路径的一个或多个链路。
在一些实施例中,根据查询计划生成数据流图包括将一个或多个节点添加到表示输入和/或输出数据源的图。例如,生成数据流图可以包括为在执行SQL查询期间要从其中读取数据记录的每个数据源添加输入节点。每个输入节点可以配置有与相应数据源相关联的参数值。这些值可以指示如何访问数据源中的数据记录。作为另一个示例,生成数据流图可以包括为在执行SQL查询期间要向其写入数据记录的每个数据接收器添加输出节点。每个输出节点可以配置有与相应数据接收器相关联的参数值。这些值可以指示如何将数据记录写入数据源。
在一些实施例中,生成数据流图可以包括确定用于进行数据流图中的数据处理操作的处理布局。数据处理操作的处理布局可以指定要使用多少个计算设备来进行数据处理操作,并且可以标识要用于进行数据处理操作的特定计算设备。例如,生成数据流图可以包括:针对一个或多个节点中的每一个,确定是要使用单个设备(例如,单个处理器、单个虚拟机等)还是多个设备(例如,多个处理器、多个虚拟机等)以及应使用哪些设备来进行数据处理操作。在一些实施例中,可以将不同的并行性程度指派给不同的节点。这样,应当理解,可以将不同的处理布局指派给在执行数据流图期间要进行的不同的数据处理操作,该数据流图是根据在动作602处获得的SQL查询而生成的。
应当理解,在动作606处生成的数据流图不同于在动作604处生成的查询计划。数据流图可以由图执行引擎(例如,图执行引擎115)执行,而查询计划不能由图执行引擎执行——查询计划是用于生成数据流图的中间表示,该数据流图由图执行引擎执行以便执行SQL查询。查询计划是不可执行的,并且即使在关系数据库管理系统的背景下,也需要对其进行进一步处理以生成执行策略。相比而言,数据流图可由图执行引擎执行,以便进行SQL查询。另外,即使在由关系数据库系统进行进一步处理之后,所得的执行策略也不允许从其他类型的数据源和/或数据接收器读取数据和/或向其写入数据,而数据流图在这方面不受限制。
在一些实施例中,在动作606处生成的数据流图可以包含表示数据处理操作的节点,该数据处理操作不在动作604处生成的查询计划中。相反地,在一些实施例中,在动作606处生成的数据流图可以不包含表示数据处理操作的节点,该数据处理操作在动作604处生成的查询计划中。此类情况可能是由于在根据查询计划生成数据流图的过程期间可能进行的各种优化而引起的。在一些实施例中,在动作606处生成的数据流图可以包含表示除了正在数据库计算机系统(例如,关系数据库管理系统)上进行的数据库操作之外的数据处理操作的节点。
在一些实施例中,查询计划和数据流图可以在不同类型的数据结构中实施。例如,在一些实施例中,查询计划可以在有向图中实施,在该有向图中,每个节点具有单个父节点(例如,诸如二叉树等树),而数据流图可以在有向非循环图中实施,该有向非循环图可能具有带有多个父节点的至少一个节点。
接下来,过程600进行到动作608,在该动作中,开始执行SQL查询。在一些实施例中,可以通过使用图执行引擎(例如,图执行引擎115)开始执行在动作606处生成的数据流图来开始执行SQL查询。在一些实施例中,在动作606处生成的数据流图一经生成就可以立即执行,而无需任何用户输入。在其他实施例中,可以生成在动作606处生成的数据流图,但是其执行可以仅响应于这样做的命令而开始,该命令可以由用户通过界面(例如,通过图4A中示出的GUI)或由其他计算机程序(例如,通过API调用)来提供。
接下来,过程600进行到动作610,在该动作中,采集正在执行的SQL查询的跟踪信息。这可以以任何合适的方式来完成。例如,执行在动作606处生成的数据流图的图执行引擎可以被配置为监测数据流图中的一个或多个数据处理操作中的每一个的执行,并且可以在执行期间收集可以从中获得跟踪数据的信息。所收集的信息可以直接包括至少一些跟踪数据和/或可以从所收集的信息中导出至少一些跟踪数据。通过举例而非限制,图执行引擎可以保持跟踪由特定数据处理操作处理的数据记录的数量、由数据处理操作利用的处理功率和/或存储器的量、和/或任何其他合适的跟踪信息,本文提供了其示例。此收集的信息进而可以包括正在采集的至少一些跟踪信息和/或可以从此收集的信息中导出至少一些跟踪信息。
接下来,过程600进行到动作612和614,在这些动作中,可以生成用于显示针对SQL查询的跟踪信息的GUI,并且将其用于显示SQL查询的跟踪信息。在一些实施例中,GUI可以包括在动作606处根据SQL查询生成的数据流图的视觉表示。此类GUI的示例在图3、图4B和图5A至图5C中示出。GUI可以在与数据流图相同的屏幕上显示至少一些跟踪信息。例如,GUI可以显示由各个数据处理操作处理的数据记录的数量。作为另一个示例,GUI可以显示数据处理操作的参数的一个或多个值。在一些实施例中,GUI可以显示(自动地或响应于表明这样做的用户指示)附加跟踪信息。本文中描述了包括参照图5C和图5D的其示例。
接下来,过程600进行到动作616,在该动作中,确定是否继续采集跟踪数据。此确定可以以任何合适的方式进行。例如,在一些实施例中,如果数据流图的执行已经完成、取消或暂停(例如,响应于从用户或另一个计算机程序接收到暂停执行的指示),则可以确定不继续采集跟踪数据并且过程600完成。另一方面,如果数据流图的执行正在进行中(例如,尚未完成、未取消或未暂停),则可以确定要继续采集跟踪信息,并且过程600返回到动作610。
应当理解,过程600是说明性的,并且存在变型。例如,在一些实施例中,跟踪信息可以被采集和存储以供后续使用,但是用于显示跟踪信息的GUI可以不被生成,或者可以被生成并且不被显示。在这样的实施例中,动作610、612和614中的任何一个、任何两个或全部可以被省略。在一些实施例中,过程600的动作602至608可以由一个软件程序进行,并且动作610至614可以由不同的计算机程序进行。
图7展示了可以在其上实施本文所描述的技术的合适计算系统环境700的示例。计算系统环境700仅是合适的计算环境的一个示例,并且不旨在对本文所描述的技术的使用或功能的范围提出任何限制。也不应当将计算环境700解释为具有与示例性操作环境700中展示的部件中的任何一个或组合相关的任何依赖性或要求。
本文所描述的技术与许多其他通用或专用计算系统环境或配置一起操作。可以适合与本文所描述的技术一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于:个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机、大型计算机、包括上述系统或设备中任一个的分布式计算环境等。
计算环境可以执行计算机可执行指令,诸如程序模块。通常,程序模块包括进行特定任务或实施特定抽象数据类型的例程、程序、对象、组件、数据结构等。本文所描述的技术还可以在分布式计算环境中实践,其中,任务由通过通信网络链接的远程处理设备进行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。
参照图7,用于实施本文所描述的技术的示例性系统包括呈计算机710形式的通用计算设备。计算机710的部件可以包括但不限于处理单元720、系统存储器730、以及将包括系统存储器的各种系统部件耦合到处理单元720的系统总线721。系统总线721可以是包括存储器总线或存储器控制器、外围总线和使用各种总线架构中的任何架构的本地总线的若干类型的总线结构中的任何总线结构。通过举例而非限制,此类架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)本地总线、以及外围部件互连(PCI)总线(也称为夹层(Mezzanine)总线)。
计算机710通常包括各种计算机可读介质。计算机可读介质可以是可由计算机710访问的任何可用介质,并且包括易失性和非易失性介质、可移除和不可移除介质。通过举例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实施的用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的易失性和非易失性介质、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存存储器或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、或者可用于存储期望信息并可由计算机710访问的任何其他介质。通信介质通常以诸如载波或其他传输机制等已调制数据信号来实施计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息递送介质。术语“已调制数据信号”是指以编码信号中的信息的这种方式使其特征中的一个或多个被设置或改变的信号。通过举例而非限制,通信介质包括有线介质(诸如有线网络或直接有线连接)以及无线介质(诸如声学、RF、红外线及其他无线介质)。上述中的任一个的组合也应包括在计算机可读介质的范围内。
系统存储器730包括呈易失性和/或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM)731和随机存取存储器(RAM)732。包含诸如在启动期间帮助在计算机710内的元件之间传输信息的基本例程的基本输入/输出系统733(BIOS)通常存储在ROM 731中。RAM 732通常包含可由处理单元720立即访问和/或当前正在操作的数据和/或程序模块。通过举例而非限制,图7展示了操作系统734、应用程序735、其他程序模块736和程序数据737。
计算机710还可以包括其他可移除/不可移除、易失性/非易失性计算机存储介质。仅通过举例,图7展示了读取或写入不可移除的非易失性磁介质的硬盘驱动器741、读取或写入可移除的非易失性存储器752(诸如闪存存储器)的闪存驱动器751、以及读取或写入可移除的非易失性光盘756(诸如CD ROM或其他光学介质)的光盘驱动器755。可以用于示例性操作环境中的其他可移除/不可移除、易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字通用盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器741通常通过诸如接口740等不可移除存储器接口连接至系统总线721,并且磁盘驱动器751和光盘驱动器755通常由诸如接口750等可移除存储器接口连接至系统总线721。
上面讨论并在图7中展示的驱动器及其相关联的计算机存储介质为计算机710提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。例如,在图7中,硬盘驱动器741被展示为存储操作系统744、应用程序745、其他程序模块746和程序数据747。注意,这些部件与操作系统734、应用程序735、其他程序模块736和程序数据737可以是相同或不同的。这里给予了操作系统744、应用程序745、其他程序模块746和程序数据747不同的编号,以说明至少它们是不同的副本。用户可以通过诸如键盘762和指向设备761(通常称为鼠标、轨迹球或触摸板)等输入设备将命令和信息输入到计算机710中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其他输入设备通常通过耦合到系统总线的用户输入接口760连接到处理单元720,但可以由诸如并行端口、游戏端口或通用串行总线(USB)等其他接口和总线结构来连接。监视器791或其他类型的显示设备也经由诸如视频接口790等接口连接至系统总线721。除了监视器之外,计算机还可以包括可通过输出外围接口795连接的其他外围输出设备,诸如扬声器797和打印机796。
计算机710可以使用与一个或多个远程计算机(诸如远程计算机780)的逻辑连接在联网环境中操作。远程计算机780可以是个人计算机、服务器、路由器、网络PC、对等设备、或其他常见网络节点,并且通常包括以上关于计算机710描述的元件中的许多或全部,但是在图7中仅展示了存储器存储设备781。图7中描绘的逻辑连接包括局域网(LAN)771和广域网(WAN)773,但是还可以包括其他网络。这种联网环境在办公室、企业范围计算机网络、内联网和互联网中是普遍的。
当在LAN联网环境中使用时,计算机710通过网络接口或适配器770连接到LAN771。当在WAN联网环境中使用时,计算机710通常包括调制解调器772或用于通过诸如互联网等WAN 773建立通信的其他装置。调制解调器772可以是内置的或外置的,其可以经由用户输入接口760或其他适当的机制连接到系统总线721。在联网环境中,关于计算机710描绘的程序模块或是其部分可以存储在远程存储器存储设备中。通过举例而非限制,图7展示了远程应用程序785驻留在存储器设备781上。应当理解,所示出的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他手段。
如此描述了本发明的至少一个实施例的若干方面之后,应当理解,本领域技术人员会容易想到各种更改、修改以及改进。
这种更改、修改以及改进旨在是本披露内容的一部分、并且旨在落入本发明的精神和范围之内。此外,尽管指示了本发明的优点,但应当理解,并非本文所描述的技术的每个实施例都将包括每个描述的优点。一些实施例可以不实施在本文中描述为有利的任何特征,并且在一些情况下,可以实施描述的特征中的一个或多个以实现进一步的实施例。因而,先前的描述和附图仅是通过举例的方式。
本文所描述的技术的上述实施例可以以多种方式中的任一种来实施。例如,可以使用硬件、软件或其组合来实施这些实施例。当在软件中实施时,可以在任何合适的处理器或处理器集合上执行软件代码,无论该处理器或处理器集合是设置在单个计算机中还是分布在多个计算机中。此类处理器可以被实施为集成电路(其中,一个集成电路部件中具有一个或多个处理器),包括名称为诸如CPU芯片、GPU芯片、微处理器、微控制器或协处理器等本领域已知的商用集成电路部件。可替代地,处理器可以以定制电路系统(诸如ASIC)或者通过配置可编程逻辑设备产生的半定制电路系统来实施。作为又一替代方案,处理器可以是较大电路的一部分或半导体器件,无论是商用的、半定制的还是定制的。作为具体示例,一些商用微处理器具有多个核,使得这些核中的一个或子集可以构成处理器。然而,处理器可以使用呈任何合适格式的电路系统来实施。
进一步地,应当理解,计算机可以实施为多种形式中的任何形式,诸如机架式计算机、台式计算机、膝上型计算机或平板计算机。另外,计算机可以嵌入在通常不被认为是计算机但具有合适的处理能力的设备中,该设备包括个人数字助理(PDA)、智能手机或任何其他合适的便携式或固定式电子设备。
而且,计算机可以具有一个或多个输入设备和输出设备。这些设备可以尤其用于呈现用户接口。可以用于提供用户接口的输出设备的示例包括用于对输出进行视觉呈现的打印机或显示屏,以及用于对输出进行听觉呈现的扬声器或其他声音生成设备。可以用于用户接口的输入设备的示例包括键盘和指向设备(诸如鼠标、触摸板以及数字化平板)。作为另一个示例,计算机可以通过语音识别或以其他可听格式接收输入信息。
这种计算机可以由呈任何合适的形式的一个或多个网络来互连,该一个或多个网络包括局域网或广域网,诸如企业网或互联网。这种网络可以基于任何合适的技术并且可以根据任何合适的协议来运行,并且可以包括无线网络、有线网络或光纤网络。
而且,本文中概括的各种方法或过程可以被编码为在采用各种操作系统或平台中的任一种的一个或多个处理器上可执行的软件。另外,这种软件可以使用多种合适的编程语言和/或编程或脚本工具中的任一种来编写,并且还可以被编译为可执行的机器语言代码或在框架或虚拟机上执行的中间代码。
在这方面,本发明可以被实施为用一个或多个程序进行编码的计算机可读存储介质(或多个计算机可读介质)(例如,计算机存储器、一个或多个软盘、压缩光盘(CD)、光盘、数字视频盘(DVD)、磁带、闪存存储器、现场可编程门阵列或其他半导体器件中的电路配置、或其他有形计算机存储介质),该一个或多个程序在一个或多个计算机或其他处理器上执行时进行实施以上讨论的本发明的各种实施例的方法。如从前文示例将清楚明白,计算机可读存储介质可以将信息保留足够的时间,以便提供呈非暂态形式的计算机可执行指令。这种计算机可读存储介质可以是可运送的,使得其上存储的一个或多个程序可以载入到一个或多个不同的计算机或其他处理器上,以实施如上讨论的本发明的各个方面。如本文使用的,术语“计算机可读存储介质”仅涵盖可被看作是制品(即,制造物品)或机器的非暂态计算机可读介质。可替代地或另外,本发明可以实施为除了计算机可读存储介质之外的计算机可读介质,诸如传播信号。
术语“程序”或“软件”在本文中在一般意义上使用,以指代任何类型的计算机代码或计算机可执行指令集,这些计算机代码或计算机可执行指令集可以被用来对计算机或其他处理器进行编程以实施如上讨论的本发明的各个方面。另外,应该理解,根据此实施例的一个方面,当被执行时进行本发明的方法的一个或多个计算机程序不必驻留在单个计算机或处理器上,而是可以用模块化的方式分布在多个不同的计算机或处理器中以实施本发明的各个方面。
计算机可执行指令可以呈由一个或多个计算机或其他设备执行的许多形式,诸如程序模块。通常,程序模块包括进行特定任务或实施特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可以如各个实施例所期望的而组合或分布。
而且,数据结构可以以任何合适的形式存储在计算机可读介质中。为了简化说明,可以将数据结构示出为具有通过数据结构中的位置而相关的字段。这种关系同样可以通过为针对字段的存储指派传达字段之间关系的计算机可读介质中的位置来实现。然而,可以使用任何合适的机制来建立数据结构的字段中的信息之间的关系,包括通过使用指针、标签、或建立数据元素之间的关系的其他机制。
本发明的各个方面可以单独使用、组合使用、或以前文所述的实施例中未确切讨论的各种布置使用,并且因此在其应用中不局限于其在前文描述中所阐述或附图中所展示的部件的细节和布置。例如,一个实施例中描述的方面可以以任何方式与其他实施例中描述的方面组合。
而且,本发明可以实施为其示例已被提供的一种方法。作为该方法的一部分而进行的动作可以以任何合适的方式排序。因此,可以构造实施例,在这些实施例中,动作以与所展示的顺序不同的顺序进行,这可以包括同时进行一些动作,即使这些动作在说明性实施例中被示出为顺序动作。
进一步地,一些动作被描述为由“用户”做出。应当理解,“用户”不必是单个个人,并且在一些实施例中,可归因于“用户”的动作可以由个人团队和/或个人与计算机辅助工具或其他机构的组合来进行。
在权利要求中使用诸如“第一”、“第二”、“第三”等序数术语来修饰权利要求要素本身并不意味着一个权利要求要素优先于另一个权利要求要素的任何优先级、优先权或顺序,或者进行方法的动作的时间顺序,而是仅用作用于将具有某个名称的一个权利要求要素与具有同一名称(但使用序数术语)的另一个要素进行区分的标签,从而区分这些权利要求要素。
而且,在本文中使用的措辞和术语是用于描述的目的,而不应当被视为是限制性的。本文使用的“包括(including)”、“包括(comprising)”或“具有(having)”、“包含(containing)”、“涉及(involving)”及其变型旨在涵盖其后所列的项及其等效形式以及其他项。
Claims (20)
1.一种数据处理系统,包括:
至少一个计算机硬件处理器;以及
存储处理器可执行指令的至少一个非暂态计算机可读存储介质,这些指令在由该至少一个计算机硬件处理器执行时,使该至少一个计算机硬件处理器进行以下操作:
获得联合结构化查询语言(SQL)查询,
生成用于该联合SQL查询的查询计划,该查询计划包括要由该数据处理系统进行的多个数据处理操作,该多个数据处理操作至少包括第一数据处理操作和第二数据处理操作;
显示包含多个图形用户界面(GUI)元素的GUI,该多个GUI元素包括表示该第一数据处理操作的第一GUI元素和表示该第二数据处理操作的第二GUI元素;
在执行该联合SQL查询期间,
采集该联合SQL查询的跟踪信息,包括采集该第一数据处理操作的第一跟踪信息和该第二数据处理操作的第二跟踪信息;以及
在该GUI中与该第一GUI元素相关联地显示该第一跟踪信息中的至少一些以及与该第二GUI元素相关联地显示该第二跟踪信息中的至少一些。
2.如权利要求1所述的数据处理系统,其中,执行该联合SQL查询包括:从第一类型的第一数据源读取数据记录和/或向其写入数据记录,以及从不同于该第一类型的第二类型的第二数据源读取数据记录和/或向其写入数据记录。
3.如权利要求1或2所述的数据处理系统,其中,该多个操作包括用于访问第一类型的第一数据源中的数据记录的至少一个数据处理操作以及用于访问不同于该第一类型的第二类型的第二数据源中的数据记录的至少另一个数据处理操作。
4.如权利要求3所述的数据处理系统,其中,该第一类型的第一数据源是平面文件数据源、多文件数据源、Hadoop数据源、Oracle数据源、Teradata数据源、DB2数据源、SQL Server数据源、Informix数据源、MongoDB数据源、SAP数据源、SAS数据源或元数据数据源。
5.如任一前述权利要求所述的数据处理系统,其中,该图形用户界面是非表格形式的。
6.如任一前述权利要求所述的数据处理系统,其中,显示该GUI包括至少部分地通过以下方式生成图的图形表示:
生成该第一GUI元素以表示该图的与该第一数据处理操作相关联的第一节点;以及
生成该第二GUI元素以表示该图的与该第二数据处理操作相关联的第二节点。
7.如权利要求6所述的数据处理系统,其中,生成图的图形表示包括生成数据流图的图形表示,该数据流图是用于执行该SQL查询的数据流图。
8.如权利要求7所述的数据处理系统,其中,生成该数据流图的图形表示进一步包括生成第三GUI元素,该第三GUI元素表示该数据流图的第一节点与该数据流图的第二节点之间的边。
9.如权利要求7或8所述的数据处理系统,其中,这些处理器可执行指令进一步使该至少一个计算机硬件处理器进行以下操作:
基于该查询计划,生成表示该数据流图的至少一个数据结构,该数据流图包括包含该第一节点和该第二节点的多个节点以及连接该多个节点的多个边,该多个节点中的每一个对应于该多个数据处理操作中的相应数据处理操作,该多个边表示该多个节点中的各个节点之间的数据流。
10.如权利要求6至9中任一项所述的数据处理系统,其中,采集该第一操作的第一跟踪信息包括跟踪经由该第一数据处理操作处理的数据记录的数量,并且其中,经由该GUI显示该第一跟踪信息中的至少一些包括与该第一GUI元素相关联地显示经由该第一数据处理操作处理的数据记录的数量。
11.如权利要求10所述的数据处理系统,其中,与该第一GUI元素相关联地显示经由该第一数据处理操作处理的数据记录的数量包括在该第一节点的输出端处显示经由该第一数据处理操作处理的数据记录的数量。
12.如权利要求11所述的数据处理系统,其中,采集该第一数据处理操作的第二跟踪信息包括跟踪经由该第二数据处理操作处理的数据记录的数量,并且其中,经由该GUI显示该第二跟踪信息中的至少一些包括与该第二GUI元素相关联地显示经由该第二数据处理操作处理的数据记录的数量。
13.如任一前述权利要求所述的数据处理系统,其中,采集该第一操作的第一跟踪信息包括采集选自由以下各项组成的组的跟踪信息:经由该第一数据处理操作处理的数据记录的数量、用于进行该第一数据处理操作的并行性程度、标识用于进行该第一数据处理操作的一个或多个计算设备的信息、用于进行该第一数据处理操作的处理资源量、用于进行该第一数据处理操作的存储器量、进行该第一数据处理操作所花费的总时间量、进行该第一数据处理操作的计算设备上的处理负荷之间的偏斜度量、该第一数据处理操作的参数、指示该第一数据处理操作是否完成的信息。
14.如任一前述权利要求所述的数据处理系统,其中,采集该第一数据处理操作的第一跟踪信息包括识别该第一数据处理操作的一个或多个参数,并且其中,显示该跟踪信息中的至少一些包括显示所识别的一个或多个参数中的至少一个参数的至少一个值。
15.如任一前述权利要求所述的数据处理系统,其中,这些处理器可执行指令进一步使该至少一个计算机硬件处理器进行以下操作:
显示第二GUI,该第二GUI显示由该数据处理系统执行的一个或多个SQL查询的列表,该一个或多个SQL查询包括该SQL查询;以及
响应于用户经由该第二GUI对该SQL查询的选择,生成包含该多个GUI元素的GUI,该多个GUI元素包括表示该第一数据处理操作的该第一GUI元素和表示该第二数据处理操作的该第二GUI元素。
16.如任一前述权利要求所述的数据处理系统,其中,这些处理器可执行指令进一步使该至少一个计算机硬件处理器进行以下操作:
显示第二GUI,该第二GUI显示由该数据处理系统执行的一个或多个SQL查询的列表,该一个或多个SQL查询包括该SQL查询;以及
响应于用户经由该第二GUI对该SQL查询的选择,停止执行该SQL查询。
17.如任一前述权利要求所述的数据处理系统,其中,该显示进一步包括刷新该第一跟踪信息中所显示的至少一些。
18.一种存储处理器可执行指令的至少一个非暂态计算机可读存储介质,这些指令在由至少一个计算机硬件处理器执行时,使该至少一个计算机硬件处理器进行以下操作:
获得联合结构化查询语言(SQL)查询,
生成用于该联合SQL查询的查询计划,该查询计划包括要由该数据处理系统进行的多个数据处理操作,该多个数据处理操作至少包括第一数据处理操作和第二数据处理操作;
显示包含多个图形用户界面(GUI)元素的GUI,该多个GUI元素包括表示该第一数据处理操作的第一GUI元素和表示该第二数据处理操作的第二GUI元素;
在执行该联合SQL查询期间,
采集该联合SQL查询的跟踪信息包括采集该第一数据处理操作的第一跟踪信息和该第二数据处理操作的第二跟踪信息;以及
在该GUI中与该第一GUI元素相关联地显示该第一跟踪信息中的至少一些以及与该第二GUI元素相关联地显示该第二跟踪信息中的至少一些。
19.一种由至少一个计算机硬件处理器进行的方法,该方法包括:
获得联合结构化查询语言(SQL)查询,
生成用于该联合SQL查询的查询计划,该查询计划包括要由该数据处理系统进行的多个数据处理操作,该多个数据处理操作至少包括第一数据处理操作和第二数据处理操作;
显示包含多个图形用户界面(GUI)元素的GUI,该多个GUI元素包括表示该第一数据处理操作的第一GUI元素和表示该第二数据处理操作的第二GUI元素;
在执行该联合SQL查询期间,
采集该联合SQL查询的跟踪信息包括采集该第一数据处理操作的第一跟踪信息和该第二数据处理操作的第二跟踪信息;以及
在该GUI中与该第一GUI元素相关联地显示该第一跟踪信息中的至少一些以及与该第二GUI元素相关联地显示该第二跟踪信息中的至少一些。
20.一种存储处理器可执行指令的至少一个非暂态计算机可读存储介质,该至少一个非暂态计算机可读存储介质包括:
用于获得联合结构化查询语言(SQL)查询的装置;
生成用于该联合SQL查询的查询计划的装置,该查询计划包括要由该数据处理系统进行的多个操作,该多个操作至少包括第一数据处理操作和第二数据处理操作;
用于显示包含多个图形用户界面(GUI)元素的GUI的装置,该多个GUI元素包括表示该第一数据处理操作的第一GUI元素和表示该第二数据处理操作的第二GUI元素;
用于在执行该联合SQL查询期间进行以下操作的装置:
采集该联合SQL查询的跟踪信息包括采集该第一数据处理操作的第一跟踪信息和该第二数据处理操作的第二跟踪信息;以及
在该GUI中与该第一GUI元素相关联地显示该第一跟踪信息中的至少一些以及与该第二GUI元素相关联地显示该第二跟踪信息中的至少一些。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/835,823 US11188434B2 (en) | 2017-12-08 | 2017-12-08 | Systems and methods for monitoring execution of structured query language (SQL) queries |
US15/835,823 | 2017-12-08 | ||
PCT/US2018/064217 WO2019113293A1 (en) | 2017-12-08 | 2018-12-06 | Systems and methods for monitoring execution of structured query language (sql) queries |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111492344A true CN111492344A (zh) | 2020-08-04 |
CN111492344B CN111492344B (zh) | 2023-10-24 |
Family
ID=64949441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880079340.4A Active CN111492344B (zh) | 2017-12-08 | 2018-12-06 | 用于监测结构化查询语言(sql)查询的执行的系统和方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US11188434B2 (zh) |
EP (1) | EP3721338A1 (zh) |
JP (1) | JP2021506043A (zh) |
CN (1) | CN111492344B (zh) |
AU (1) | AU2018380147B2 (zh) |
CA (1) | CA3082186A1 (zh) |
SG (1) | SG11202005197QA (zh) |
WO (1) | WO2019113293A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018183676A1 (en) | 2017-03-29 | 2018-10-04 | Ab Initio Technology Llc | Systems and methods for performing data processing operations using variable level parallelism |
TW202042242A (zh) * | 2019-05-07 | 2020-11-16 | 大陸商深圳大心電子科技有限公司 | 資料讀取方法、儲存控制器與儲存裝置 |
CN111290929B (zh) * | 2020-02-10 | 2023-06-27 | 珠海图思科软件有限公司 | 一种等价sql语句性能的测试方法、计算机装置及计算机可读存储介质 |
US11645284B2 (en) | 2020-03-16 | 2023-05-09 | International Business Machines Corporation | Distributed join filters in a dynamic distributed data processing service |
DE112022000886T5 (de) | 2021-01-31 | 2023-12-21 | Ab Initio Technology Llc | Datenverarbeitungssystem mit manipulation logischer datensatzgruppen |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080140622A1 (en) * | 2006-12-12 | 2008-06-12 | Bestgen Robert J | Displaying Explain Data for a SQL Query of a Database |
US20120284255A1 (en) * | 2011-05-02 | 2012-11-08 | Ian Schechter | Managing data queries |
CN103713958A (zh) * | 2012-09-28 | 2014-04-09 | 国际商业机器公司 | 在不同语言的机器间同步图形用户界面操作的方法和设备 |
CN105518676A (zh) * | 2013-07-31 | 2016-04-20 | 甲骨文国际公司 | 查询任意半结构化数据的通用的sql增强以及高效地支持这样的增强的技术 |
US20170039245A1 (en) * | 2015-08-05 | 2017-02-09 | Ab Initio Technology Llc | Selecting queries for execution on a stream of real-time data |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5966072A (en) | 1996-07-02 | 1999-10-12 | Ab Initio Software Corporation | Executing computations expressed as graphs |
US6438741B1 (en) | 1998-09-28 | 2002-08-20 | Compaq Computer Corporation | System and method for eliminating compile time explosion in a top down rule based system using selective sampling |
JP2003256221A (ja) | 2002-02-28 | 2003-09-10 | Fujitsu Ltd | 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ |
US7249141B2 (en) | 2003-04-30 | 2007-07-24 | Microsoft Corporation | Automated layout of relational databases |
US7155612B2 (en) * | 2003-04-30 | 2006-12-26 | International Business Machines Corporation | Desktop database data administration tool with row level security |
US20060095406A1 (en) * | 2004-10-29 | 2006-05-04 | International Business Machines Corporation | Displaying explain data for a SQL query of a database |
US7716630B2 (en) | 2005-06-27 | 2010-05-11 | Ab Initio Technology Llc | Managing parameters for graph-based computations |
US7870556B2 (en) | 2006-05-16 | 2011-01-11 | Ab Initio Technology Llc | Managing computing resources in graph-based computations |
US20090077013A1 (en) * | 2007-09-19 | 2009-03-19 | International Business Machines Corporation | Methods, systems, and computer program products for user-driven targeted query re-optimizations using delta values |
US7979578B2 (en) | 2009-09-02 | 2011-07-12 | International Business Machines Corporation | Dynamic and evolutionary placement in an event-driven component-oriented network data processing system |
US9208141B2 (en) * | 2010-02-05 | 2015-12-08 | Oracle International Corporation | Generating and displaying active reports |
US8356027B2 (en) | 2010-10-07 | 2013-01-15 | Sap Ag | Hybrid query execution plan generation and cost model evaluation |
US8195643B2 (en) | 2010-10-28 | 2012-06-05 | Sap Ag | Database calculation engine |
US8838579B2 (en) | 2012-04-26 | 2014-09-16 | Sap Ag | Data flow graph optimization using adaptive rule chaining |
US8856766B2 (en) | 2012-05-11 | 2014-10-07 | International Business Machines Corporation | Generating layouts for graphs of data flow applications |
US10515118B2 (en) | 2013-06-24 | 2019-12-24 | Micro Focus Llc | Processing a data flow graph of a hybrid flow |
JP6204753B2 (ja) * | 2013-08-28 | 2017-09-27 | Kddi株式会社 | 分散クエリ処理装置、処理方法及び処理プログラム |
US9990398B2 (en) | 2013-09-20 | 2018-06-05 | Oracle International Corporation | Inferring dimensional metadata from content of a query |
WO2017019879A1 (en) | 2015-07-29 | 2017-02-02 | Algebraix Data Corp. | Multi-query optimization |
US10133778B2 (en) | 2015-11-20 | 2018-11-20 | Sap Se | Query optimization using join cardinality |
US10877816B2 (en) | 2016-04-20 | 2020-12-29 | Samsung Electronics Co., Ltd. | Optimal task scheduler |
US10437821B2 (en) | 2016-10-26 | 2019-10-08 | Sap Se | Optimization of split queries |
US10528599B1 (en) | 2016-12-16 | 2020-01-07 | Amazon Technologies, Inc. | Tiered data processing for distributed data |
US9798527B1 (en) | 2017-01-06 | 2017-10-24 | Google Inc. | Loop and library fusion |
WO2018183676A1 (en) | 2017-03-29 | 2018-10-04 | Ab Initio Technology Llc | Systems and methods for performing data processing operations using variable level parallelism |
US20190370407A1 (en) | 2018-05-30 | 2019-12-05 | Ab Initio Technology Llc | Systems and methods for dataflow graph optimization |
-
2017
- 2017-12-08 US US15/835,823 patent/US11188434B2/en active Active
-
2018
- 2018-12-06 SG SG11202005197QA patent/SG11202005197QA/en unknown
- 2018-12-06 CA CA3082186A patent/CA3082186A1/en active Pending
- 2018-12-06 EP EP18830094.1A patent/EP3721338A1/en active Pending
- 2018-12-06 AU AU2018380147A patent/AU2018380147B2/en active Active
- 2018-12-06 WO PCT/US2018/064217 patent/WO2019113293A1/en unknown
- 2018-12-06 CN CN201880079340.4A patent/CN111492344B/zh active Active
- 2018-12-06 JP JP2020550038A patent/JP2021506043A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080140622A1 (en) * | 2006-12-12 | 2008-06-12 | Bestgen Robert J | Displaying Explain Data for a SQL Query of a Database |
US20120284255A1 (en) * | 2011-05-02 | 2012-11-08 | Ian Schechter | Managing data queries |
CN103713958A (zh) * | 2012-09-28 | 2014-04-09 | 国际商业机器公司 | 在不同语言的机器间同步图形用户界面操作的方法和设备 |
CN105518676A (zh) * | 2013-07-31 | 2016-04-20 | 甲骨文国际公司 | 查询任意半结构化数据的通用的sql增强以及高效地支持这样的增强的技术 |
US20170039245A1 (en) * | 2015-08-05 | 2017-02-09 | Ab Initio Technology Llc | Selecting queries for execution on a stream of real-time data |
Also Published As
Publication number | Publication date |
---|---|
US20190179723A1 (en) | 2019-06-13 |
US11188434B2 (en) | 2021-11-30 |
CN111492344B (zh) | 2023-10-24 |
EP3721338A1 (en) | 2020-10-14 |
AU2018380147A1 (en) | 2020-05-21 |
AU2018380147B2 (en) | 2024-05-02 |
JP2021506043A (ja) | 2021-02-18 |
WO2019113293A1 (en) | 2019-06-13 |
CA3082186A1 (en) | 2019-06-13 |
SG11202005197QA (en) | 2020-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210374610A1 (en) | Efficient duplicate detection for machine learning data sets | |
US11036735B2 (en) | Dimension context propagation techniques for optimizing SQL query plans | |
US11119834B2 (en) | Artificial creation of dominant sequences that are representative of logged events | |
CN111492344B (zh) | 用于监测结构化查询语言(sql)查询的执行的系统和方法 | |
US10452992B2 (en) | Interactive interfaces for machine learning model evaluations | |
CA2953959C (en) | Feature processing recipes for machine learning | |
US10817495B2 (en) | Systems and methods for performing data processing operations using variable level parallelism | |
US11055351B1 (en) | Frequent pattern mining on a frequent hierarchical pattern tree | |
US20170212930A1 (en) | Hybrid architecture for processing graph-based queries | |
US20180165349A1 (en) | Generating and associating tracking events across entity lifecycles | |
US10248668B2 (en) | Mapping database structure to software | |
Kimball | The evolving role of the enterprise data warehouse in the era of big data analytics | |
US8250024B2 (en) | Search relevance in business intelligence systems through networked ranking | |
Dhanda | Big data storage and analysis | |
Bolton et al. | Professional SQL server 2012 internals and troubleshooting | |
US11816157B2 (en) | Efficient storage and query of schemaless data | |
US11500933B2 (en) | Techniques to generate and store graph models from structured and unstructured data in a cloud-based graph database system | |
US20180101622A1 (en) | Perform graph traversal with graph query language |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40033918 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |