CN110750560A - 一种优化网络多连接的系统和方法 - Google Patents

一种优化网络多连接的系统和方法 Download PDF

Info

Publication number
CN110750560A
CN110750560A CN201911021143.XA CN201911021143A CN110750560A CN 110750560 A CN110750560 A CN 110750560A CN 201911021143 A CN201911021143 A CN 201911021143A CN 110750560 A CN110750560 A CN 110750560A
Authority
CN
China
Prior art keywords
connection
node
nodes
data
data source
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
Application number
CN201911021143.XA
Other languages
English (en)
Other versions
CN110750560B (zh
Inventor
汪诗烨
赵宇海
王国仁
季航旭
李博扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Technology
Northeastern University China
Original Assignee
Beijing University of Technology
Northeastern University China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing University of Technology, Northeastern University China filed Critical Beijing University of Technology
Priority to CN201911021143.XA priority Critical patent/CN110750560B/zh
Publication of CN110750560A publication Critical patent/CN110750560A/zh
Application granted granted Critical
Publication of CN110750560B publication Critical patent/CN110750560B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24544Join order optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Operations Research (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开一种优化网络多连接的系统和方法,属于大数据处理技术领域。该系统包括基于数据字典的连接预算模块和逻辑图重构模块,其中基于数据字典的连接预算模块包括等深直方图生成单元和统计信息管理单元,并基于数据字典设计连接预算模型来描述数据分布质量s,用于连接逻辑图重构模块;逻辑图重构模块又分为连接顺序重排单元和DAG重构单元,运用该系统进行网络多连接优化的方法采用了启发式MMAS算法,保证在相对低的时间复杂度内得到近似最优解,大幅降低了多数据集连接计算的时间,解决现有技术中无法自动优化多连接顺序的问题,能够有效地减少程序的执行时间和网络传输、IO吞吐。

Description

一种优化网络多连接的系统和方法
技术领域
本发明涉及大数据处理技术领域,尤其涉及一种优化网络多连接的系统和方法。
背景技术
连接操作是批处理中最常见也最昂贵的操作之一,对于多个数据源的连接操作,执行一组连接操作的顺序会对所需的计算、I/O吞吐和网络传输量产生重大影响,这将直接影响着系统的执行性能。
但是实际情况中,用户由于对数据集没有确切的概念而主观确定连接的执行顺序,因而用户手动完成的批处理程序的连接顺序往往都不是最优的。目前在大部分大数据处理系统中仅能根据用户逻辑处理固定运算符顺序的计划,为确定的逻辑计划生成不同的物理执行策略并通过成本估算以选择代价最小的物理执行计划,但是其并没有涉及到对多个数据源连接顺序的重排策略。而现有的多连接优化算法中,传统的动态规划算法有着较高的时间复杂度,随着连接节点的增加会导致优化方案计算时间大幅增加,进而致使程序总执行时间得不到有效减少。因而迫切的需要新的方法和技术来为多连接优化提供一种高效的方案。
发明内容
本发明要解决的技术问题是针对上述现有技术的不足,提供一种优化网络多连接的系统和方法。
为解决上述技术问题,本发明所采取的技术方案是:一种优化网络多连接的系统,该系统的结构如图1所示,包括基于数据字典的连接预算模块和逻辑图重构模块;
所述基于数据字典的连接预算模块包括:等深直方图生成单元和统计信息管理单元,并基于数据字典设计连接预算模型来描述数据分布质量s,用于连接逻辑图重构模块;
所述等深直方图生成单元描述数据源各列的数据分布信息,为后续连接预算模型的计算提供数据来源;
所述统计信息管理单元管理数据源各列生成的等深直方图和连接中间结果各列生成的等深直方图;
所述逻辑图重构模块包括:连接顺序重排单元和DAG重构单元;
所述连接顺序重排单元包括:动态代价估计算法和MMAS算法缩减逻辑计划空间;
所述动态代价估计算法结合连接预算模型实时计算某时刻所有存在连接关系的数据源两两连接生成的可选代价集合;
所述MMAS算法利用动态代价估计算法在线得到的可选代价集合缩减逻辑计划空间以得到接近最优的多连接逻辑执行序列;
所述DAG重构单元包括:连接查询二叉树生成和DAG整合;
所述连接查询二叉树将得到的多连接逻辑执行序列转换成系统可识别的由结点和信道构成的连接图;
所述DAG整合将用户逻辑图原有非多连接部分与调整后的连接图进行重构以生成新的逻辑图供后续任务继续进行。
为解决上述技术问题,本发明采用上述技术方法所述的优化网络多连接的系统进行多连接优化的方法,其流程如图2所示,包括如下步骤:
步骤1:基于数据字典设计连接预算模型来描述数据分布质量;
步骤1.1:采用等深直方图H来描述某一属性列数据分布的方式,等深直方图的处理过程示意图如图3所示;
步骤1.2:将数据源各列的等深直方图和连接中间结果的各列的等深直方图通过统计信息管理单元进行信息统计;
步骤1.3:设计基于等深直方图H的连接预算模型Estimator,对两个数据源R、S进行连接预算估计;
步骤1.3.1:获取数据源R和数据源S在同一连接属性上的直方图信息并对应两直方图连接属性的分段区间以相同的连接属性值范围进行分割对齐;
步骤1.3.2:假定区间内数据分布均匀并且满足连接属性域重叠的包含原则,即较小域中的连接属性在较大域中具有匹配,在每个分割后的区间内使用如下公式来估计单个连接条件下的预算;
Figure BDA0002247259560000021
其中,
Figure BDA0002247259560000023
为数据源R的第i个区间的元组总数,
Figure BDA0002247259560000024
为数据源S的第i个区间的元组总数,dom(a)为数据源R第i个区间中第a列不同域值的数量,dom(b)为数据源S第i个区间中第b列不同域值的数量;
步骤1.3.3:获取分割后区间值分别计算连接预算并进行累加,则可得到单个连接条件下R和S的连接预算估计值,如下所示:
Figure BDA0002247259560000022
当两个数据源进行连接时存在m个连接条件时,连接预算为:
步骤2:对用户提交多连接任务到系统后生成的逻辑图进行预处理,确定相应的搜索空间并对搜索空间进行符合多连接查询优化特征的编码和关系映射,结合连接预算模型Estimator,生成初始连接代价集IC1
步骤2.1:遍历用户提交的多连接任务生成的逻辑图,为连接节点及其前驱数据源节点分别建立编码并分别生成HashMap映射,使用二维数组A以维护所有连接节点与其两个数据源节点的基于编码的映射关系;
步骤2.2:遍历由输入端连接节点生成的HashMap映射并获取用户逻辑图中所有输入端连接节点的统计信息,结合二维数组A将有相同连接属性的数据源节点两两分为一组,按分组调用步骤1.3所述的连接预算模型Estimator,生成初始连接代价集IC1作为后续算法的输入。
步骤3:基于连接节点结合连接预算模型Estimator,实现动态代价估计算法,实时计算某i时刻的所有未访达连接节点的连接代价集CLi,其流程如图4所示;
步骤3.1:遍历已访达节点关系集TL(初始为空,由步骤4中的MMAS算法中动态更新),判断当前连接节点与TL中的连接节点是否有连接关系;
步骤3.2:若已访达节点关系集TL中不存在与当前节点有连接关系的节点,则获取初始连接代价集IC中当前节点的代价,压入连接代价集CLi
步骤3.3:若临时节点集TL中存在与当前节点有连接关系的节点,判断TL中与当前节点有连接关系节点个数m;
若m=1,调用连接预算模型计算当前节点和当前节点非关联前驱节点的连接结果并存入连接代价集CLi
若m=2,调用连接预算模型计算TL中与当前节点有关联的两个节点的连接代价存入连接代价集CLi
步骤3.4:重复步骤3.1到步骤3.3,直到得到该时刻i所有未访达节点对应的代价集CLi
步骤4:采用最大最小蚁群系统MMAS算法结合动态代价估计算法缩减多连接逻辑计划空间,得到连接关系的编码序列Sequence,其流程如图5所示;
步骤4.1:使用贪婪算法先选出一条代价最小的局部最优路径,更新信息素矩阵,只有当前最优路径上的信息素会被增加,其他路径上的信息素只挥发;
步骤4.2:模拟每只蚂蚁行为,随机选择出发节点,结合动态代价估计算法在线实时计算转移概率矩阵P,蚂蚁依据轮盘赌的方式随机选择下一步节点Vi
步骤4.3:蚂蚁选定下一步节点Vi后,需要更新已访达节点关系集TL,若Vi与TL中的节点不存在连接关系,则直接将Vi压入TL;若Vi与TL中存在有连接关系的节点Vt,则将该节点从TL从删除,合并Vi和Vt后再重新压入TL;
步骤4.4:重复步骤4.2和步骤4.3,直到所有蚂蚁都走完全程,则得到当前最优路径L;
步骤4.5:一次循环后,找到最优路径的蚂蚁释放信息素,其他路径上的信息素只挥发,同时保证每条路径上的信息素τij的取值限定在用户自定义信息素范围内;
步骤4.6:如果在完成有限数量的优化循环并且没有找到更好的结果之后,则认为系统出现了停滞;故所有路径上的信息素水平恢复到其初始值,以避免停滞或陷入局部最优解。
步骤4.7:重复步骤4.2到步骤4.6,完成有限次数的迭代之后,则产生了全局最优路径,算法执行完毕后可直接输出相应连接关系的编码序列Sequence。
步骤5:将得到的连接关系编码序列Sequence转换为多连接的最优逻辑执行计划,遍历多连接编码序列Sequence,重写其对应连接节点的相关属性信息并建立新的连接节点以供后续生成连接查询二叉树,设计一种适用于此场景的连接查询二叉树生成算法;
步骤5.1:遍历连接关系序列Sequence,直接构造第一个连接节点的相关属性信息,包括连接属性偏移量、语义属性、两输入端数据类型信息和连接输出数据类型信息等以建立新的连接节点J1,并将其压入已建立节点集ES;
步骤5.2:判断当前连接节点Ji(i>1)与已建立节点集ES中的连接节点是否有连接关系;若没有,表明其节点Ji的两个数据源节点均为非连接节点,重写当前节点Ji对应的相关属性信息并生成新的连接节点Ji,比较两个数据源节点对应编码大小,小编码节点建立当前节点Ji的左叶子节点,大编码节点建立当前节点Ji的右叶子节点;
步骤5.3:若当前节点Ji与已建立节点集ES中的节点有连接关系,判断ES中连接节点个数n;若n=1,则比较当前节点Ji与已建立节点集ES中有关联节点J的编码,若J编码较大,则用节点J建立节点Ji的右子树,并用当前节点Ji的非关联数据源节点建立节点Ji的左叶子节点,相反则用J建立节点Ji的左子树,用当前节点Ji的非关联数据源节点建立节点Ji的右叶子节点;
步骤5.4:若已建立节点集ES中包含两个与当前节点Ji关联的连接节点Jp、Jq,则比较两个连接节点Jp、Jq对应编码大小,小编码节点建立节点Ji的左子树,大编码节点建立节点Ji的右子树;
步骤5.5:将当前生成的新Ji压入已建立节点集ES;
步骤5.6:重复步骤5.1和步骤5.5,直到生成新的连接查询二叉树。
步骤6:将用户逻辑图的多连接相关子图拆解出来,获取步骤5新生成的连接查询二叉树,然后将其与用户逻辑图非连接子图部分进行整合以生成新的DAG,供优化器后续流程的正常执行。
采用上述技术方案所产生的有益效果在于:
1、本发明是一种优化网络多连接的系统及方法,主要实现对多数据集的连接操作在实际执行中的顺序进行优化,并且同时保留可后续扩展的兼容性;
2、本发明解决现有技术中无法自动优化多连接顺序的问题,能够有效地减少程序的执行时间和网络传输、IO吞吐等。因为用户在执行程序时,往往对数据集的大小没有确切的概念,所以期望用户手动使用良好的连接顺序进行连接操作显然并不现实,能够高效、自动地执行连接优化是对大数据处理系统的一个强有力的功能补充;
3、现有的多连接优化算法中,传统的动态规划算法有着较高的时间复杂度,随着连接节点的增加会导致优化方案计算时间大幅增加,进而致使程序总执行时间得不到有效减少;因此,本发明采用了启发式算法,启发式算法能够保证在相对低得多的时间复杂度内得到近似最优解,而经过实验测试,基于MMAS算法的本发明确实在极低的时间内通过计算得到了优化方案,并且大幅降低了多数据集连接计算的时间;并且随着数据集规模的增大,数据集的大小更加的不均匀以及数据集的节点数量的增加等更贴近实际使用的情况,本发明的优化效果也会更加明显。
附图说明
图1为本发明一种优化网络多连接的系统结构图;
图2为本发明采用优化网络多连接的系统进行多连接优化的方法流程图;
图3为本发明等深直方图的处理过程示意图;
(a)原始直方图信息;
(b)对齐边界;
(c)按区间估计连接预算;
图4为本发明动态代价估计算法的流程图;
图5为本发明MMAS算法结合动态代价算法的流程示意图;
图6为本发明实施例中Gaia批处理主要过程的流程图;
图7为本发明实施例中连接编码树生成的示意图;
图8为本发明实施例中建立连接查询二叉树的过程示意图;
图9为本发明实施例中DAG重构过程示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本实施例将一种优化网络多连接的系统和方法运用到大数据分析系统Gaia中,Gaia是一个面向多计算模型混合并存的高时效、可扩展的新一代大数据分析系统,连接操作为大数据引擎中最常见的操作之一,也是Gaia中使用频率很高但是代价也很高的操作,因而如何提高Gaia连接操作的效率是大数据处理领域所必须要解决的挑战。本实施例将结合Gaia平台自身的特点,将一种优化网络多连接的系统和方法运用进去,实现系统自动根据连接代价进行优化,有利于将较大的连接中间结果推后执行,并能有效地减少程序的执行时间和网络传输、IO吞吐等。
本实施例在Gaia中提出一种新的多连接算子joinTree以扩展现有操作符的功能,基于该算子设计基于数据字典的优化网络多连接的系统和方法,并且保证和Gaia本身的兼容性。在Gaia中,用户可以通过指定hint来指定连接操作中的具体物理执行策略,而在连接重排后用户指定的原本连接算子的物理执行策略显然没有意义,因此加入新的joinHint变量JOIN_REORDER,当用户选择使用joinTree操作时,默认将hint指定为JOIN_REORDER。并基于joinTree算子建立新的连接计划InnerJoinTreeOperatorBase。
图6为Gaia批处理的主要执行流程:用户程序提交给Gaia集群后会被翻译成逻辑执行计划plan,在优化器模块,计划会被优化生成更高效的物理执行方案以生成OptimizedPlan供后续任务的正常执行。本实施例基于Gaia优化器增加新的优化多连接的系统,如图1所示,该系统包括基于数据字典的连接预算模型以及逻辑图重写模块;
所述基于数据字典的连接预算模块包括:等深直方图生成单元和统计信息管理单元,并基于数据字典设计连接预算模型来描述数据分布质量s,用于连接逻辑图重构模块;
所述等深直方图生成单元描述数据源各列的数据分布信息,为后续连接预算模型的计算提供数据来源;
所述统计信息管理单元管理数据源各列生成的等深直方图和连接中间结果各列生成的等深直方图;
所述逻辑图重构模块包括:连接顺序重排单元和DAG重构单元;
所述连接顺序重排单元包括:动态代价估计算法和MMAS算法缩减逻辑计划空间;
所述动态代价估计算法结合连接预算模型实时计算某时刻所有存在连接关系的数据源两两连接生成的可选代价集合;
所述MMAS算法利用动态代价估计算法在线得到的可选代价集合缩减逻辑计划空间以得到接近最优的多连接逻辑执行序列;
所述DAG重构单元包括:连接查询二叉树生成和DAG整合;
所述连接查询二叉树将得到的多连接逻辑执行序列转换成系统可识别的由结点和信道构成的连接图;
所述DAG整合将用户逻辑图原有非多连接部分与调整后的连接图进行重构以生成新的逻辑图供后续任务继续进行。
采用上述优化网络多连接的系统进行多连接优化的方法,其流程如图2所示,包括如下步骤:
步骤1:基于数据字典设计连接预算模型来描述数据分布质量;在对连接操作进行预算估算时,参与连接的数据源的列数值范围、数值分布等数据特征信息直接影响着连接中间结果的准确性。
步骤1.1:采用等深直方图H来描述某一属性列数据分布的方式,等深直方图的处理过程示意图如图3所示;
表示数据分布D的等深直方图H是由四元组(loweri,upperi,domi,counti)构成的集合。其中,[loweri,upperi)表示D中的一个数据区间且满足不等式valuemin≤loweri<upperi≤valuemax,dom为该区间内不同域值的个数,counti为该区间内元组的总数。等深直方图H贯穿了统计数据字典的整个过程,其考虑了数据的实际分布,能够在数据倾斜时做出更好的规划,提高非均匀数据分布的选择率。完成等深直方图的生成后,将其持久化到外部存储HDFS中。
步骤1.2:将数据源各列的等深直方图和连接中间结果的各列的等深直方图通过统计信息管理单元进行信息统计;在完成连接预算估计后,相关直方图的统计信息将会从内存中清除。连接预算模型和决策最终物理执行计划所需的成本模型调用该模块来获得所需要的直方图信息以进行相关计算。
步骤1.3:设计基于等深直方图H的连接预算模型Estimator,对两个数据源R、S进行连接预算估计;
步骤1.3.1:获取数据源R和数据源S在同一连接属性上的直方图信息并对应两直方图连接属性的分段区间以相同的连接属性值范围进行分割对齐;
步骤1.3.2:假定区间内数据分布均匀并且满足连接属性域重叠的包含原则,即较小域中的连接属性在较大域中具有匹配,在每个分割后的区间内使用如下公式来估计单个连接条件下的预算;
Figure BDA0002247259560000081
其中,
Figure BDA0002247259560000084
为数据源R的第i个区间的元组总数,
Figure BDA0002247259560000085
为数据源S的第i个区间的元组总数,dom(a)为数据源R第i个区间中第a列不同域值的数量,dom(b)为数据源S第i个区间中第b列不同域值的数量;
步骤1.3.3:获取分割后区间值分别计算连接预算并进行累加,则可得到单个连接条件下R和S的连接预算估计值,如下所示:
当两个数据源进行连接时存在m个连接条件时,连接预算为:
Figure BDA0002247259560000083
步骤2:对用户提交多连接任务到系统后生成的逻辑图进行预处理,确定相应的搜索空间并对搜索空间进行符合多连接查询优化特征的编码和关系映射,结合连接预算模型Estimator,生成初始连接代价集IC1
步骤2.1:遍历用户提交的多连接任务生成的逻辑图,为连接节点及其前驱数据源节点分别建立编码并分别生成HashMap映射,使用二维数组A以维护所有连接节点与其两个数据源节点的基于编码的映射关系;
本实施例中以大规模基准数据集TPC-H的一个具体的多连接实例来说明搜索空间编码和建立映射关系的具体过程。如图7所示,获取用户逻辑图,以sink为根节点进行深度优先遍历,解析用户逻辑图中连接图的相关部分(即图7中虚线区域),搜索连接节点joinTreeNode节点,依次为该节点和其前驱节点OP建立编号,转换成逻辑上的连接编码树,并分别生成两个包含所有连接节点的HashMap映射JNH和包含所有OP节点的HashMap映射OPH,其结构为<编号,节点>。
在具体的优化过程中,待优化问题的被编码的搜索空间作为后续多连接优化算法整个寻优过程的搜索范围,使之可以方便地描述算法求解过程中搜索空间所有状态的相关信息。通过直接对相关编码进行操作,后续算法可以基于JNH和OPH映射通过编号找到对应节点以获取相关统计信息来进行相应计算,执行完毕后可直接输出相应连接关系的编码序列,有利于描述后续算法的生成结果。
步骤2.2:遍历由输入端连接节点生成的HashMap映射并获取用户逻辑图中所有输入端连接节点的统计信息,结合二维数组A将有相同连接属性的数据源节点两两分为一组,按分组调用步骤1.3所述的连接预算模型Estimator,生成初始连接代价集IC1作为后续算法的输入。
步骤3:基于连接节点结合连接预算模型Estimator,实现动态代价估计算法,实时计算某i时刻的所有未访达连接节点的连接代价集CLi,其流程如图4所示;
步骤3.1:遍历已访达节点关系集TL(初始为空,由步骤4中的MMAS算法中动态更新),判断当前连接节点与TL中的连接节点是否有连接关系;
步骤3.2:若已访达节点关系集TL中不存在与当前节点有连接关系的节点,则获取初始连接代价集IC中当前节点的代价,压入连接代价集CLi
步骤3.3:若临时节点集TL中存在与当前节点有连接关系的节点,判断TL中与当前节点有连接关系节点个数m;
若m=1,调用连接预算模型计算当前节点和当前节点非关联前驱节点的连接结果并存入连接代价集CLi
若m=2,调用连接预算模型计算TL中与当前节点有关联的两个节点的连接代价存入连接代价集CLi
步骤3.4:重复步骤3.1到步骤3.3,直到得到该时刻i所有未访达节点对应的代价集CLi
本实施例就某一时刻的动态代价估计算法的具体过程进行说明:某时刻临时节点集TL中存在编码为4和编码为2的两个连接节点,需计算下一步到所有未选连接节点的代价。遍历所有未被选择的连接节点,当前连接节点为0编码节点时,该节点与TL中所有节点都不存在连接关系,故将初始连接代价集IC中0编码节点对应的代价压入代价列表CL,同时将编码0压入备选节点列表SL;当前节点为1编码节点时,该节点只与TL中2编码节点存在连接关系,故调用连接预算模型计算2编码节点和1编码节点未关联前驱节点的连接代价压入代价列表CL;当前节点为3编码节点时,该节点与TL中4编码和2编码的连接节点均存在连接关系,故调用连接预算模型计算4编码节点和2编码节点的连接代价压入CL。此时返回的备选节点列表SL为{0,1,3},对应的连接代价列表CL为
步骤4:采用最大最小蚁群系统MMAS算法结合动态代价估计算法缩减多连接逻辑计划空间,得到连接关系的编码序列Sequence,其流程如图5所示;选择连接节点JN而非JN的前驱数据源节点OP作为算法顶点,结合动态代价估计算法在线实时为每只蚂蚁生成下一步顶点的代价矩阵,蚂蚁在不断迭代过程中向最小代价的路径聚积构建最优解,从而得到近似最优的连接关系列表。
如果选择连接节点JN的前驱数据源节点OP作为MMAS算法顶点,那么必须满足如果两个OP之间没有关联,则选择它们的概率为零,并且选择数据源节点OP为算法顶点时得到的多连接最优执行计划为左深度树,但是这种执行计划树在分布式计算框架下并不合适。本发明选择连接节点JN而非数据源节点OP作为算法顶点可以很好的回避上述问题。首先选用JN的连接预算值可以保证其作为算法顶点代价不为空,其次使用连接节点JN调用算法更有利于生成适合Gaia这类分布式并行计算框架的稠密树。MMAS算法需要在初始状态下确定各顶点之间的代价矩阵,而Gaia多连接顺序重排的特点使之无法在算法执行之初确定代价矩阵,需要实时在线计算下一步备选顶点的代价列表。
步骤4.1:使用贪婪算法先选出一条代价最小的局部最优路径,更新信息素矩阵,只有当前最优路径上的信息素会被增加,其他路径上的信息素只挥发;
步骤4.2:模拟每只蚂蚁行为,随机选择出发节点,结合动态代价估计算法在线实时计算转移概率矩阵P,蚂蚁依据轮盘赌的方式随机选择下一步节点Vi
蚂蚁每一步的转移概率都是在线实时生成的,而转移概率的计算依赖于蚂蚁下一步可选顶点的代价矩阵。在选择下一步的过程中,调用动态代价估计算法得到所有可选节点对应的连接代价列表CL,计算转移概率矩阵P并选定下一步节点Vi
步骤4.3:蚂蚁选定下一步节点Vi后,需要更新已访达节点关系集TL,若Vi与TL中的节点不存在连接关系,则直接将Vi压入TL;若Vi与TL中存在有连接关系的节点Vt,则将该节点从TL从删除,合并Vi和Vt后再重新压入TL;
基于上述实例对某一时刻MMAS算法在线更新临时节点集TL的具体过程进行说明:假定此时蚂蚁已经走过编码为4的顶点和编码为2的顶点,故此时临时节点集TL中存在4编码连接节点和2编码连接节点。计算转移概率矩阵,若下一步选定的节点为0编码节点,该节点与TL中节点都不存在连接关系,则不更新临时节点集TL;若选定的节点为1编码节点,该节点只与TL中2编码节点存在连接关系,则将2编码节点从TL中删除,同时将2编码节点和1编码节点合并后加入TL;若选定节点为3编码节点,该节点与TL中4编码节点和2编码节点都存在连接关系,则将4编码节点、2编码节点和3编码节点合并后加入临时节点集TL。
步骤4.4:重复步骤4.2和步骤4.3,直到所有蚂蚁都走完全程,则得到当前最优路径L;
步骤4.5:一次循环后,找到最优路径的蚂蚁释放信息素,其他路径上的信息素只挥发,同时保证每条路径上的信息素τij的取值限定在用户自定义信息素范围内;
步骤4.6:如果在完成有限数量的优化循环并且没有找到更好的结果之后,则认为系统出现了停滞;故所有路径上的信息素水平恢复到其初始值,以避免停滞或陷入局部最优解。
步骤4.7:重复步骤4.2到步骤4.6,完成有限次数的迭代之后,则产生了全局最优路径,算法执行完毕后可直接输出相应连接关系的编码序列Sequence。
步骤5:将得到的连接关系编码序列Sequence转换为多连接的最优逻辑执行计划,遍历多连接编码序列Sequence,重写其对应连接节点的相关属性信息并建立新的连接节点以供后续生成连接查询二叉树,设计一种适用于此场景的连接查询二叉树生成算法;
步骤5.1:遍历连接关系序列Sequence,直接构造第一个连接节点的相关属性信息,包括连接属性偏移量、语义属性、两输入端数据类型信息和连接输出数据类型信息等以建立新的连接节点J1,并将其压入已建立节点集ES;
步骤5.2:判断当前连接节点Ji(i>1)与已建立节点集ES中的连接节点是否有连接关系;若没有,表明其节点Ji的两个数据源节点均为非连接节点,重写当前节点Ji对应的相关属性信息并生成新的连接节点Ji,比较两个数据源节点对应编码大小,小编码节点建立当前节点Ji的左叶子节点,大编码节点建立当前节点Ji的右叶子节点;
步骤5.3:若当前节点Ji与已建立节点集ES中的节点有连接关系,判断ES中连接节点个数n;若n=1,则比较当前节点Ji与已建立节点集ES中有关联节点J的编码,若J编码较大,则用节点J建立节点Ji的右子树,并用当前节点Ji的非关联数据源节点建立节点Ji的左叶子节点,相反则用J建立节点Ji的左子树,用当前节点Ji的非关联数据源节点建立节点Ji的右叶子节点;
步骤5.4:若已建立节点集ES中包含两个与当前节点Ji关联的连接节点Jp、Jq,则比较两个连接节点Jp、Jq对应编码大小,小编码节点建立节点Ji的左子树,大编码节点建立节点Ji的右子树;
步骤5.5:将当前生成的新Ji压入已建立节点集ES;
步骤5.6:重复步骤5.1和步骤5.5,直到生成新的连接查询二叉树。
假设步骤4得到的多连接序列为{4,2,3,0,1},具体描述建立多连接查询二叉树的具体过程。如图8所示,依次建立4编号连接节点子树T4和2编号连接子树T2,3编号节点和T1、T2有连接关系,则比较T4、T2编码大小,T4编码大于T2编码,故T2建立T3左子树,T4建立T3右子树,0编号节点与已建立子树没有关联,则单独成子树T0,1编号节点与T0和T3子树有关联,T0编号小于T3编号,T0建立T1左子树,T3建立T1右子树,最终生成以T1为根的连接查询二叉树。
步骤6:将用户逻辑图的多连接相关子图拆解出来,获取步骤5新生成的连接查询二叉树,然后将其与用户逻辑图非连接子图部分进行整合以生成新的DAG,供优化器后续流程的正常执行。图9描述了上述实例经过逻辑图重写后生成的DAG结构,以供优化器后续模块的继续进行。

Claims (7)

1.一种优化网络多连接的系统,其特征在于包括:基于数据字典的连接预算模块和逻辑图重构模块;
所述基于数据字典的连接预算模块包括:等深直方图生成单元和统计信息管理单元,并基于数据字典设计连接预算模型来描述数据分布质量s,用于连接逻辑图重构模块;
所述等深直方图生成单元描述数据源各列的数据分布信息,为后续连接预算模型的计算提供数据来源;
所述统计信息管理单元管理数据源各列生成的等深直方图和连接中间结果各列生成的等深直方图;
所述逻辑图重构模块包括:连接顺序重排单元和DAG重构单元;
所述连接顺序重排单元包括:动态代价估计算法和MMAS算法缩减逻辑计划空间;
所述动态代价估计算法结合连接预算模型实时计算某时刻所有存在连接关系的数据源两两连接生成的可选代价集合;
所述MMAS算法利用动态代价估计算法在线得到的可选代价集合缩减逻辑计划空间以得到接近最优的多连接逻辑执行序列;
所述DAG重构单元包括:连接查询二叉树生成和DAG整合;
所述连接查询二叉树将得到的多连接逻辑执行序列转换成系统可识别的由结点和信道构成的连接图;
所述DAG整合将用户逻辑图原有非多连接部分与调整后的连接图进行重构以生成新的逻辑图供后续任务继续进行。
2.采用权利要求1所述优化网络多连接的系统进行多连接优化的方法,其特征在于包括如下步骤:
步骤1:基于数据字典设计连接预算模型来描述数据分布质量;
步骤1.1:采用等深直方图H来描述某一属性列数据分布的方式;
步骤1.2:将数据源各列的等深直方图和连接中间结果的各列的等深直方图通过统计信息管理单元进行信息统计;
步骤1.3:设计基于等深直方图H的连接预算模型Estimator,对两个数据源R、S进行连接预算估计;
步骤2:对用户提交多连接任务到系统后生成的逻辑图进行预处理,确定相应的搜索空间并对搜索空间进行符合多连接查询优化特征的编码和关系映射,结合连接预算模型Estimator,生成初始连接代价集IC1
步骤3:基于连接节点结合连接预算模型Estimator,实现动态代价估计算法,实时计算某i时刻的所有未访达连接节点的连接代价集CLi
步骤4:采用最大最小蚁群系统MMAS算法结合动态代价估计算法缩减多连接逻辑计划空间,得到连接关系的编码序列Sequence;
步骤5:将得到的连接关系编码序列Sequence转换为多连接的最优逻辑执行计划,遍历多连接编码序列Sequence,重写其对应连接节点的相关属性信息并建立新的连接节点以供后续生成连接查询二叉树,设计一种适用于此场景的连接查询二叉树生成算法;
步骤6:将用户逻辑图的多连接相关子图拆解出来,获取步骤5新生成的连接查询二叉树,然后将其与用户逻辑图多连接子图部分进行整合以生成新的DAG,供优化器后续流程的正常执行。
3.根据权利要求2所述的采用优化网络多连接的系统进行多连接优化的方法,其特征在于所述步骤1.3的过程如下:
步骤1.3.1:获取数据源R和数据源S在同一连接属性上的直方图信息并对应两直方图连接属性的分段区间以相同的连接属性值范围进行分割对齐;
步骤1.3.2:假定区间内数据分布均匀并且满足连接属性域重叠的包含原则,即较小域中的连接属性在较大域中具有匹配,在每个分割后的区间内使用如下公式来估计单个连接条件下的预算;
Figure FDA0002247259550000021
其中,
Figure FDA0002247259550000022
为数据源R的第i个区间的元组总数,
Figure FDA0002247259550000023
为数据源S的第i个区间的元组总数,dom(a)为数据源R第i个区间中第a列不同域值的数量,dom(b)为数据源S第i个区间中第b列不同域值的数量;
步骤1.3.3:获取分割后区间值分别计算连接预算并进行累加,则可得到单个连接条件下R和S的连接预算估计值,如下所示:
Figure FDA0002247259550000024
当两个数据源进行连接时存在m个连接条件时,连接预算为:
4.根据权利要求2所述的采用优化网络多连接的系统进行多连接优化的方法,其特征在于所述步骤2的过程如下:
步骤2.1:遍历用户提交的多连接任务生成的逻辑图,为连接节点及其前驱数据源节点分别建立编码并分别生成HashMap映射,使用二维数组A以维护所有连接节点与其两个数据源节点的基于编码的映射关系;
步骤2.2:遍历由输入端连接节点生成的HashMap映射并获取用户逻辑图中所有输入端连接节点的统计信息,结合二维数组A将有相同连接属性的数据源节点两两分为一组,按分组调用权利要求2步骤1.3所述的连接预算模型Estimator,生成初始连接代价集IC1作为后续算法的输入。
5.根据权利要求2所述的采用优化网络多连接的系统进行多连接优化的方法,其特征在于所述步骤3的过程如下:
步骤3.1:遍历已访达节点关系集TL(初始为空,由步骤4中的MMAS算法中动态更新),判断当前连接节点与TL中的连接节点是否有连接关系;
步骤3.2:若已访达节点关系集TL中不存在与当前节点有连接关系的节点,则获取初始连接代价集IC中当前节点的代价,压入连接代价集CLi
步骤3.3:若临时节点集TL中存在与当前节点有连接关系的节点,判断TL中与当前节点有连接关系节点个数m;
若m=1,调用连接预算模型计算当前节点和当前节点非关联前驱节点的连接结果并存入连接代价集CLi
若m=2,调用连接预算模型计算TL中与当前节点有关联的两个节点的连接代价存入连接代价集CLi
步骤3.4:重复步骤3.1到步骤3.3,直到得到该时刻i所有未访达节点对应的代价集CLi
6.根据权利要求2所述的采用优化网络多连接的系统进行多连接优化的方法,其特征在于所述步骤4的过程如下:
步骤4.1:使用贪婪算法先选出一条代价最小的局部最优路径,更新信息素矩阵,只有当前最优路径上的信息素会被增加,其他路径上的信息素只挥发;
步骤4.2:模拟每只蚂蚁行为,随机选择出发节点,结合动态代价估计算法在线实时计算转移概率矩阵P,蚂蚁依据轮盘赌的方式随机选择下一步节点Vi
步骤4.3:蚂蚁选定下一步节点Vi后,需要更新已访达节点关系集TL,若Vi与TL中的节点不存在连接关系,则直接将Vi压入TL;若Vi与TL中存在有连接关系的节点Vt,则将该节点从TL从删除,合并Vi和Vt后再重新压入TL;
步骤4.4:重复步骤4.2和步骤4.3,直到所有蚂蚁都走完全程,则得到当前最优路径L;
步骤4.5:一次循环后,找到最优路径的蚂蚁释放信息素,其他路径上的信息素只挥发,同时保证每条路径上的信息素τij的取值限定在用户自定义信息素范围内;
步骤4.6:如果在完成有限数量的优化循环并且没有找到更好的结果之后,则认为系统出现了停滞;故所有路径上的信息素水平恢复到其初始值,以避免停滞或陷入局部最优解;
步骤4.7:重复步骤4.2到步骤4.6,完成有限次数的迭代之后,则产生了全局最优路径,算法执行完毕后可直接输出相应连接关系的编码序列Sequence。
7.根据权利要求2所述的采用优化网络多连接的系统进行多连接优化的方法,其特征在于所述步骤5的过程如下:
步骤5.1:遍历连接关系序列Sequence,直接构造第一个连接节点的相关属性信息,包括连接属性偏移量、语义属性、两输入端数据类型信息和连接输出数据类型信息等以建立新的连接节点J1,并将其压入已建立节点集ES;
步骤5.2:判断当前连接节点Ji(i>1)与已建立节点集ES中的连接节点是否有连接关系;若没有,表明其节点Ji的两个数据源节点均为非连接节点,重写当前节点Ji对应的相关属性信息并生成新的连接节点Ji,比较两个数据源节点对应编码大小,小编码节点建立当前节点Ji的左叶子节点,大编码节点建立当前节点Ji的右叶子节点;
步骤5.3:若当前节点Ji与已建立节点集ES中的节点有连接关系,判断ES中连接节点个数n;若n=1,则比较当前节点Ji与已建立节点集ES中有关联节点J的编码,若J编码较大,则用节点J建立节点Ji的右子树,并用当前节点Ji的非关联数据源节点建立节点Ji的左叶子节点,相反则用J建立节点Ji的左子树,用当前节点Ji的非关联数据源节点建立节点Ji的右叶子节点;
步骤5.4:若已建立节点集ES中包含两个与当前节点Ji关联的连接节点Jp、Jq,则比较两个连接节点Jp、Jq对应编码大小,小编码节点建立节点Ji的左子树,大编码节点建立节点Ji的右子树;
步骤5.5:将当前生成的新Ji压入已建立节点集ES;
步骤5.6:重复步骤5.1和步骤5.5,直到生成新的连接查询二叉树。
CN201911021143.XA 2019-10-25 2019-10-25 一种优化网络多连接的系统和方法 Active CN110750560B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911021143.XA CN110750560B (zh) 2019-10-25 2019-10-25 一种优化网络多连接的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911021143.XA CN110750560B (zh) 2019-10-25 2019-10-25 一种优化网络多连接的系统和方法

Publications (2)

Publication Number Publication Date
CN110750560A true CN110750560A (zh) 2020-02-04
CN110750560B CN110750560B (zh) 2023-02-03

Family

ID=69279814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911021143.XA Active CN110750560B (zh) 2019-10-25 2019-10-25 一种优化网络多连接的系统和方法

Country Status (1)

Country Link
CN (1) CN110750560B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112000688A (zh) * 2020-08-14 2020-11-27 杭州数云信息技术有限公司 一种基于通用查询语言的查询方法及查询系统
CN112256705A (zh) * 2020-11-13 2021-01-22 北京理工大学 一种Gaia系统中的多表连接优化方法
CN113010547A (zh) * 2021-05-06 2021-06-22 电子科技大学 一种基于图神经网络的数据库查询优化方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150149440A1 (en) * 2013-11-25 2015-05-28 International Business Machines Corporation Systems and methods for finding optimal query plans
CN105117461A (zh) * 2015-08-24 2015-12-02 昆明理工大学 一种基于改进的遗传算法的查询优化方法
CN106529678A (zh) * 2016-10-18 2017-03-22 南京航空航天大学 一种基于最大最小蚂蚁系统优化的slam数据关联方法
KR20190057524A (ko) * 2017-11-20 2019-05-29 전자부품연구원 분산 환경 데이터베이스 상에서의 융합형 개미집단 알고리즘 기반 질의 최적화 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150149440A1 (en) * 2013-11-25 2015-05-28 International Business Machines Corporation Systems and methods for finding optimal query plans
CN105117461A (zh) * 2015-08-24 2015-12-02 昆明理工大学 一种基于改进的遗传算法的查询优化方法
CN106529678A (zh) * 2016-10-18 2017-03-22 南京航空航天大学 一种基于最大最小蚂蚁系统优化的slam数据关联方法
KR20190057524A (ko) * 2017-11-20 2019-05-29 전자부품연구원 분산 환경 데이터베이스 상에서의 융합형 개미집단 알고리즘 기반 질의 최적화 방법

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
《数据库百科全书》编委会: "《数据库百科全书》", 30 September 2009, 上海交通大学出版社 *
HAMIDREZA KADKHODAEI等: "A combination method for join ordering problem in relational databases using genetic algorithm and ant colony", 《2011 IEEE INTERNATIONAL CONFERENCE ON GRANULAR COMPUTING》 *
MAHMOUD JAFARINEJAD等: "Multi-join query optimization in bucket-based encrypted databases using an enhanced ant colony optimization algorithm", 《DISTRIBUTED AND PARALLEL DATABASES》 *
WENJIAO BAN等人: "Query Optimization of Distributed Database Based on Parallel Genetic Algorithm and Max-Min Ant System", 《2015 8TH INTERNATIONAL SYMPOSIUM ON COMPUTATIONAL INTELLIGENCE AND DESIGN (ISCID)》 *
刘玉娟: "基于蚁群算法的数据库多连接查询优化问题研究", 《HTTPS://WWW.DOC88.COM/P-0357202950771.HTML?R=1》 *
崔峰峰: "基于蚁群算法的分布式数据库查询优化方法", 《计算机时代》 *
王守军: "基于改进蚁群算法的数据仓库查询优化研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112000688A (zh) * 2020-08-14 2020-11-27 杭州数云信息技术有限公司 一种基于通用查询语言的查询方法及查询系统
CN112256705A (zh) * 2020-11-13 2021-01-22 北京理工大学 一种Gaia系统中的多表连接优化方法
CN112256705B (zh) * 2020-11-13 2022-11-01 北京理工大学 一种Gaia系统中的多表连接优化方法
CN113010547A (zh) * 2021-05-06 2021-06-22 电子科技大学 一种基于图神经网络的数据库查询优化方法及系统
CN113010547B (zh) * 2021-05-06 2023-04-07 电子科技大学 一种基于图神经网络的数据库查询优化方法及系统

Also Published As

Publication number Publication date
CN110750560B (zh) 2023-02-03

Similar Documents

Publication Publication Date Title
CN110750560B (zh) 一种优化网络多连接的系统和方法
US10585887B2 (en) Multi-system query execution plan
US7644062B2 (en) Join factorization of union/union all queries
US8438152B2 (en) Techniques for bushy tree execution plans for snowstorm schema
US8150836B2 (en) System, method, and computer-readable medium for reducing row redistribution costs for parallel join operations
US20070219977A1 (en) Efficient search space analysis for join factorization
CN104885078A (zh) 用于大规模并行处理数据库集群中的两阶段查询优化的方法
CN107066551B (zh) 一种树状数据的行式和列式存储方法及系统
CN104281617A (zh) 一种基于领域知识的多层关联规则挖掘方法及系统
CN112100450A (zh) 一种图计算数据分割方法、终端设备及存储介质
CN113407532A (zh) Spark SQL多表连接优化方法、装置、计算机设备和存储介质
CN104504018A (zh) 基于浓密树和自顶向下的大数据实时查询优化方法
CN114691108A (zh) 一种神经网络加速器自动化代码生成方法
CN113836174B (zh) 基于强化学习dqn算法的异步sql连接查询优化方法
CN117708169A (zh) 数据库查询优化方法、装置、电子设备及存储介质
CN112835920B (zh) 基于混合存储模式的分布式sparql查询优化方法
CN117807091A (zh) 数据的关联方法及装置
CN117390063A (zh) 一种基于Listwise排序学习的数据库查询器优化方法
CN112148830A (zh) 一种基于最大区域网格的语义数据存储与检索的方法及装置
CN112256705B (zh) 一种Gaia系统中的多表连接优化方法
CN116304213A (zh) 基于图神经网络的rdf图数据库子图匹配查询优化方法
CN114168625A (zh) 一种语法树的优化方法、装置
CN111369052A (zh) 简化路网ksp优化算法
CN108108472B (zh) 数据处理方法以及服务器
CN114661956A (zh) 一种基于Pregel的时态T-SPARQL查询和推理方法

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