CN110352415A - 大规模数据管理系统中利用图团体监测的预测表预连接 - Google Patents
大规模数据管理系统中利用图团体监测的预测表预连接 Download PDFInfo
- Publication number
- CN110352415A CN110352415A CN201780077840.XA CN201780077840A CN110352415A CN 110352415 A CN110352415 A CN 110352415A CN 201780077840 A CN201780077840 A CN 201780077840A CN 110352415 A CN110352415 A CN 110352415A
- Authority
- CN
- China
- Prior art keywords
- connection
- sideline
- group
- node
- instruction
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24544—Join order 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
-
- 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/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9038—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Operations Research (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种计算机实现的用于标识预连接操作的方法,在访问关系表数据库时基于表使用历史和/或优先需求执行所述方法,所述方法包括:创建加权边线与节点的图,其中所述节点表示关系表,所述边线表示要执行于所述表的连接操作;根据对应的图团体密度,将所述图分区成多个图团体,其中一个所述图团体密度指示与特定节点接触的边线的数量,所述边线的数量大于预定的边线数量阈值,每个边线还包括边线权重,所述边线权重表明在预定的最近持续时间内的参考频率和/或在预定的最近持续时间内的对应的连接结果的快速访问紧迫性;以及基于所述分区后的图团体以及所述图团体密度,生成预连接结果。
Description
交叉申请
本申请要求于2017年3月27日提交的美国非临时申请号15/470,813的优先权,其标题为“大规模数据管理系统中利用图团体监测的预测表预连接(Predictive Table Pre-Joins in Large Scale Data Management System Using Graph CommunityDetection)”,其又要求于2016年12月16日提交的美国临时专利申请号62/435,606的优先权,其标题为“大规模数据管理系统中利用图团体监测的预测表预连接(Predictive TablePre-Joins in Large Scale Data Management System Using Graph CommunityDetection)”,这两个专利申请的全部内容以引用的方式并入本文中。
背景技术
大规模数据挖掘,有时称为‘大数据’,通常需要实时维护海量的企业级数据库以及使用大量数据分析程序从数据库提取当前有意义信息。企业级数据库通常存储大量关系表,该大量关系表其为系统跟踪的数据对象(如顾客、产品、雇员和销售交易等)提供基础关系属性。数据挖掘经常需要标识系统跟踪的数据对象之间的复杂相关性(如,在选定类的销售交易中,哪些顾客满意哪些雇员的服务?)。
这些类型的分析通常需要选择性连接来自多个数据库表的数据。此领域所新起的挑战包括,任凭海量数据库规模不断增加,须提高大数据挖掘结果生成速率,以及高效利用有限的数据处理资源。实现这些目标的一个方法是依靠预计算,其中在执行程序前,进行某些在执行数据分析程序时有可能需要的计算操作,这样计算结果可以在当前执行程序时立即使用。一个预计算形式称为预连接操作。这里,将在分析程序中选择性连接在一起的表提前连接在一起。
传统数据库预连接技术在表数量显著增加时性能表现不佳。本文公开改进方法及系统。
发明内容
一种计算机实现的用于标识一套要执行的预连接操作的方法,在访问关系表数据库时基于表使用历史和/或优先级需求执行所述方法,所述方法包括:创建加权边线与节点的图,其中所述节点表示关系表,所述边线表示要执行于所述表的连接操作;根据对应的图团体密度,将所述图分区成多个图团体,其中一个所述图团体密度指示与特定节点接触的边线的数量,所述边线的数量大于预定的边线数量阈值,每个边线还包括边线权重,所述边线权重表明在预定的最近持续时间内的参考频率和/或在预定的最近持续时间内的对应的连接结果的快速访问紧迫性;以及基于所述分区后的图团体以及所述图团体密度,生成预连接结果。
一些方法实施例中,边线权重基于与所述边线相关联的边线元数据,所述边线元数据指示以下各项中的至少一个:连接的类型、连接动的态特性、所述连接的参考概率、所述连接的几何结构、所述连接的方向、所述连接结果的参考频率、所述连接结果的参考频率的历史趋势,或使所述连接结果基本上立即可用的紧迫性优先级。
一些方法实施例中,所述边线元数据为所述对应的边线和/或表示的一套连接操作提供唯一标识。
一些方法实施例中,所述边线元数据标识所述对应边线连接的表。
一些方法实施例中,所述节点与节点元数据相关联,所述节点元数据指示以下各项中的至少一个:唯一节点标识、所述节点表示的表的标识、表类型的标识,表大小的指示、在所述表的轴的不同方位维度中的最大程度的指示、所述表需要在存储器内的持续多久的指示或期望的用于访问所述表的访问速度的指示。
一些方法实施例中,进行图团体检测过程之前,过滤所述图留下具体的一个或多个不同连接类型。
一些方法实施例中,所述预连接结果的所述生成包括:将监测到的图团体根据图团体密度进行排序,其中所述图团体密度表明所述图团体的成员的统一参考频率和/或表明所述图团体的所述成员的统一访问紧迫性;以及标识所述已排序图团体之一中最密集节点。
一些方法实施例中,所述预连接结果的所述生成还包括从第一已排序图团体到下一个已排序图团体基于所述排序进行排列。
一些方法实施例中,所述预连接结果的所述生成还包括确定预连接结果是否将大于预定的表大小阈值,以及如果所述预连接结果将大于所述预定的表大小阈值,指定用于分区的对应的预连接候选。
一种数据库设备包括:存储器存储,所述存储器存储包括指令;以及与所述存储器通信的一个或多个处理器,其特征在于,所述一个或多个处理器执行所述指令以:创建加权边线与节点的图,其中所述节点表示关系表,所述边线表示要执行于所述表的连接操作;根据对应的图团体密度,将所述图分区成多个图团体,其中一个所述图团体密度指示与特定节点接触的边线的数量,所述边线的数量大于预定的边线数量阈值,每个边线还包括边线权重,所述边线权重表明在预定的最近持续时间内的参考频率和/或在预定的最近持续时间内的对应的连接结果的快速访问紧迫性;以及基于所述分区后的图团体以及图团体密度,生成预连接结果。
一些数据库设备实施例中,边线权重基于与所述边线相关联的边线元数据,所述边线元数据指示以下各项中的至少一个:连接的类型、连接的动态特性、所述连接的参考概率、所述连接的几何结构、所述连接的方向、所述连接结果的参考频率、所述连接结果的参考频率的历史趋势,或使所述连接结果基本上立即可用的紧迫性优先级。
一些数据库设备实施例中,所述边线元数据为所述对应的边线和/或表示的一套连接操作提供唯一标识。
一些数据库设备实施例中,所述边线元数据标识所述对应边线连接的表。
一些数据库设备实施例中,所述节点与节点元数据相关联,所述节点元数据指示以下各项中的至少一个:唯一节点标识、所述节点表示的表的标识、表类型的标识,表大小的指示、在所述表的轴的不同方位维度中的最大程度的指示、所述表需要在存储器内的持续多久的指示或期望的用于访问所述表的访问速度的指示。
一些数据库设备实施例中,进行图团体检测过程之前,过滤所述图留下具体的一个或多个不同连接类型。
一些数据库设备实施例中,所述预连接结果的所述生成包括:将监测到的图团体根据图团体密度进行排序,其中所述图团体密度表明所述图团体的成员的统一参考频率和/或表明所述图团体所述成员的统一访问紧迫性;以及标识所述已排序图团体之一中最密集节点。
一些数据库设备实施例中,所述预连接结果的所述生成还包括从第一已排序图团体到下一个已排序图团体基于所述排序进行排列。
一些数据库设备实施例中,所述预连接结果的所述生成还包括确定预连接结果是否将大于预定的表大小阈值,以及如果所述预连接结果将大于所述预定的表大小阈值,指定用于分区的对应的预连接候选。
提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图说明
图1A为包括预加载以及预计算能力中的至少一个的查询处理系统的框图;
图1B为描述基于图分析的用于规划及执行预加载以及预计算操作中的至少一个的方法的示意图;
图1C为描述真实世界环境中的特定企业以及通过该企业的数据挖掘应用使用数据库表的示意图;
图1D为描述具有两个通过连接器分支相互连接的节点的基本图的示意图;
图2A为描述本公开提供的图结构的示意图,其具有表示数据库表的节点以及表示不同类型的聚合操作如预连接操作的连接;
图2B为团体监测后的结果图;
图3为描述标识预连接候选流程的流程图;
图4为描述用于挑选优先执行的预连接的方法的流程图;
图5为描述将留下的预连接候选进行分区的方法的流程图;
图6为描述在执行使用数据库的应用时用预连接取代实时执行连接操作方法的流程图;
图7为描述本公开提供的系统的三种操作互联引擎的框图;以及
图8示出实施例提供的数据库设备。
具体实施方式
表的自动重复更新的图以及表参考操作连接到对应的一个或多个表上执行周期重复的或者事件触发的图团体检测过程。表参考操作密度和/或紧迫性可以指示认为哪些表是最“重要的”(高权重的)以及因此,优先置于高速存储。同理,表参考操作密度和/或紧迫性可以指示认为哪些表是一般“重要的”(略低权重的)以及因此,优先置于具有较低访问速度的存储(较慢的存储通常成本较低),以及指示可以指示认为哪些表是最不“重要的”(最低权重的)以及因此,优先不置于为预加载预计算和/或预存储结果保留的存储。
该过程不像单独或单独基于每个此类表的参考操作确定每个表的重要性这样简单。只有当某些多个表同时处于基本相同速度类的预存储,一些表参考操作才有用。否则,没有必要快速访问一个(但并非其它)这种同时将可以相同速度访问的表之一。在一个需要同时访问的示例中,表将成为聚合操作,例如连接操作,的参与者。
在一实施例中,重复构建或更新图以表示每个表参与一个或多个连接指令(或连接执行)。图的节点或者顶点表示表,且每个连接表示为连接表的连接器或者图边线。连接器分支/图边线可以包括记录为边线元数据的部分的使用密度或者权重。这里使用的密度包括的每表要进行的操作(比如连接操作)的数量,并且包括接触节点(例如,图示中的表)的边线(图间操作)的数量。
既然图已建成,可以监测到的最高密度节点/边线和/或最高密度图团体。进一步,图节点可以根据节点/边线密度值或者节点/边线密度范围来分区。团体可以包括,例如,具有共同密度值或具有预定的密度范围内密度值的节点。监测到的团体的节点密度(例如,与特定节点接触的边线的数量)可以表明在不远的将来,指示或者执行连接或者其它表创建操作有多大可能性。通过对图以分层方式进行团体监测可以生成预连接的排序表,以实现存储预连接的大小合理的表到对应的高速缓存。指定密度最大团体中的连接为最高优先级预连接,而指定密度较小团体中的连接为较低优先级预连接。通过根据团体监测执行及存储预连接,可以高效使用系统资源。通过对图以分层方式进行团体监测可以生成预连接的排序表,以实现存储预连接的大小合理的表到对应的高速缓存。
在标识在预计算时最适合执行的预连接的同时,在预计算时判断将在从最快存储到最慢存储的层次结构内的何处预存储(预加载)这种预连接(以及另外创建的表,例如预删减)是同样有利的。这里,可以再次自动重复执行图团体检测过程,但是目标不同的,使用重要性权重来判断为什么一些预连接或者其它表将以比其它更快的方式访问(如,由于与其它重要表一起使用的紧迫性和/或频率和/或伴随性)。
图1A为包括预加载能力14以及预计算能力29中的至少一个的查询处理系统10的框图。理想地,预加载(14)以及预计算(29)操作中的每个需要以高效即时的方式用对应的预加载和/或预计算结果提供当前计算操作(30),这样当前计算操作的通量最大地增加以及为存储预加载和/或预计算结果分配的数据存储20的部分不会浪费在存储大量不会很快证明在当前计算操作(30)有用的数据。另外,预加载能力14和预计算能力29的数据处理资源不应浪费在生成大量不会很快证明在当前计算操作(30)有用的数据。
预加载以及预计算领域中的一个问题是如何确定哪些预加载和/或预计算结果最有可能最有利于那些潜在的当前最有可能很快在查询处理系统10中执行的计算操作。在具有许多用户50以及大量查询工作(如,41-44等)且预定的时隙中运行的大规模系统中,这不是一个琐碎问题。
进一步,此处为了更加完整地理解,描述图1A的个方面。大规模数据挖掘或简称‘大数据’,通常需要实时维护海量的企业级数据库,其在图1A中统一用大数据库11举例说明。海量的大数据11可以用太字节或者千兆兆字节为单位来测算,其数据量通常太大而无法存储于单个存储单元,该存储单元可以提供到其任何随机部分的合理快速访问。相应地,必须将需要的数据进行从大数据库11到相对本地化的存储子系统20的选择性的取回以及移动(12)。选择性的取回及移动(12)可在运行时(15)执行以实时回应当前执行查询工作(如,41-44等)做出的数据请求或者甚至可以在当前执行查询工作要求数据前,以预测方式执行。后者的尚不知道将需要的数据的预测性及选择性的取回及移动由数据预加载单元14自动执行。此后,当当前执行查询工作要求该数据时,发现该数据已经出现在本地存储20,且既不浪费时间在发送选择性取回请求到数据取回单元12,也不浪费时间在等待在大数据库11中发现请求的数据且在运行时(15)将其移动到本地存储20。
预加载(14)的一个次要方面为判断在本地存储20的何处存储预加载的数据。为了简单起见,示例性本地存储子系统20被示为细分为快速高速缓存部分21和较慢存储器部分22。将本地存储子系统细分成不仅具有不同的读或写速度属性而且具有诸如非易失性、持久性、可靠性和安全性等其它不同属性的更多部分也在本公开的考虑之内。所示的细分仅仅是为了简单的示例。
类似于有选择地预加载(14)某些数据项可能是有优势的,甚至在已知实际上将需要这样的数据处理结果之前,也可以提前计算某些数据处理结果可能是有优势的。如果系统预计算单元20以较好准确性预测当前执行查询工作(如,41-44等)将可能很快需要生成哪些数据处理结果,则预计算单元20可以提前生成这些结果,将其存储于本地存储20,且之后,当一个或多个当前执行查询工作(如,41-44等)发现自身需要这些结果时,查询工作可以首先检查预计算目录(未图示)得知是否已经预计算结果。如果是,无需消耗时间与资源来一次又一次计算这些结果。预计算(29)的一个次要方面为判断在本地存储20的何处存储预计算的数据。再次为了简单起见,可以在高速缓存部分21以及较慢存储器部分22之间做出选择。
根据本公开,工作调度器40操作性耦合到一个或多个运行时计算引擎30。调度器40何时以及哪些SQL查询工作(如,41-44等)调度给对应一个或多个运行时计算引擎30的当前执行。调度器40基于各种因素自己做出决定,这些因素包括但不限于每个工作有多大、哪些资源(如,30中空闲的运行时计算引擎和20中空闲的存储器空间)当前可用于为工作提供服务以及完成工作的紧迫性(例如,如优先级权重所指示——未图示)。可选地,调度器40基于分别来自预加载单元14以及预计算单元29的对应的两个指示45和46中一个或全部自行决定当前加载哪些预加载和/或预计算到本地数据存储资源20用来加快每个候选工作的完成时间或者加快当前候选工作(如,41-44等)属于的一类工作的完成时间。这样每个提交的查询工作(如,41-44等)的完成速度(作为完成的输出35)可以取决于预加载单元14以及预计算单元29中一个或全部预测哪些以及何时预加载和/或预计算应置于本地数据存储资源20有多准确。
在一实施例中,工作调度器40操作性耦合到查询历史日志记录单元47。日志记录单元47提供分别到预计算单元29以及预加载单元14的对应反馈信息流48和49,以通知后者有哪些查询工作(如,41-44等)或者最近(比如,过去一小时、一天或一周内等)提交的查询工作的类别以及采用何种对应频率(比如,每小时、每天或每周等)和/或对应紧迫性(比如,高、一般或低),且可选地指示趋势和遇到哪些错误或者障碍导致缺少预加载和/或缺少预计算。然后预计算单元29以及预加载单元14可以自适应地了解该反馈信息(48和49),以鉴于用户群体50的变化的需求做的更好。
参见图1B,其为描述基于图分析的用于规划及执行预加载以及预计算操作中的至少一个的方法60的示意图。初始化步骤61中,该方法从查询历史记录单元47'获得最近性能数据。获得的数据可用于预定的一套查询工作或者预定的一类或多类查询工作(如,专门用于服务特定企业部门的特定需求的查询工作——简略参见图1C的151-155)。在一实施例中,获得的数据包括在预定一套的查询工作或者预定一类或多类的查询工作中的查询工作的最近执行频率以及查询工作的最近紧迫性(如,优先级)中的至少一个。获得的数据选择性地或者额外地包括趋势数据,该趋势数据指示查询工作的执行频率或者查询工作的紧迫性的最近的增加或减少速率。
步骤62中,基于获得的最近性能数据自动建立多行建模图。构建的图包括顶点(或节点)和线(或边线、支线或者连接器),其中顶点(或节点)分别表示数据库(database,DB)表,且线(或边线、支线或者连接器)分别表示在表示的DB表中于线接触的DB表上进行的操作。
步骤63中,图结构分析工具用于自动确定哪些表上的哪些操作在不远的将来(如当前一小时、一天或一周内等)最有可能发生,这样在不远的将来执行对应的查询工作更有可能(如在完成速度方面)受益于涉及的DB表的预加载和/或表示的操作的预计算。图结构分析工具可以包括那些标识节点和分支(又名顶点和图边线)的密集集群(密集图团体)。
步骤70中,执行表示的表以及操作的对应的预加载和/或预计算,其由图结构分析工具标识为很有可能有益处。在一实施例中,创造益处度量值,且首先执行提供最大益处的预运行时操作(预加载和/或预计算)。
步骤80中(运行时阶段),执行对应的查询工作或者查询工作分类,该些查询工作或者查询工作分类可以看作更加紧迫的和/或最有可能从执行预加载和/或预计算中得到的可用结果中受益的。差不多同时收集执行的工作的性能度量值以及使用其周期性更新(85)单元47'中保持的查询历史日志。然后,已经一次或多次更新(85)查询历史日志之后,重复65步骤61、62和63,来创建更新的建模图以及对应地更新的一套预加载以及预计算计划。这样,系统适应变化的条件。
结合图1C,提供更加详细的解释,其中后者为描述真实世界环境100的示意图,其中真实世界环境100包括特定企业150,其可利用可访问(可访存)数据库表比如存储在企业可访问数据库160中的161以及162。这些表的使用可以包括在执行如141和142所示的企业可访问数据挖掘应用的时候通过放大143a应用程序143分析存储在表(如161和162)中的数据。各种数据挖掘应用可以利用表聚合操作(例如,143.1等中的表连接操作)来生成与当前世界以及当前企业条件相关的对应分析报告(比如,步骤143.5的那些)。企业150的各种活动单元(如,151和152等)可以利用这些生成的报告,这些报告包括及时对企业150内和/或世界其它地方(rest of the world,ROTW)110的真实世界事件作出反应。由于事件会高速展开,尽可能快地(as soon as possible,ASAP)获得实时分析报告(143.5)非常有用,这意味着使用数据库的应用会尽快处理其操作。
更具体地,随着真实世界有效时间以及事件快速展开(由时钟符号120表示),企业150以及世界其它地方(rest of the world,ROTW)110内的当前情境条件可以既可以相互依赖也可以相互独立地以相同速率改变。双箭头符号115表示企业150内的事件与ROTW 110的事件之间相互依赖的交互。双箭头符号113表示ROTW 110的预测的事件展开(模型化的未来事件),其中在各实施例中,ROTW 110包括预测的未来市场条件以及销售预测。图中第一有角度贯穿箭头110a延伸穿过ROTW符号110表示外部世界条件可随时间改变。第二有角度贯穿箭头140a-150a延伸穿过框140表示企业内部条件可随时间改变,其中企业内部条件包括企业活动单元(如151-156)的条件以及企业控制的数据处理资源140的条件。第三有角度贯穿箭头160a表示企业可访问数据库资源160可随时间改变。
通过结合各种贯穿箭头(100a、140a-150a和160a),上文提出一个观点:每件事都在不断变化,因此,要容纳不断发展的企业内部和外部条件。作为示例,如果示例企业150为向一个或多个特定市场部门出售具体商品和/或服务的商务企业,则该企业150应保持追踪在其目标顾客群体中的人口统计以及其它变化(包括当前以及预测的变化)且保持追踪其它竞争企业的竞争力(包括当前以及预测的竞争力)(不是用于参考,而是将其理解为存在在ROTW泡110中,且用数据库进一步分析至少一些竞争者的竞争态势)。为此,在使用企业的本地或者可远程访问数据处理资源140进行自动分析时,该特定商务企业150可以依靠通用以及专用数据挖掘应用(如141-143)来通过企业可访问大数据数据库160(可为一个以上数据库)进行反复筛选。应注意,图1C中双箭头符号116示意性地表示企业的一个或多个数据库160可访问性。图中又一双箭头符号163表示大数据库160中或者其它企业可访问存储(如146)中维护的预测模型,其用于基于当前可用信息和该信息的当前分析(如由分析程序141和142提供的分析等)来为企业150以及ROTW 110预测可能世界结果。
在一个示例实施例中,所示商务企业150包括:(a)市场单元或部门151,其负责预测未来市场需求以及目标顾客群体的价格承受能力;(b)工程单元152,其负责设计商品和/或服务以为当前以及预测市场需求服务;(c)产品支持单元153,其负责支持企业提供的当前产品和/或服务;(d)销售单元154,其负责向顾客群体报价及销售;(e)客户关系管理单元155,其负责追踪以及形成与当前以及潜在的客户的期望的关系以及其它这种商务单元或者部门,其中后者由省略号156表示。
企业150的每个操作单元(如,151-156)都可以利用一个或多个使用数据库的应用程序(如使用DB的应用141-143……)。这些程序本身(如143)可以分别利用一个或多个表访问以及聚合操作。更具体地,参见应用143内一些可执行指令的放大显示143a,可以知道这些指令的子集可以要求多个表连接操作,例如由143.1、143.2以及143.3表示的表连接操作。又更具体地,第一个所示表连接指令143.1包括SQL连接命令143.1a,其参数包括:可能连接的表(例如表A和B)的标识143.1b;将执行的连接操作的类型(如,Left)的标识143.1c;以及条件式的标识143.1d,其中后一个条件式可以包括一个或多个在开始执行指定类型连接操作之前需要满足的偶然性(例如如果X为真以及Y为假)。在更多细节方面,使用数据库的应用程序(如使用DB的应用141-143……)通常不亲自执行有条件的表连接或者其它查询任务,而是如159所示,将查询任务(Q)委托给数据库查询驱动引擎(database query driveengine,SQLE)。数据库查询驱动引擎可以包括任务优化特征比如检查预连接目录以判断是否已经执行了一个请求的连接操作以及是否已经存储了期望的结果。在后一种情况下,SQLE 159返回预计算的结果而不是再次进行计算。预计算操作可以由SQLE 159内提供的预测性预计算发生器159a执行。该预测性预计算发生器159a试图预测哪些预计算操作最受期待和/或最不受期待。根据本公开的一个方面,基于预定知识库(未图示)中保持的基于专家知识库规则,将概率值或者得分(未图示)自动附加到每个指示的连接命令(如,143.1)的条件式143.1d上,其中维护预定知识库用以指示所指示的表连接的当前的概率。换句话说,该得分指示如果要现在执行连接指令143.1,连接操作将发生的可能性。之后,该信息可以可用于改进预测性预计算发生器159a的决策性能。
第二连接指令如指令行143.2所示,其中下一个指令为潜在的连接指定不同的表(如表F和G)以及不同类型的连接操作(如,右连接)。尽管未图示,指令行143.2中的省略号理解为指示额外参数,其包括用于指定的连接操作的条件式。类似地,第三连接指令如行143.3所示,其中其它表(如,表M和N)将通过其它类型的连接操作(如,全连接)来连接。再一次,指令行143.3中的省略号理解为指示额外参数,其包括用于指定的连接操作的条件式。
精通各种搜索查询语言,比如SQL,的人员可以理解连接操作可以有多种不同的规格,包括十字连接、自然连接、内连接、外部连接、等值连接、全连接和自连接,此处仅列举了几个例子。指令行143.1-143.3给出的示例仅作为非限制图示且考虑大部分或所有这类不同连接操作和/或为其它形式的大数据聚合操作提供类似处理也在本公开的考虑之内。
连接操作的结果为一个新表,其具有一个或多个选择性地从父表中获得列和行。本公开中,术语“表”广泛理解为具有一个或多个列(如,161a)以及一个或多个行(如,161b),其中最低限度表可以由具有对应的指定列以及指定行的单个单元格(如,161c)组成。单元格本身可以没有值(nil)或者可以存储对应指定列以及指定行的值。存储的值可以为数值性质的、字母性质的(如文字)或其它的,且可以有不同格式。可理解,连接表时,一个基础操作可以为归一化列和/或行规格的操作,使得由连接产生新表中的值是一致的。例如,可能不适当的是使一些第一数值表示千克,而其它数值表示指定产品权重的列中的克(例如,对于指定不同产品的行,其中该列将指定它们的可比权重)。
执行连接操作时,产生的新表可以比其一个或多个父表尺寸小(就行的数量以及列的数量中的一个或全部而言)。这种较小表或子表的一个示例显示在163。另一方面,连接操作的结果可以产生有比至少一个父表更多行和/或更多列的新表。这种更大或者超级表的示例在164示出,尽管没有明确示出,列的数量可以大于两个父表(如,161以及162)之一的列的数量。对于一些连接操作,产生的新表可以具有与其每个父表相同的尺寸或者具有其父表行和列尺寸的总和。换句话说,由各种连接操作产生的表可以根据连接操作特性具有不同的大小。根据本公开的一个方面,当判断是否执行预连接操作以在一个使用数据库的应用(如141-143)中执行对应的连接指令之前创建新表时,考虑由特定连接操作产生的新表的大小。在执行连接操作之前,应用自动检查目录(未图示,但可在存储146或者数据库160之中)以了解是否例如,企业维护的预连接应用145,已经执行过当前可用预连接。如上所述,更典型地,数据库查询驱动引擎(database query drive engine,SQLE),如159所示,将执行委托给它的查询任务Q以及将内部自动测试预计算目录来查看是否已经预计算以及存储请求的查询操作W的结果。SQLE 159通常包括可应用此处讨论的方法的预测性预计算发生器159a。可以由企业控制的预连接应用145可选地执行全部或者部分公开的方法也在本公开的考虑之内。系统性能速度及效率可以通过预创建连接来提高,而不是在每次每个应用需要对应的连接结果的时候,执行单独的连接操作。但是,如果预连接错误的表子集(比如根本不需要的、不是频繁需要的或者不是急迫需要的),系统性能速度及效率会变差因为系统资源(如存储146和/或数据处理带宽147)为创建预连接不适当地消耗了,这些预连接即使真需要也是很少需要或者不是立即需要的。问题是如何高效地及时地确定哪些预连接是需要的以及哪些不需要(如浪费系统资源)。
继续参见图1C,在一个使用DB的应用的示例性放大143a的指令区143.4中,分析一个或多个有条件的连接指令143.1-143.3之前已经形成的一个或多个新表。指令区143.4内的指令可能需要进一步有条件地连接两个或多个先前连接指令143.1-143.3形成的新表。可以进一步分析后面的新表等。因此,可能生成大量新连接的表,其大小小于和/或大于从数据库160得到的初始基本表(如,161-162)或与其相同。取决于复杂性以及大小(以及存储器访问延迟),在形成一些对应的使用数据库的应用(如,141-143)产生的各种连接表时,会消耗大量系统时间以及系统资源。因此,预连接应用145(或者很多这种应用)是有用,其容易缩放以处理大量(例如成千上万的)预连接可能性,以及在考虑不断发展(参见120)的企业内部和外部(110)情况的基础上,标识那些最适合预连接的可能性。
在示例性放大143a的指令区143.5中,(基于执行的分析143.4)生成结果报告。生成的结果报告可以为人类管理员或者自动化的人工智能座席所消耗的,其中后者的任一或者两者都可以回应对生成的结果报告的理解。更具体地,如果下发生成的结果报告(未图示)到市场部门151,其指示预测的新兴的或增加的顾客人口统计带来的对某种产品和/或服务的近期需求或需求增长,则市场部门151可要求工程部门152开始设计新的或者更新式的产品和/或服务来满足预测的需求。反过来,工程部门152可以创建新查询应用或修改旧查询应用以及运行它们来帮助设计请求的产品和/或服务。指令区143.6表示放大的应用143的另一部分,其中,例如基于执行的分析143.4,生成的新或者修改的表。指令区143.5和143.6没有以所示顺序出现且可以相混合。生成的报告(143.5)以及生成的新或者修改的表(143.6)中的任一种或者两种都可以产生,比如后继框149所指示的,创建新的或者修改的分析程序的一个或多个后续活动,其中一个示例为工程部门152的上述任务派分的。框149(如,工程部门152响应制造的)的创建的新分析程序随后会被添加到企业150的数据处理资源140已经出现的一套最新的使用数据库的应用(如141-143)。新创建的分析程序可以要求不同于先前应用(如,141-143)的新的表连接和/或可以使用与先前应用(如141-143)要求的相同的表连接。因此,企业150的需求可以随着其预测的或响应的世界其它地方110中的变化或企业150的内部变化(如部门及职责重组)而不断变化。
从图1C中可理解除了使用数据库的应用(如,141-143),企业的数据处理资源140还可以包括其它资源,如放大140b所示,其中其它资源可包括但不限于本地以及远程数据存储资源146(如高速小容量数据存储资源以及低速大容量数据存储资源两者)、本地及远程中央处理单元(central processing unit,CPU)和/或其它这种数据处理单元147,且机器用户界面包括信息显示界面,如148所示。企业的数据存储资源之中有系统日志的存储。这些日志包括执行日志146a,其包括:在最近的历史记录中(如,过去的六个月中),各种使用数据库的应用(如,141-143)运行的时间、位置及频率。在一实施例中,执行日志146a可以包括痕迹,这些痕迹指示新形成的连接表的身份以及形成该些连接表的连接类型(如,左、右或全)的;指示它们的对应大小和/或列的数量以及行的数量;以及指示哪些执行应用(如141-143)创建了新形成连接表以及各种应用执行的频率。根据本公开,这些类型的日志记录的数据可以用来构建使用表示图结构,其描述性数据于系统存储器内(如存储146内)自动重复存储和/或更新。
参见图1D,其显示具有表示连接指令的连接器133的基本图结构130。所表示的连接指令133(假设执行该指令)的输出未图示。节点131表示指令133内标识为连接候选的第一表(或子表或超级表)。节点132表示指令133内标识为连接候选的第二表(或子表或超级表)。尽管图1D假设二元连接操作,替代性地把将两个以上标识的表连接起来的聚合指令绘入图中也在本揭露的考虑之内,。后一种情况下,连接器133可以两条或者三条线/共同来自一个接合点/轮毂的辐条(比如三件一套)的形式显示。更一般的来说,连接器133可以定义超图的超边线。每个节点(如,131或132)以及图结构130的指令表示连接器133与以其名义存储元数据相关联以表示图结构元素的相关属性。如果边线元数据134与连接器133连接,包括的元数据(还未图示)可以包括:节点(如131或132)在连接器133的终端末端的标识、要执行的聚合或者其它操作的类型(如全、左或右连接)的标识以及聚合指令的有条件的参数的标识或描述,其中有条件的参数包括至少一个参数表明执行聚合指令的概率。
每个对应节点(如132)的节点元数据(如135)可以包括以下内容的一个或多个:节点表示的对应表(或子表或者超级表;如Tbl_ID_2)的标识、表大小的指示和/或对应两个或者多个维度轴的程度的指示(尽管以2D表为例,本公开还考虑更大维度的表)、连接该节点的操作表示连接器(如133)的个数的指示(可以为0)、一个或多个连接节点的连接器(若有)的标识以及存储表示的表的数据的存储(如高速缓存对低速盘)的类型的标识。
在显示示例图结构130的图形用户界面(graphic user interface,GUI)中,对应元素(节点以及连接器)的元数据不正常显示,但是当用户将光标或者其它指针停留在该元素上和/或点击该元素时,可以显示。在相同或者交替的GUI环境中,具有较高的执行概率的表示的指令(如连接指令)的连接器(如133)表示为对应的粗连接器线而其它具有较地的执行概率的指令的连接器表示为对应的细连接器线。在相同或者交替的GUI环境中,具有大小落入到预定的以及优选的表大小范围内的表示的表(如Tbl_ID_1)的节点(如131)和/或具有存储在预定的以及优选的数据存储的类型(如快速DRAM)的表示的表的节点(如131)和/或具有通过大于预定的边线数量阈值的数量连接器线(如133)连接的表示的表的节点(如131)由比其它用于表示其它表的图标密度更大(和/或于更暗的色调的紧密度)的图标表示,其中这些其它表的属性在一个或多个优选范围之外。这样当用户在这种GUI上看到这个图结构时,一些节点集群以及对应连接器以密集和/或深色的方式出现,而其它节点以及对应连接器出以属于复合图结构的稀疏和/或浅色部分的方式出现(简要参见图2B)。
图2A进一步详细为描述本公开提供的复合图结构230的示例,其可被用在自动化预连接确定系统200中。图结构230最初仅用节点填充,该些节点表示明确指定的且在使用数据库的应用(如图1C的141-143)的样本集241中发现的基本表。这里,基本表为明确存储在企业可访问数据库160的表而非其它的连接操作形成的表。使用数据库的应用的样本集241可基于大量样本大小限制条件中的任何一个进行挑选。该些样本大小限制条件包括但不限于:超过预定的第一时间阈值的预定的时间段(如过去三个月)的使用频率和/或超过预定的第二时间阈值的预定的时间段(如过去一个月)的使用紧迫性(又名优先级)。需限制执行的预连接的数量,因为存在一个收益递减点,在这一点上一些预连接太大、太小或者过于频繁使用,以至于系统存储器空间消耗和系统执行带宽消耗不值后来当对应的应用程序需要对应连接操作时节省的时间。样本大小限制条件中可用于定义样本集241的是:(a)在预定的最近持续时间(如过去六个月)内的每个候选应用的执行频率;(b)预定的持续时间(如过去三个月)的启动每个候选应用的企业部门和/或用户的数量;(c)对应于结果的重要性和/或对应的部门/用户要求的速度分配给每个候选应用的优先级权重,其中分配发生在预定的持续时间(如上个月)内;(d)分配给每个候选应用前N个使用部门或者用户的用户/部门优先级(其中N为,比如2-10范围内的,整数);以及(e)每个候选应用的完成时间,其中完成时间长是因为应用中日志记录的表聚合操作。
用基本表填充复合图结构230时或之后,扫描使用数据库的应用的样本集241以确定哪些连接指令涉及每个明确指定的基本表。对应的连接器元素(如,连接器集233具有不同的连接器子集233a、233b、233c等)连接到复合图结构230以表示找到的连接指令。图2A中,不同类型的连接操作(如全、右和左等)的子集用不同类型的虚线或者实线描述。作为示例,实线233a表示连接指令的第一子集,其中连接指令的对应的元数据在234a图示。元数据条目234a.0可以提供用于连接器233a表示的连接的对应子集的唯一标识以及到用连接器233a表示的连接连接的表的连接或者用连接器233a表示的连接连接的表的的列表(如Tbl_ID_1以及Tbl_ID_2)中的一个或全部。元数据条目234a.1可以指示连接器233a表示的连接的对应子集的连接类型(如Full)。元数据条目234a.2可以指示连接器233a表示的连接的对应子集的其它连接参数(如Where表达式类型)。元数据条目234a.3可以指示连接器233a表示的连接的对应子集的平均概率或者概率范围(如最小、最大以及中间)。注意,每个连接器线(如233a)通常表示特定连接类型(由234a.1指示的)的多个连接指令,其中每个连接指令具有真正执行的对应概率(如,由于其连接动态特性234a.2)。用于查询采样集241的这些执行概率的组合具有对应的一个或多个复合概率参数比如:平均概率、中间概率、最小概率以及最大概率。这些概率可以列在元数据字段234a.3中,且之后用来确定是否执行预连接。
额外地,示例图边线/连接器233a的对应连接器元数据234a可以包括一个或多个条目234a.4,其指示表示的连接器的几何结构和/或方向(或非方向性)。典型的连接器可以为仅有两个端子的二元连接器,每个端上有一个端子,且每个端子连接对应的表节点(如231和232)以及通常为非方向性的。然而,具有三个或多个辐条的轮毂及辐条连接器,其中每个辐条端接在对应表节点上,也在本公开考虑之内。同样在本公开的思路内表示一些或者所有连接器的辐条有指定的方向。一个示例中,表示的一套连接操作(233f)的结果输出可以由233g描述的有方向的输出辐条表示。在一实施例中,每个有方向的输出辐条的长度显示为与表示的一套连接操作(如L=k*1/P或f(k,1/P))平均或者中间概率的倒数成比例或者功能相关的。因此,更多更可能执行的连接指令的输出辐条显示为较短且产生对应稠密的图结构(简要参见图2B的271),而不太可能执行的连接指令输出辐条显示为较长且产生对应稀疏的图结构(简要参见图2B的274)。
继续参见图2A,又一元数据条目234a.5可以指示相对频率(如f1)或者对应的预定的最近持续时间(如前几个星期)内的一套表示的连接指令发生次数。该相对频率指示符(例如,f1)或出现次数指示符(T/f1)可以从在预定的最近时间长度(例如,过去两周)期间执行样本集241的采样的应用程序的记录次数和/或从在采样的应用程序中使用连接操作或其子集的记录次数导出。
另一元数据条目234a.6指示用于所表示的连接操作的子集的趋势信息,例如它们是在预定的最近持续时间(例如,过去一周)上增加还是减少,并且可选地是变化率。该趋势信息可以用作关于是否执行所表示的预连接操作(例如,Tbl_ID_1和Tbl_ID_2的全连接)的确定的一部分。
可以提供另外的元数据条目234a.7,用于确定是否执行所表示的预连接操作(例如,Tbl_ID_1和Tbl_ID_2的全连接)。一个示例可以是分配给(连接器233a的)所表示的连接子集的连接优先级的平均值,其基于具有尽可能快地容易获得的预连接结果的重要性。另一个优先级权重(未示出)可以指示分配给使用所表示的连接操作的前N个企业部门或用户的用户/部门优先级的平均值或中间值。尽管没有明确地示出,但是在各个连接器的元数据234a内提供一个或多个权重参数(例如w1、w2等)也在本公开的考虑之内,其中这些一个或多个权重参数是连接器的一个或多个基本特性的函数。这些基本特性可以包括但不限于:在一个或多个预定持续时间内的使用频率或流行度;在一个或多个预定持续时间内的快速结果可用性的紧迫性;在一个或多个预定持续时间内分配给已经利用连接结果的一个或多个用户或部门的访问优先级;等等。以下描述的是否执行相应的预连接的确定可以基于这些权重中的一个或多个。
参考第二示出的连接器符号233b,其对应的边线元数据在234b示出。示出在234b.0到234b.7的范围内的类似参考标号用于元数据234b的相应框,并且这些细节的重复不是必需的,除了要注意的是,在234b.2处针对所找到的指令的这个子集指示的连接类型是正确的连接,而不是像对应条目234a.2的情况那样的完全连接。
同样类型的连接操作的另外的子集可以由诸如用于插入在节点231和232之间的连接器组233所示的233c的另外的连接器来表示。例如,由连接器233c表示的连接子集的连接类型可以是左连接,而不是在234b.1处指定的右连接和在234a.1处指定的全连接。由于左和右连接是全连接的子集,因此右连接和左连接中的任一个或两者可以被完全预连接的执行覆盖,这在本公开的考虑之内。因此,在一个实施例中,在初始确定要执行哪些预连接之后,扫描结果以寻找重复劳动。例如,消除了指定相同表的左连接和全连接以及冗余预连接两者的一个。例如,当相同结果包括在相同表的全连接中时,删除左连接。
其它类型的连接子集由连接器线233d和233e表示。三点式连接器的示例在233f处示出,其中辐条233g定向地连接到连接操作的结果。该结果是在节点236处表示的新的表Tbl_ID_3。结果输出辐条233g可以具有其自身的元数据(未示出),其中元数据包括结果236被创建的概率的指示。可以发现所创建的新结果表(由节点236表示)是包括在238处指示的类型化的子集的更多套的连接操作的输入成员(其中用于二元连接的对应表在节点237中被表示为Tbl_ID_4)。其它套的连接操作(例如,238)可以导致额外的表(例如,在节点251处表示的Tbl_ID_6)的进一步可能的创建,其中这些额外的表251可以被其它连接器组涉及,例如在252和253处所示。
参照相应表节点232(表示Tbl_ID_2)的相应节点元数据框235b,元数据条目235b.0中的第一个可以为相应表和/或端接于该表示的表的连接器或连接器辐条的列表提供唯一标识(Tbl ID)。另一个元数据条目235b.1可以指示该表的类型。作为非限制性示例,数据库表可以具有不同的模式和/或维数,并且不必限于这里所示的二维(2D)示例。对应的元数据条目235b.2可以根据所消耗的字节和/或数据元素的数量来指示表(例如Z2)的大小。相应的元数据条目235b.2可以可替换地或附加地指示该表的维度方面,例如按照保存在表中的行(例如,R2)的数量和保存在表中的列(例如,C2)的数量。根据本公开的一个方面,当确定是否执行相应的预连接操作时,考虑由连接操作产生的表的大小。例如,可以自动地确定所得到的表的尺寸太大,并且在其录入的使用历史中很少有两个,以保证消耗有限的系统存储(例如146)并且消耗有限的系统数据处理资源(例如147)仅具有一个,太大并且相对不频繁使用的表(例如Tbl_ID_2)的预执行的连接结果。
诸如在235b.3处所示的其它节点元数据条目可以指示所表示的表期望如何持久。更具体地,某些预连接操作的输出结果可以在系统存储中保持相对长的时间段,因为许多使用数据库的应用(例如,141-143)期望在预测的长时间段上使用预连接结果,而相反地,其它预连接操作的输出结果可以被预测为在系统存储中保持基本上更短的时间段,因为只有少数使用短期使用数据库的应用期望使用那些其它预连接结果。条目235b.3的数据持续信息可用于确定何时执行预连接操作以及何时允许预连接操作的数据被随后执行的预连接操作的数据覆盖。
诸如在235b.4处表示的表征元数据的额外节点可以指示结果表的数据访问延迟(例如L2)。例如,如果该表足够小(例如,大小=Z2),则在高速缓存存储器中存储该表可能是实际的,使得可以快速地访问和使用预连接操作的结果。该信息可以肯定地贡献于决定是否执行利用节点特征表产生的预连接操作。如框235b中的省略号所指示的,还可以存储另外的元数据,用于表征由对应的节点232所表示的表。
参照图2B,示出了由图2A的元件形成的图结构的示例结果,然后使用一个或多个图团体检测算法分离。图团体检测算法的一个例子是Girvan-Newman过程,其步骤可以概括如下:(a)对每个图边线集中计算中间值;(b)去除得分最高的边线;(c)重新计算所有分数;(d)进入步骤(b)。基本Girvan-Newman过程的计算复杂度为O(n3)。然而,在图团体检测领域中,许多变化和改进是已知的,例如通过使用不同的中间测量来提高精度的那些变化和改进,以及例如通过使用采样和/或局部计算来降低计算复杂性的那些变化和改进。使用基本Girvan-Newman过程或其变体之一和/或其它形式的图团体检测来将图形化的连接操作分离为密集地填充的图团体和稀疏地填充的图团体,所述图团体和稀疏地填充的图团体在层级上是可分区的,这在本公开的考虑内。在一个实施例中,首先过滤图以去除一种或多种类型的连接,同时保持至少一种连接类型。然后,执行分区形成单独的图团体。确定每个密集填充的图团体中的预连接表的总大小。如果太大,则执行进一步的分区以创建更小的图团体。然后,对每个密集填充的团体中的表的优先级进行排序,并且预连接它们中的预定的前M个表(其中M是例如在范围3-20内的整数)。
图2B的示例示出了第一密集地填充的图团体271已经通过图团体检测过程与第二和第三稀疏地填充的团体273和274以及与又一个密集地填充的团体272分开。密集团体271和272的较高密度可归因于核心节点,例如271c,它们被相对大量的连接器或连接器辐条接触和/或归因于高度可能的连接操作(例如,由短的或粗的图连接器表示),而不是预计具有实质上较低的执行和/或连接结果使用概率的连接操作。在框271b中,由特定连接类型的相对加粗的连接器线来表示被预测为具有高执行概率和重复使用概率和/或被预测为具有相对高的快速可访问性紧迫性的连接操作的示例。具有加粗边界的节点,例如271a和271c,表示通过大于预定边线数量阈值(例如,三个或更多个)的多个连接器(图边线)和/或通过具有一个或多个边线权重的连接器接触的表,所述一个或多个边线权重表示由于紧迫性或其它因素而期望预连接的可用性。应当理解,在图2B中,不是所有的连接器和节点都被示出,因此避免了示例性的混乱。
273所示的示例是稀疏地填充的图团体的示例。团体检测可以确定相应团体(例如273)是独立团体,即使后者可以具有一个或多个边线上方数量阈值触摸节点(例如273a)和/或甚至后者可以具有一个或多个连接执行的边线上方数量阈值概率(例如273b内的粗连接器)。该确定可以替代地基于对未被足够数量的连接器(例如,273d)接触和/或未被具有足够执行概率的连接器(例如,273d内的细线)接触的其它节点(例如,273c)的检测。
应当理解,可以在最初定义之后改变图团体的边界。例如,节点272a的表可以是初始放置在图团体271内的连接连接器271d的连接输出辐条271o的结果。然而,可以发现,节点272a的表太大以至于不能使用,并且优选地将连接连接器272d的较小的表(未示出)预存储为属于图团体272的边界内的部分预连接结果。换句话说,节点272a被分离或分区为代表较小尺寸表的前驱节点,并且将用于那些较小尺寸表的代表节点移入或复制到图团体272的边界中,从而改变图团体272。下面将进一步描述这种修改的使用。
参见图3的流程图,现在描述根据本公开的过程300。在步骤301,可以定期和/或事件驱动地进入过程300。在301处的输入的周期性可以反映企业使用模式改变的持续时间或外部世界(ROTW 110)中的情况典型地改变的持续时间。例如,以两周为基础或以金融季节性报告为基础。在301触发进入的事件可以包括不寻常的财务事件或世界新闻事件,例如财务工具的评估的主要增加或减少;破坏性技术的发布;开始或终止挑衅活动等。
在步骤302,基于例如那些应用的最近流行和/或基于来自这些应用的快速结果的最近紧迫性,确定哪个使用数据库的应用将被认为是样本集(例如,图2A中的241的应用)的一部分。
在步骤303,用分别表示表的节点填充的空图空间,表被发现被明确地识别为使用DB的应用(例如,141-143)的采样集中的聚合操作参与者。在步骤304,各个参与表的节点之间的空间由相应的键入的连接器填充,每个连接器具有指示所表示的连接操作的快速性和/或快速性的边线权重。
在步骤310,可选地过滤图结果以留下预指定的一种或多种类型的连接操作的连接器;例如,仅左、右和全连接的那些。然后,在步骤312,不再具有接触它们的任何连接器的孤儿表,意味着它们不再参与任何连接操作,且从图中去除。
在步骤320,执行诸如上述Giservn-Newman过程及其变化的图团体检测过程,从而识别从密集地填充的图团体到稀疏地填充的图团体的频谱。密集地填充的图团体与稀疏地填充的图团体分开。这里应当理解,密集填充的图形团体各自表示特定的一种或多种类型(如步骤310-312中的预过滤)的连接操作的编译,由于使用的流行和/或对快速结果的访问的紧迫性,该类型优选地具有为它们执行的预连接。相反,稀疏地填充的图团体各自表示连接操作的单独或组合,由于使用的频繁和/或不需要访问快速结果,所以优选地不对它们执行预连接。
在步骤322之前,对隔离的图团体进行排序,以便首先列出最密集的这种团体。步骤322是循环的一部分(从步骤341向前传送),其通过每个逐渐不密集的图团体进行增加。测试步骤323前进到步骤330,只要在分配的存储器的预计算区域中存在更多的密度高于预定最小密度阈值和空间的图团体用于其它候选。在步骤330,对于当前最密集的图团体,对在该团体内发现的最密集的连接器进行识别;在所识别的连接器的密度指示它是当前团体内的代表连接的连接器的相对最流行和/或最紧迫性的情况下。
在步骤331,对如果执行所表示的连接操作将创建的结果表的大小进行估计。在所示的过程中,应该理解的是,已经取消(分配)有限量的存储来存储预连接操作的结果,并且一些结果可能相对于结果尺寸的预定限制过大。系统管理员可能已经确定,优选地,预连接更多的更小结果而不是仅仅一个额外的大结果。如果在步骤331的尺寸测试的结果为是,意味着估计的结果太大,则控制转到步骤332,在步骤332中待绕过的连接器及其相关联的参与表被标记为包括在随后要执行的分区操作中,其中一个或两个参与表被断开或被分区为较小的表,其连接结果可以在随后的团体检测循环中被接受。然后在步骤334,将其连接结果太大的连接器从当前的预连接候选列表中移除。在随后的测试步骤340,确定是否存在更多的连接器(例如,根据优先级进行预排序)。如果没有更多的连接器,则采用路径341,其中存在到下一图团体或到下一连接类型的递增。另一方面,如果剩下更多的连接器,则路径342返回到步骤330,其中考虑下一个最密集的连接器。
如果测试步骤331的结果指示估计的结果不是太大,则控制继续到步骤335,其中相应的连接操作被附加到当前的预连接候选列表,并且所考虑的连接器被从图中移除,这之后继续进行测试步骤340。如果在测试步骤340第一图团体的所有连接器耗尽,则递增步骤341前进到下一图团体,并且如果所有的连接器耗尽,则扩展路径343允许系统为不同的连接类型子集重复该过程。
当在步骤322执行增加到下一最密集的图团体时,首先执行内部测试323以确定是否存在任何更多的候选图团体和/或是否已经命中针对已专用于预连接结果的预分配的存储量的存储器容量限制。如果没有更多的候选或容量限制已经命中,则在步骤325处退出过程。
参考图4,示出了用于执行实际预连接的过程的流程图400。在步骤401,进入过程可以周期性地和/或基于事件驱动而发生。触发事件之一可以基于最近已经被执行和检测以产生不同的预连接候选集合的过程300。在步骤402,基于一个或多个密钥来排序在这些候选的相应列表中的预连接候选,其中第一排序密钥可以是表示预连接候选将被一个或多个使用数据库的应用参考的可能性的概率指示,并且具有相对较高的频率(例如,每小时或每天至少若干次)。排序密钥中的第二个可以是一个紧急指示符,该紧迫性指示符指示出预连接结果的快速可用性的紧急程度,这是可以用于确定在需要预连接之前将生成和存储哪些预连接并且不需要预连接的另一个因素。预连接紧迫性还可以用于指示所生成的预连接存储在哪个类型的存储器中。例如,对于有极端紧迫性的预连接结果,结果可以存储在高速存储区中,而产生的较低紧迫性的预连接结果可以存储在较低速度存储区中,排序步骤402可以首先使用第一密钥然后使用第二密钥来执行,或者反之亦然。
在步骤402生成预连接候选的排序列表之后,在第二排序步骤403形成相同预连接候选的第二列表,或与第一列表中的那些的索引。这里,根据尚未执行的预连接操作的估计结果大小来排序预连接候选。执行该二级排序步骤403的原因是使得可以基于包括使用概率、使用紧迫性和已分配用于预连接结果的存储容量中剩余空间的因素的组合来进行可用存储容量的最大使用。
在步骤404,确定在后备存储器中是否存在分配用于预连接结果的足够空间,使得更经常使用的/更高的紧迫性候选中的至少一个的预连接结果存储在后备存储区中。如果是,则控制转到步骤410。在步骤410中,选择预连接候选中的最佳匹配的一个,执行所选择的相应连接操作,并将结果存储在备用存储区中。在步骤412中,从候选列表中去除所选择的预连接候选。然后,控制返回到步骤404,用于测试另一候选是否可以适合于备用存储区域的其余部分。如果否,则控制转到步骤405。在步骤405中,测试剩下的预连接候选,以查看它们中的任何一个是否可以被分区成一套更小的连接操作,其最终产生相应的剩下的预连接候选的最终结果。这样识别可以被成功地分区成一套较小的连接操作的剩下的预连接候选中的那些候选。然后在步骤409退出其过程400。
参照图5,示出了用于过程的流程图500,在该过程中,所识别的分区候选(在步骤405中识别的那些)被认为用于在分配给所识别的分区候选的可分区部分的额外存储器中进行分区和存储。在步骤501,进入过程可以周期性地和/或在事件驱动的基础上发生。
在步骤502,将所标识的分区候选基于它们的一个或多个分区将以相对较高的频率被引用或基于相对较高的紧迫性被请求的最近概率来进行分区。在步骤503,基于对每个分区候选是否可能被成功地分区成一组较小的表的分析和确定来产生进入第一排序列表(由步骤502产生的)的次要排序或索引,其中更频繁引用的和/或更紧迫的那些可被拟合到为这种分区结果而准备的剩余存储器中。
在步骤504,确定在后备存储器中是否有用于识别的分区候选中的至少一个的分区结果的空间。如果是,则控制转到步骤510,在步骤510中识别出最可能拟合分区结果,并尝试分区操作。在步骤512,如果尝试的分区操作成功,则将较小但更频繁引用的分区的子集和/或更急需的分区的子集存储在为这种分区结果设置的存储器中。在目录中,标识对应的预连接候选(即,由分区的重新连接产生的预连接候选)的标识并将其与对应地存储并已经预连接的分区相关联。然后,控制返回到步骤504。如果当前在后备存储器中没有剩余的空间用于更多的分区结果,则控制转到步骤505。在步骤505中,标识分区候选的剩余部分用于可能的后续分区。存储容量可以随时间在企业系统中改变,因此可以在随后的时间存储更多的分区。在步骤509退出。
重新参考图1C,要回忆起的是,条件可以在企业150内部和外部(在世界其它地方110)不断地改变。这些改变的条件可以包括对企业的本地数据处理资源140的升级或降级和/或对企业可访问数据库160的相应改变(160a)。这些改变的条件可以附加地或替代地包括企业150的部门(例如,151-156)的重组和/或企业的使用数据库的应用(例如,141-143等)的添加、删除或改变。任何主要的这种改变都有资格成为过程300(图3)、400(图4)或500(图5)中的一个或多个的进入触发事件。可替换地或附加地,过程300(图3)、400(图4)和500(图5)中的任何一个或多个可以使用经验数据在相应的周期性基础上自动触发,以确定每个过程最好的周期性。过于频繁地运行它们会增加系统开销而不会产生相应的有益结果。基于对企业及其资源的最新变化,太不频繁地运行它们可能导致不理想的系统性能。
图6是过程的流程图600,其跟踪各个预连接操作的结果被引用的次数或频率,并且当可用时,机会性地使用先前存储的预连接结果或先前存储的预连接结果的部分分区。在601处进行输入。在步骤602,检测是否遇到在参考连接操作的结果的执行应用内的指令。在步骤603,将检测到的对连接操作的结果及其相关联的参数(例如,条件性的参数)的参考记录在日志文件中。在执行连接操作以产生其各自的结果之前的步骤604,对一个或多个目录进行检查,该目录包括列出其结果已经被存储的完全预执行的连接操作的目录,以及可选地包括在待连接表的分区上列出部分预执行的连接操作的目录,其中这些结果可以用于在较少时间内完成所需的连接操作。在步骤605,基于对相应的一个或多个目录的检查(步骤604),确定完全的预连接结果是否已经可用或者至少预连接的分区部分的结果是可用的。如果是,则控制转到步骤610,其中使用可用结果来代替冗余地执行连接操作和/或使用可用部分结果来更快地完成期望的连接操作。然后在步骤609退出。
另一方面,如果测试步骤605的结果为否,意味着所有或部分预连接结果不可用,则在步骤606执行所指示的连接操作。然后在步骤609退出。
图7是为描述本公开提供的系统的三种操作互联引擎的框图700。互联引擎包括一个或多个运行时计算引擎710、一个或多个运行时性能日志记录引擎730以及一个或多个运行前时规划引擎750。引擎710、730和750通过公共通信结构720可操作地彼此耦合。后一种结构可以包括无线和/或有线通信资源。在各个引擎710、730和750中提供适当的接口714、734和754,用于通过结构720进行通信。尽管未示出,但是应当理解,通信结构720可以扩展到与部分示出的系统700的其它部分可操作地通信,所述部分示出的系统700包括一个或多个预加载引擎(例如,图1A的14)、一个或多个预计算引擎(例如,图1A的29)、耦合到大数据库(11)的数据取回引擎(例如,12)和工作调度器(例如,40)。
所示引擎710、730和750中的每个包括各自的存储器子系统711、731和751,其用于存储可由该各自引擎的一个或多个处理器(712、732和752)的集合使用的可执行代码和数据。为了简单和避免说明性的混乱,没有示出所有可执行代码和存储器内数据。
每个运行时计算引擎710可以包含由调度器加载到其存储器711中的工作代码711a。可以为所调度的工作代码711a的计算需要而设置空白存储空间711b(又称便笺空间)。工作代码711a可以包括机器代码和/或更高级代码(例如,SQL代码)。可以将针对预规划的和已经预计算的结果(例如,预连接)存储在为存储这种预计算而分配的存储器空间711c中。可以将针对预规划的和已经预加载的数据(例如,DB表)存储在为存储这种预加载而分配的存储器空间711d中。可以生成查找表和/或目录711e,用于识别和定位所存储的预计算711c和所存储的预加载711d。
在工作代码711a的运行时执行期间,相关联的运行时性能监控和日志记录引擎730跟踪工作执行状态。在所监视和记录的性能参数中,是关于使用何种预计算711c(以及如何频繁使用)的指示符,以及因为它们永不使用或非常不频繁地使用而仅浪费区域711c中的存储空间的指示符。其它性能参数可以识别应该存储在预计算区域711c中的运行时计算(例如,因为它们消耗了过多的运行时资源),但是它们不是各自工作所需的以及多频繁或多紧迫所需的。所监测的和所记录的性能参数中的其它一些可以识别应该但不作为预加载存储在区域711d中的运行时数据取回。其它的指示器可以识别使用了哪些预加载(以及如何频繁使用)以及仅浪费区域711d中的存储空间,因为它们永不使用或非常不频繁地使用。存储器区域731a收集关于预加载的在许多运行工作上的统计数据(例如趋势数据),该统计数据基于有多少次和/或以什么频率引用相应的DB表、具有什么紧迫性、表大小以及哪些类型的存储位置(例如,快或慢)。存储器区域731b基于执行或连续执行多少次和/或与哪个频率对应的操作(例如,预连接)、每个操作或每种操作的执行概率(P(execute))是什么、完成时平均运行时(Tavg(execute))是什么、完成紧迫性是什么等等,来收集关于预计算的多个运行工作的统计数据。如果涉及多个运行时性能监控和日志记录引擎730,则可以将它们单独生成的日志收集到中央储存库中。在一个实施例中,多个运行时性能监视和日志记录引擎730各自被分配给企业的不同部门或其它组织单元(例如,图1C的150),这样可以在每个部门/组织的基础上以及对于整个企业收集性能反馈信息。
在运行时执行预定数量的工作和/或周期性地执行,在执行下一批工作之前,将由一个或多个运行时性能监视和日志记录引擎730收集的反馈信息传送到对应的一个或多个预运行时规划引擎750。后面的引擎750包含图创建例程751c和/或图更新例程751e,其用于生成例如图1D和2A所示的性能建模图。生成的图可以分别存储在预计算图存储区域751a和预加载图存储区域751b中。预运行时规划引擎750还包含图分析例程751d,其被配置用于分析各种图,包括基于识别具有各自顶点和/或边线密度的图团体。预运行时规划引擎750还可以包含规划例程,该规划例程被配置为使用图分析例程751d的结果来制定在下一批工作执行之前或期间分别由适当的预运行和预计算引擎(例如,图1A的14和29)执行的预运行和/或预计算(例如,预连接)指令。这样,系统自动并重复地更新其预加载和预计算操作,这样即使环境改变,也可以自适应地保持效率和佛内工作执行速度。
图8示出实施例提供的数据库设备800。在一些实施例中,数据库设备800驻留在图1A的查询处理系统10中或与其通信。当访问关系表的数据库时,数据库设备800可以基于表使用历史和/或表优先级需要来标识要执行的一套预连接操作。数据库设备800包括耦合到接口810和存储器840的处理器820。处理器820包括电路板、集成电路和/或相关电子设备。为清楚起见,省略了数据库设备800的一些常规方面,例如电源、外壳等。
数据库设备800包括可以处理数据库查询的计算机实现的设备。在一些实施例中,数据库设备800可以包括图1A的数据预加载器14、预计算器29或当前计算引擎30。在一些实施例中,数据库装置800可包括图1C的预测性预计算生成器159a/SQLE 159、CPU 147或本地数据处理资源140。在一些实施例中,数据库设备800可以包括图7的运行时计算引擎710或预运行时规划引擎750。
存储器840可以包括或包括各种计算机可读介质,例如易失性存储器、非易失性存储器、可移动存储器和/或非可移动存储器。存储器840可以包括随机存取存储器(randomaccess memory,RAM)、只读存储器(read only memory,ROM)、可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、闪存或其它存储器技术、光盘只读存储器(compact disc read-only memory,CD ROM)、数字多功能盘(DVD)或其它光盘存储、盒式磁带、磁带、磁盘存储或其它磁存储设备中的一个或多个或能够存储计算机可读指令的任何其它介质。尽管各种数据存储元件被示为数据库设备800的一部分,但是存储器也可以或可选地包括可经由网络访问的基于云的存储器,例如基于因特网或服务器的存储器。
接口810包括通信组件,例如端口、信号处理电路、存储器、软件等。在一些实施例中,接口810与其它设备、系统和/或网络交换通信。在一些实施例中,接口810与运营商交换输入和输出。数据库设备800的接口810可以包括输入接口、输出接口和通信接口。输出接口可以包括也可以用作输入设备的显示设备,例如触摸屏。输入接口可以包括触摸屏、触摸板、鼠标、键盘、照相机、一个或多个设备专用按钮、集成在数据库设备800内或通过有线或无线数据连接耦合到数据库设备800的一个或多个传感器以及其它输入设备中的一个或多个。数据库设备800可以使用接口810在联网环境中操作,以连接到一个或多个网络/通信链路和/或连接到一个或多个远程计算机,例如数据库服务器或其它设备或系统。远程计算机可以包括个人计算机(personal computer,PC)、服务器、路由器、网络PC、对等设备或其它常见的DFD网络交换机等。接口810可以通过局域网(Local Area Network,LAN)广域网(Wide Area Network,WAN)、蜂窝网络、Wi-Fi、蓝牙或其它网络或系统进行通信。
软件例程/计算机指令,例如图生成例程851和预连接例程853,存储在计算机可读介质上并且可由处理器820执行。在一些实施例中,计算机可读介质包括存储器840。该软件包括在由处理器820执行时控制处理器820的操作的机器可读指令。该软件还可以包括操作系统、应用、工具、数据库等。软件可以在内部或外部存储,只要认为载波和信号太暂时,术语计算机可读介质便不包括载波或信号。
存储器840存储例程和数据,包括一个或多个表850、图生成例程851、一个或多个图852和预连接例程853。存储器840还可以存储预定的连接阈值854、一个或多个图852中的边线的加权值的一个或多个边线权重855、一个或多个图852中的边线的边线元数据856、一个或多个图852中的节点的节点元数据857、对应于一个或多个图852中的边线的一个或多个图团体密度858以及一个或多个过滤例程859。
一个或多个表850包括作为数据库查询处理的一部分而处理的表。例如,可以从查询处理系统10的其它设备或存储系统接收一个或多个表850。
图生成例程851处理一个或多个表850以生成一个或多个图852。或者,数据库设备800可以接收一个或多个图852,而不是接收一个或多个表850并使用图生成例程851来生成一个或多个图852。
预连接例程853处理一个或多个图852,以确定要执行的一套预连接操作(如果有的话)。在一些实施例中,预连接例程853还执行所识别的预连接操作,但是可替换地,其它例程或设备可以执行所识别的预连接操作中的一些或全部。
在一些实施例中,预定连接阈值854用于确定要执行的预连接操作的集合。可以使用连接阈值854来确定潜在的连接操作是否包括要执行的预连接操作。连接阈值854可以包括密度值。连接阈值854可以包括表使用历史值。连接阈值854可以包括表优先级需求值。可以想到,其它或附加的值或信息可以包括在连接阈值854中,并且在讨论和权利要求的范围内。
在一些实施例中,处理器820执行预连接例程853,并确定预连接结果是否大于连接阈值854。如果预连接结果将大于连接阈值854,则预连接候选被指定用于分区。
边线权重855包括在一个或多个图852内表示的对应图边线的一个或多个加权值。边线权重855基于对应的图边线的边线元数据。边线权重855可用于确定一套要执行的预连接操作。在一些实施例中,边线的加权值包括预定重要性值。
边线元数据856包括在一个或多个图852内表示的一个或多个图的边线的元数据。边线元数据856包括可影响预连接处理的图边线的数据。在一些实施例中,边线元数据856标识由特定边线连接的表(节点)。连接操作的集合在一些实施例中,边线元数据856包括以下内容的一个或多个:连接类型、连接动态特性、连接的参考概率、连接的几何结构、连接的方向、连接结果的参考频率、连接结果的参考频率的历史趋势或使所述连接结果基本上立即可用的紧迫性优先级。
节点元数据857包括在一个或多个图852内表示的一个或多个图的节点的元数据。节点元数据857包括可影响预连接处理的图节点的数据。一些实施例中,所述节点元数据857包括一个或多个以下内容:唯一节点标识、节点表示的表的标识、表类型的标识、表大小的指示、在表的轴的不同方位维度中的最大程度(长度或距离)的指示、表需要在存储器内的持续多久的指示或期望的用于访问表的访问速度的指示。
图团体密度858包括一个或多个图852中的图节点的一个或多个密度值。每个密度值指示接触到(或连接到)图的特定节点的多个边线,其中图节点的密度值指示该图节点可能涉及多少连接操作。图团体密度858包括一个或多个图852内的各个图团体的一个或多个共同密度值。或者,图团体密度858包括一个或多个图852内的各个图团体的一个或多个共同密度范围。在一个或多个图852内表示的图可以分区或分离成共同密度值或共同密度范围的节点,其中可以利用该分区或分离来确定一套要执行的预连接操作。
一个或多个过滤例程859包括当应用于一个或多个图852时滤除连接类型(或其它查询操作类型)的过滤器。一个或多个过滤器例程859可替换地(或附加地)滤除一个或多个图852中的非连接操作类型。一个或多个过滤例程859可用于减少查询操作类型的数量,包括将查询操作类型的数量减少到只剩最重要或最有用的查询操作类型。一个或多个过滤例程859可用于减少连接操作或连接操作类型的数量。在一些实施例中,一个或多个过滤例程859可用于使用表使用历史信息和/或表优先级需求信息来减少连接操作或连接操作类型的数量。
在一些实施例中,数据库设备800中一个或多个处理器820执行存储器840中的指令以:创建加权边线与节点的图852,其中节点表示关系表,边线表示要执行于表的连接操作;根据对应的图团体密度858,将图852分区成多个图团体,其中一个图团体密度858指示与特定节点接触的边线的数量,边线的数量大于预定的边线数量阈值,每个边线还包括边线权重855,边线权重表明在预定的最近持续时间内的参考频率和/或在预定的最近持续时间内的对应的连接结果的快速访问紧迫性;以及基于分区后的图团体以及图团体密度858,生成预连接结果。
在一些实施例中,一个或多个处理器820还执行存储器840中的指令,以根据图团体密度858排序所检测到的图团体,其中图团体密度858指示引用到图团体成员的统一频率和/或指示访问图团体成员的统一紧迫性,并且识别有序图团体之一内的最密集节点。
在一些实施例中,一个或多个处理器820还执行存储器840中的指令,以根据图团体密度858来排序所检测到的图团体,其中图团体密度858指示引用到图团体成员的统一频率和/或指示访问图团体成员的统一紧迫性,标识有序图团体之一内的最密集节点,并且通过基于排序从第一有序图团体到下一有序图团体进行排序来生成预连接结果。
在一些实施例中,预连接结果的生成还包括确定预连接结果是否大于预定表大小阈值,并且如果预连接结果大于预定表大小阈值,则指定相应的预连接候选用于分区。
在此描述的计算机可读非瞬时性介质可以包括所有类型的非瞬时性计算机可读介质,包括磁性存储介质、光学存储介质和固态存储介质,并且具体地排除暂时性信号以及仅仅携带它们的导线、电缆或者光纤。应当理解,软件可以安装在预计算和/或预加载规划子系统中并且与预计算和/或预加载规划子系统一起销售。或者,可获得软件并将其加载至预计算和/或预加载规划子系统中,包括经由盘介质或从任何方式的网络或分配系统获得软件,包括例如来自由软件创建者拥有的服务器或来自不拥有但由软件创建者使用的服务器。例如,软件可以存储在服务器上,用于在因特网上分发。
尽管已经以结构特征和/或方法动作专用的语言描述了主题,但是应当理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式而公开的。
Claims (18)
1.一种计算机实现的用于标识一套要执行的预连接操作的方法,其特征在于,在访问关系表数据库时基于表使用历史和/或优先级需求执行所述方法,所述方法包括:
创建加权边线与节点的图,其中所述节点表示关系表,所述边线表示要执行于所述表的连接操作;
根据对应的图团体密度,将所述图分区成多个图团体,其中一个所述图团体密度指示与特定节点接触的边线的数量,所述边线的数量大于预定的边线数量阈值,每个边线还包括边线权重,所述边线权重表明在预定的最近持续时间内的参考频率和/或在预定的最近持续时间内的对应的连接结果的快速访问紧迫性;以及
基于所述分区后的图团体以及所述图团体密度,生成预连接结果。
2.根据权利要求1所述的方法,其特征在于,边线权重基于与所述边线相关联的边线元数据,所述边线元数据指示以下各项中的至少一个:连接的类型、连接的动态特性、所述连接的参考概率、所述连接的几何结构、所述连接的方向、所述连接结果的参考频率、所述连接结果的参考频率的历史趋势,或使所述连接结果基本上立即可用的紧迫性优先级。
3.根据权利要求2所述的方法,其特征在于,所述边线元数据为所述对应的边线和/或表示的一套连接操作提供唯一标识。
4.根据权利要求2所述的方法,其特征在于,所述边线元数据标识所述对应边线连接的表。
5.根据权利要求1所述的方法,其特征在于,所述节点与节点元数据相关联,所述节点元数据指示以下各项中的至少一个:唯一节点标识、所述节点表示的表的标识、表类型的标识、表大小的指示、在所述表的轴的不同方位维度中的最大程度的指示、所述表需要在存储器内的持续多久的指示或期望的用于访问所述表的访问速度的指示。
6.根据权利要求2所述的方法,其特征在于,进行图团体检测过程之前,过滤所述图留下具体的一个或多个不同连接类型。
7.根据权利要求1所述的方法,其特征在于,所述预连接结果的所述生成包括:
将监测到的图团体根据图团体密度进行排序,其中所述图团体密度表明所述图团体的成员的统一参考频率和/或表明所述图团体的所述成员的统一访问紧迫性;以及
标识所述已排序图团体之一中最密集节点。
8.根据权利要求7所述的方法,其特征在于,所述预连接结果的所述生成还包括从第一已排序图团体到下一个已排序图团体基于所述排序进行排列。
9.根据权利要求7所述的方法,其特征在于,所述预连接结果的所述生成还包括确定预连接结果是否将大于预定的表大小阈值,以及如果所述预连接结果将大于所述预定的表大小阈值,指定用于分区的对应的预连接候选。
10.一种数据库设备,其特征在于,包括:
存储器存储,所述存储器存储包括指令;以及
与所述存储器通信的一个或多个处理器,其中,所述一个或多个处理器执行所述指令以:
创建加权边线与节点的图,其中所述节点表示关系表,所述边线表示要执行于所述表的连接操作;
根据对应的图团体密度,将所述图分区成多个图团体,其中一个所述图团体密度指示与特定节点接触的边线的数量,所述边线的数量大于预定的边线数量阈值,每个边线还包括边线权重,所述边线权重表明在预定的最近持续时间内的参考频率和/或在预定的最近持续时间内的对应的连接结果的快速访问紧迫性;以及
基于所述分区后的图团体以及所述图团体密度,生成预连接结果。
11.根据权利要求10所述的数据库设备,其特征在于,边线权重基于与所述边线相关联的边线元数据,所述边线元数据指示以下各项中的至少一个:连接的类型、连接的动态特性、所述连接的参考概率、所述连接的几何结构、所述连接的方向、所述连接结果的参考频率、所述连接结果的参考频率的历史趋势,或使所述连接结果基本上立即可用的紧迫性优先级。
12.根据权利要求11所述的数据库设备,其特征在于,所述边线元数据为所述对应的边线和/或表示的一套连接操作提供唯一标识。
13.根据权利要求11所述的数据库设备,其特征在于,所述边线元数据标识所述对应边线连接的表。
14.根据权利要求10所述的数据库设备,其特征在于,所述节点与节点元数据相关联,所述节点元数据指示以下各项中的至少一个:唯一节点标识、所述节点表示的表的标识、表类型的标识,表大小的指示、在所述表的轴的不同方位维度中的最大程度的指示、所述表需要在存储器内的持续多久的指示或期望的用于访问所述表的访问速度的指示。
15.根据权利要求11所述的数据库设备,其特征在于,进行图团体检测过程之前,过滤所述图留下具体的一个或多个不同连接类型。
16.根据权利要求10所述的方法数据库设备,其特征在于,所述预连接结果的所述生成包括:
将监测到的图团体根据图团体密度进行排序,其中所述图团体密度表明所述图团体的成员的统一参考频率和/或表明所述图团体的所述成员的统一访问紧迫性;以及
标识所述已排序图团体之一中最密集节点。
17.根据权利要求16所述的数据库设备,其特征在于,所述预连接结果的所述生成还包括从第一已排序图团体到下一个已排序图团体基于所述排序进行排列。
18.根据权利要求16所述的数据库设备,其特征在于,所述预连接结果的所述生成还包括确定预连接结果是否将大于预定的表大小阈值,以及如果所述预连接结果将大于所述预定的表大小阈值,指定用于分区的对应的预连接候选。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662435606P | 2016-12-16 | 2016-12-16 | |
US62/435,606 | 2016-12-16 | ||
US15/470,813 | 2017-03-27 | ||
US15/470,813 US10528563B2 (en) | 2016-12-16 | 2017-03-27 | Predictive table pre-joins in large scale data management system using graph community detection |
PCT/CN2017/114654 WO2018108004A1 (en) | 2016-12-16 | 2017-12-05 | Predictive table pre-joins in large scale data management system using graph community detection |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110352415A true CN110352415A (zh) | 2019-10-18 |
CN110352415B CN110352415B (zh) | 2022-04-05 |
Family
ID=62557902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780077840.XA Active CN110352415B (zh) | 2016-12-16 | 2017-12-05 | 大规模数据管理系统中利用图团体监测的预测表预连接 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10528563B2 (zh) |
EP (1) | EP3555773B1 (zh) |
CN (1) | CN110352415B (zh) |
WO (1) | WO2018108004A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112287179A (zh) * | 2020-06-30 | 2021-01-29 | 浙江好络维医疗技术有限公司 | 一种连接优先级算法与图数据库结合的患者身份匹配方法 |
CN114817563A (zh) * | 2022-04-27 | 2022-07-29 | 电子科技大学 | 基于最大团发现的特定Twitter用户群体的挖掘方法 |
CN115098507A (zh) * | 2022-06-30 | 2022-09-23 | 东方合智数据科技(广东)有限责任公司 | 一种基于工业互联网数据的存储方法及相关设备 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11436208B2 (en) * | 2015-12-18 | 2022-09-06 | Sap Se | Computerized software engine to assess physical value using document versioning |
US10430463B2 (en) | 2017-03-16 | 2019-10-01 | Raytheon Company | Systems and methods for generating a weighted property graph data model representing a system architecture |
US10459929B2 (en) * | 2017-03-16 | 2019-10-29 | Raytheon Company | Quantifying robustness of a system architecture by analyzing a property graph data model representing the system architecture |
US10496704B2 (en) | 2017-03-16 | 2019-12-03 | Raytheon Company | Quantifying consistency of a system architecture by comparing analyses of property graph data models representing different versions of the system architecture |
US10430462B2 (en) | 2017-03-16 | 2019-10-01 | Raytheon Company | Systems and methods for generating a property graph data model representing a system architecture |
US10397317B2 (en) * | 2017-09-29 | 2019-08-27 | Oracle International Corporation | Boomerang join: a network efficient, late-materialized, distributed join technique |
US11500931B1 (en) * | 2018-06-01 | 2022-11-15 | Amazon Technologies, Inc. | Using a graph representation of join history to distribute database data |
US20200356559A1 (en) * | 2019-05-08 | 2020-11-12 | Datameer, Inc. | Query Combination In A Hybrid Multi-Cloud Database Environment |
CN110162373B (zh) * | 2019-05-28 | 2022-07-19 | 创新先进技术有限公司 | 在网页中展示图表的方法及装置 |
US12008591B2 (en) * | 2019-08-15 | 2024-06-11 | Wrench.ai, Inc. | Machine learning based user targeting |
US10979525B1 (en) * | 2020-01-06 | 2021-04-13 | International Business Machines Corporation | Selective preemptive cache population based on data quality for rapid result retrieval |
CN112364151B (zh) * | 2020-10-26 | 2023-06-27 | 西北大学 | 一种基于图、引文和内容的论文混合推荐方法 |
CN113254527B (zh) * | 2021-04-22 | 2022-04-08 | 杭州欧若数网科技有限公司 | 分布式存储图数据的优化方法、电子装置和存储介质 |
US11907255B2 (en) * | 2022-03-04 | 2024-02-20 | Oracle International Corporation | Access-frequency-based entity replication techniques for distributed property graphs with schema |
EP4336373A1 (en) * | 2022-09-06 | 2024-03-13 | Sap Se | Configuring a distributed database |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5671403A (en) * | 1994-12-30 | 1997-09-23 | International Business Machines Corporation | Iterative dynamic programming system for query optimization with bounded complexity |
US5758335A (en) * | 1996-09-27 | 1998-05-26 | Bull Hn Information Systems Inc. | Optimizing table join ordering using graph theory prior to query optimization |
CN104050394A (zh) * | 2014-07-04 | 2014-09-17 | 北京师范大学 | 群体脑网络的建模方法及其拓扑属性分析方法 |
CN104933624A (zh) * | 2015-06-29 | 2015-09-23 | 电子科技大学 | 复杂网络的社团发现方法及社团重要节点发现方法 |
US20160055205A1 (en) * | 2014-08-22 | 2016-02-25 | Attivio, Inc. | Automated creation of join graphs for unrelated data sets among relational databases |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7117208B2 (en) | 2000-09-28 | 2006-10-03 | Oracle Corporation | Enterprise web mining system and method |
US6970882B2 (en) * | 2002-04-04 | 2005-11-29 | International Business Machines Corporation | Unified relational database model for data mining selected model scoring results, model training results where selection is based on metadata included in mining model control table |
JP2004272369A (ja) | 2003-03-05 | 2004-09-30 | Mitsubishi Electric Corp | グラフ分割装置 |
US10180809B2 (en) * | 2006-05-17 | 2019-01-15 | Richard Fetik | Secure application acceleration system, methods and apparatus |
US20130231862A1 (en) | 2011-06-03 | 2013-09-05 | Microsoft Corporation | Customizable route planning |
CN103065028B (zh) | 2011-10-19 | 2017-03-01 | 西安邮电大学 | 一种基于图多阶段任务系统模块分解的可视化布局方法 |
CN102722546B (zh) | 2012-05-25 | 2015-07-29 | 北京大学 | 关系数据库环境下图中最短路径的查询方法 |
WO2014101176A1 (en) | 2012-12-31 | 2014-07-03 | Teradata Us, Inc. | Single source shortest path resolution |
US10019481B2 (en) | 2013-03-15 | 2018-07-10 | Oracle International Corporation | Adaptive selection of a distribution method during execution of parallel join operations |
US10776965B2 (en) * | 2013-07-26 | 2020-09-15 | Drisk, Inc. | Systems and methods for visualizing and manipulating graph databases |
EP2871577B1 (en) * | 2013-11-06 | 2017-08-09 | Software AG | Complex event processing (CEP) based system for handling performance issues of a CEP system and corresponding method |
US10560469B2 (en) * | 2014-01-24 | 2020-02-11 | Hewlett Packard Enterprise Development Lp | Identifying deviations in data |
US20150039513A1 (en) * | 2014-02-14 | 2015-02-05 | Brighterion, Inc. | User device profiling in transaction authentications |
US20150261861A1 (en) * | 2014-03-12 | 2015-09-17 | Futurewei Technologies, Inc. | Framework for Composing Real-Time Media Using a Declarative Mark-Up Language |
US9946809B2 (en) * | 2014-04-09 | 2018-04-17 | Introspective Systems LLC | Executable graph framework for the management of complex systems |
US9640376B1 (en) * | 2014-06-16 | 2017-05-02 | Protein Metrics Inc. | Interactive analysis of mass spectrometry data |
US10210280B2 (en) | 2014-10-23 | 2019-02-19 | Sap Se | In-memory database search optimization using graph community structure |
US10223437B2 (en) | 2015-02-27 | 2019-03-05 | Oracle International Corporation | Adaptive data repartitioning and adaptive data replication |
US11868851B2 (en) * | 2015-03-11 | 2024-01-09 | Symphonyai Sensa Llc | Systems and methods for predicting outcomes using a prediction learning model |
US10061841B2 (en) * | 2015-10-21 | 2018-08-28 | International Business Machines Corporation | Fast path traversal in a relational database-based graph structure |
US10185755B2 (en) * | 2015-12-28 | 2019-01-22 | Business Objects Software Limited | Orchestration of data query processing in a database system |
US10762539B2 (en) * | 2016-01-27 | 2020-09-01 | Amobee, Inc. | Resource estimation for queries in large-scale distributed database system |
US10332056B2 (en) * | 2016-03-14 | 2019-06-25 | Futurewei Technologies, Inc. | Features selection and pattern mining for KQI prediction and cause analysis |
US10290136B2 (en) * | 2016-08-10 | 2019-05-14 | Zeekit Online Shopping Ltd | Processing user selectable product images and facilitating visualization-assisted coordinated product transactions |
US10375160B2 (en) * | 2017-05-16 | 2019-08-06 | Futurewei Technologies, Inc. | Mechanisms for programmable composition of factor graphs |
-
2017
- 2017-03-27 US US15/470,813 patent/US10528563B2/en active Active
- 2017-12-05 WO PCT/CN2017/114654 patent/WO2018108004A1/en unknown
- 2017-12-05 CN CN201780077840.XA patent/CN110352415B/zh active Active
- 2017-12-05 EP EP17880685.7A patent/EP3555773B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5671403A (en) * | 1994-12-30 | 1997-09-23 | International Business Machines Corporation | Iterative dynamic programming system for query optimization with bounded complexity |
US5758335A (en) * | 1996-09-27 | 1998-05-26 | Bull Hn Information Systems Inc. | Optimizing table join ordering using graph theory prior to query optimization |
CN104050394A (zh) * | 2014-07-04 | 2014-09-17 | 北京师范大学 | 群体脑网络的建模方法及其拓扑属性分析方法 |
US20160055205A1 (en) * | 2014-08-22 | 2016-02-25 | Attivio, Inc. | Automated creation of join graphs for unrelated data sets among relational databases |
US9507824B2 (en) * | 2014-08-22 | 2016-11-29 | Attivio Inc. | Automated creation of join graphs for unrelated data sets among relational databases |
CN104933624A (zh) * | 2015-06-29 | 2015-09-23 | 电子科技大学 | 复杂网络的社团发现方法及社团重要节点发现方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112287179A (zh) * | 2020-06-30 | 2021-01-29 | 浙江好络维医疗技术有限公司 | 一种连接优先级算法与图数据库结合的患者身份匹配方法 |
CN112287179B (zh) * | 2020-06-30 | 2024-02-23 | 浙江好络维医疗技术有限公司 | 一种连接优先级算法与图数据库结合的患者身份匹配方法 |
CN114817563A (zh) * | 2022-04-27 | 2022-07-29 | 电子科技大学 | 基于最大团发现的特定Twitter用户群体的挖掘方法 |
CN115098507A (zh) * | 2022-06-30 | 2022-09-23 | 东方合智数据科技(广东)有限责任公司 | 一种基于工业互联网数据的存储方法及相关设备 |
CN115098507B (zh) * | 2022-06-30 | 2023-08-18 | 东方合智数据科技(广东)有限责任公司 | 一种基于工业互联网数据的存储方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2018108004A1 (en) | 2018-06-21 |
EP3555773A4 (en) | 2019-11-27 |
CN110352415B (zh) | 2022-04-05 |
US10528563B2 (en) | 2020-01-07 |
EP3555773A1 (en) | 2019-10-23 |
EP3555773B1 (en) | 2023-10-25 |
US20180173763A1 (en) | 2018-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110352415A (zh) | 大规模数据管理系统中利用图团体监测的预测表预连接 | |
US10445657B2 (en) | General framework for cross-validation of machine learning algorithms using SQL on distributed systems | |
US11907258B2 (en) | Distributed database configuration | |
US9740706B2 (en) | Management of intermediate data spills during the shuffle phase of a map-reduce job | |
US7844570B2 (en) | Database generation systems and methods | |
Zheng et al. | An initial study of predictive machine learning analytics on large volumes of historical data for power system applications | |
US8340995B2 (en) | Method and system of using artifacts to identify elements of a component business model | |
US7389211B2 (en) | System and method of predictive modeling for managing decisions for business enterprises | |
US20180173755A1 (en) | Predicting reference frequency/urgency for table pre-loads in large scale data management system using graph community detection | |
CN107766568A (zh) | 使用列式数据库中的直方图进行有效查询处理 | |
CN104657412A (zh) | 用于指定和实现目标的推荐系统 | |
CN108037919A (zh) | 一种基于web的可视化大数据工作流配置方法及系统 | |
WO2012128650A1 (en) | An improved data visualization configuration system and method | |
Zhu et al. | Kea: Tuning an exabyte-scale data infrastructure | |
US20160203204A1 (en) | Generating a virtual dynamic representative of a taxonomic group with unique inheritance of attributes | |
US8494886B2 (en) | Embedding planning components in transactional applications | |
Domaschka et al. | Hathi: an MCDM-based approach to capacity planning for cloud-hosted DBMS | |
US20140149186A1 (en) | Method and system of using artifacts to identify elements of a component business model | |
Kim et al. | Design and implementation of I/O performance prediction scheme on HPC systems through large-scale log analysis | |
Shahmirzadi et al. | Analyzing the impact of various parameters on job scheduling in the Google cluster dataset | |
US20210349450A1 (en) | Hierarchical assessment of processes for implementing robotic process automation | |
CN112948357A (zh) | 一种面向多模数据库OrientDB的调优机制及其构建方法 | |
Camara et al. | Activity failure prediction based on process mining | |
Sellén | Big Data analytics for the forest industry: A proof-of-conceptbuilt on cloud technologies | |
Sultan et al. | Dynamic cloud resources allocation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |