CN116501743A - 联表代价生成、重排方法和数据处理方法及装置、系统 - Google Patents
联表代价生成、重排方法和数据处理方法及装置、系统 Download PDFInfo
- Publication number
- CN116501743A CN116501743A CN202310744294.8A CN202310744294A CN116501743A CN 116501743 A CN116501743 A CN 116501743A CN 202310744294 A CN202310744294 A CN 202310744294A CN 116501743 A CN116501743 A CN 116501743A
- Authority
- CN
- China
- Prior art keywords
- database
- data
- database table
- transmission time
- list
- 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 101
- 238000003672 processing method Methods 0.000 title claims description 10
- 230000005540 biological transmission Effects 0.000 claims abstract description 253
- 238000012545 processing Methods 0.000 claims abstract description 67
- 238000012546 transfer Methods 0.000 claims description 44
- 238000004422 calculation algorithm Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008707 rearrangement Effects 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 20
- 238000012804 iterative process Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000005304 joining Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 description 1
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 description 1
- YTAHJIFKAKIKAV-XNMGPUDCSA-N [(1R)-3-morpholin-4-yl-1-phenylpropyl] N-[(3S)-2-oxo-5-phenyl-1,3-dihydro-1,4-benzodiazepin-3-yl]carbamate Chemical compound O=C1[C@H](N=C(C2=C(N1)C=CC=C2)C1=CC=CC=C1)NC(O[C@H](CCN1CCOCC1)C1=CC=CC=C1)=O YTAHJIFKAKIKAV-XNMGPUDCSA-N 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提出一种联表代价生成、重排方法和数据处理方法及装置、系统,涉及数据库技术领域。本公开的一种数据库的联表代价生成方法,包括:获取数据中心之间的网络带宽信息;确定与数据处理任务相关的数据库表,生成数据库表集合;规划数据库表集合中数据库表的联表顺序,并根据网络带宽信息确定联表顺序对应的传输时间代价,以便根据传输时间代价确定联表路径。
Description
技术领域
本公开涉及数据库技术领域,特别是一种联表代价生成、重排方法和数据处理方法及装置、系统。
背景技术
进入数字经济时代,以大数据,算力网络,分布式云计算为核心的数字技术支撑着各行各业的发展和智慧化转型,全社会对算力的需求与日俱增。随着数据中心的布局演化趋势和数据中心的业务类型不同的影响,数据中心的选址和功能呈现东部数据中心承接实时性数据业务、中西部数据中心负责非实时性数据业务需求的趋势。数据中心内数据根据其业务特性具有两个特点,热数据更靠近生产和使用的地区,冷数据会根据数据存储的价格而选择相应的数据中心。这样做既可以方便数据的业务使用,也可以平衡数据存储和计算的代价。但是现有数据中心,存在各个地区的算力分布不均、各个数据中心能耗不同、数据中心之间的网络带宽实时变化性强的特点。
目前数据业务大多是以数据库与数据计算引擎为工具,使用 SQL(StructuredQuery Language,结构化查询语言)来获取、过滤,与聚合所需数据。相关技术中,基于单一数据中心的优化规则加速。根据可用CPU(Central Processing Unit,中央处理器)核数,可用内存的评估联表顺序的方法是根据中心化数据计算引擎设计的,数据与计算引擎位于同一数据中心,网络带宽不是瓶颈,可用CPU核数和可用内存是主要的考量因素。
发明内容
本公开的一个目的在于提高数据库联表计算的执行效率。
根据本公开的一些实施例的一个方面,提出一种数据库的联表代价生成方法,包括:获取数据中心之间的网络带宽信息;确定与数据处理任务相关的数据库表,生成数据库表集合;规划数据库表集合中数据库表的联表顺序,并根据网络带宽信息确定联表顺序对应的传输时间代价,以便根据传输时间代价确定联表路径。
在一些实施例中,规划数据库表集合中数据库表的联表顺序包括:基于自顶向下的动态规划算法,确定规划数据库表集合中数据库表的联表顺序,生成数据库联表计划树。
在一些实施例中,数据库联表计划树符合以下至少一项:数据库联表计划树的叶子节点为数据库表;数据库联表计划树为二叉树;或数据库联表计划树包括左深树,右深树或部分稠密树中的至少一种。
在一些实施例中,基于自顶向下的动态规划算法,确定规划数据库表集合中数据库表的联表顺序包括:对数据库表集合执行迭代的预定操作,直至完成对数据库表集合中所有数据库表的处理,其中,预定操作中包括在数据库表集合中确定第一数据库表,和在数据库表中删除第一数据库表,每次预定操作中确定的第一数据库表为下一次预定操作的数据传输目的地址;根据每次预定操作中确定的第一数据库表确定联表顺序。
在一些实施例中,根据网络带宽信息确定联表顺序对应的传输时间代价包括:根据网络带宽信息,在每次预定操作中确定第一数据库表到数据传输目的地址的传输时间信息;根据联表顺序和每次迭代中确定的传输时间信息,确定传输时间代价。
在一些实施例中,预定操作包括:在数据库表集合中选择第一数据库表;通过删除第一数据库表更新数据库表集合;根据数据库表集合中数据库表的统计信息,和第一数据库表到当前的数据传输目的地址的网络带宽信息,确定传输时间信息,并结束当前预定操作。
在一些实施例中,预定操作还包括:判断第一数据库表与数据传输目的地址是否位于同一个数据中心;若第一数据库表与数据传输目的地址不位于同一个数据中心,则执行确定传输时间信息的操作;若第一数据库表与数据传输目的地址位于同一个数据中心,则结束预定操作。
在一些实施例中,生成数据库联表计划树包括:基于预定数据结构解析联表顺序,生成联表数据,其中,预定数据结构包括列表,队列,栈,字典或查找表中的一项或多项;根据预定数据结构与数据库联表计划树的关联关系,将联表数据转化成数据库联表计划树。
在一些实施例中,规划数据库表集合中数据库表的联表顺序,并根据网络带宽信息确定联表顺序对应的传输时间代价包括:在数据库表集合中选择一个数据库表作为数据传输终点,初始化传输时间代价为预定初始值,初始化数据传输目的地址为数据传输终点,通过删除数据传输终点对应的数据库表更新数据库表集合;判断数据库表集合中数据库表的数量是否等于2;
若数据库表的数量大于2,则
在数据库表集合中确定目标数据库表;根据目标数据库表与数据传输目的地址之间的传输时间信息更新传输时间代价,更新数据传输目的地址,并返回执行判断数据库表集合中数据库表的数量是否等于2的步骤;
若数据库表的数量等于2,则
在数据库表集合中确定目标数据库表;根据目标数据库表与数据传输目的地址之间的传输时间信息更新传输时间代价,并结束联表顺序的规划操作。
在一些实施例中,根据目标数据库表与数据传输目的地址之间的传输时间信息更新传输时间代价,更新数据传输目的地址包括:在目标数据库表与数据传输目的地址位于不同数据中心的情况下,根据数据库表数据结构的基数,以及目标数据库表与数据传输目的地址之间的网络带宽信息,确定目标数据库表与数据传输目的地址之间的传输时间信息;通过在传输时间代价的基础上增加传输时间信息更新传输时间代价;将数据传输目的地址更新为目标数据库表。
在一些实施例中,根据目标数据库表与数据传输目的地址之间的传输时间信息更新传输时间代价,更新数据传输目的地址还包括:在目标数据库表与数据传输目的地址位于相同数据中心的情况下,将数据传输目的地址更新为目标数据库表;在数据库表集合中重新选择目标数据库表,在目标数据库表与数据传输目的地址位于相同数据中心的情况下,返回执行将数据传输目的地址更新为目标数据库表,在数据库表集合中重新选择目标数据库表的步骤;在目标数据库表与数据传输目的地址位于不同数据中心的情况下,确定目标数据库表与数据传输目的地址之间的传输时间信息;通过在传输时间代价的基础上增加传输时间信息更新传输时间代价;再次将数据传输目的地址更新为目标数据库表。
在一些实施例中,根据目标数据库表与数据传输目的地址之间的传输时间信息更新传输时间代价,并结束联表顺序的规划操作包括以下至少一项:在目标数据库表与数据传输目的地址位于不同数据中心的情况下,根据数据库表数据结构的基数,以及目标数据库表与数据传输目的地址之间的网络带宽信息,确定目标数据库表与数据传输目的地址之间的传输时间信息,通过在传输时间代价的基础上增加传输时间信息更新传输时间代价,结束联表顺序的规划操作;或在目标数据库表与数据传输目的地址位于相同数据中心的情况下,结束联表顺序的规划操作。
根据本公开的一些实施例的一个方面,提出一种数据库的联表重排方法,包括:获取数据处理任务;根据上文中提到的任意一种数据库的联表代价生成方法,规划联表顺序,并确定传输时间代价;根据传输时间代价确定联表路径。
在一些实施例中,该方法还包括:根据数据处理任务相关的数据库表的统计信息,或数据库集群可用的CPU和内存信息中的至少一种,确定第一路径代价信息;根据传输时间代价确定联表路径包括:根据传输时间代价,结合第一路径代价信息确定目标联表顺序,以减少目标联表顺序的综合路径代价。
根据本公开的一些实施例的一个方面,提出一种数据处理方法,包括:根据上文中提到的任意一种数据库的联表重排方法,确定目标联表顺序;基于目标联表顺序,针对数据处理任务执行联表数据处理。
根据本公开的一些实施例的一个方面,提出一种数据库联表代价生成装置,包括:信息获取单元,被配置为获取数据中心之间的网络带宽信息;集合生成单元,被配置为确定与数据处理任务相关的数据库表,生成数据库表集合;传输时间代价确定单元,被配置为规划数据库表集合中数据库表的联表顺序,并根据网络带宽信息确定联表顺序对应的传输时间代价,以便根据传输时间代价确定联表路径。
根据本公开的一些实施例的一个方面,提出一种数据库联表重排装置,包括:任务获取单元,被配置为获取数据处理任务;代价生成单元,被配置为通过执行上文中任意一种数据库的联表代价生成方法,规划联表顺序并确定传输时间代价;和路径确定单元,被配置为根据传输时间代价确定联表路径。
根据本公开的一些实施例的一个方面,提出一种数据处理系统,包括:联表重排装置,被配置为通过执行上文中任意一种数据库的联表重排方法确定联表路径;处理装置,被配置为基于目标联表顺序,针对数据处理任务执行联表数据处理。
根据本公开的一些实施例的一个方面,提出一种数据处理装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器的指令执行上文中任意一种方法。
根据本公开的一些实施例的一个方面,提出一种非瞬时性计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上文中任意一种方法的步骤。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
图1为本公开的数据库的联表代价生成方法的一些实施例的流程图。
图2A为本公开的数据库的联表代价生成方法中动态规划操作的一些实施例的流程图。
图2B为本公开的数据库的联表代价生成方法中预定操作的一些实施例的流程图。
图2C为本公开的数据库的联表代价生成方法中动态规划操作的一些实施例的示意图。
图3A为本公开的数据库的联表代价生成方法中动态规划操作的另一些实施例的流程图。
图3B为本公开的数据库的联表代价生成方法中动态规划操作的又一些实施例的流程图。
图3C为本公开的数据库的联表代价生成方法中动态规划操作的再一些实施例的流程图。
图4为本公开的数据库的联表代价生成方法中生成数据库联表计划树的一些实施例的示意图。
图5A为本公开的数据库的联表重排方法的一些实施例的流程图。
图5B为本公开的数据库的联表重排方法的另一些实施例的流程图。
图6A为本公开的数据库的数据处理方法的一些实施例的流程图。
图6B为本公开的数据库的数据处理方法的另一些实施例的示意图。
图7为本公开的数据库联表代价生成装置的一些实施例的示意图。
图8为本公开的数据库联表重排装置的一些实施例的示意图。
图9为本公开的数据处理系统的一些实施例的示意图。
图10为本公开的数据处理装置的一些实施例的示意图。
图11为本公开的数据处理装置的一些实施例的示意图。
具体实施方式
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
发明人发现,随着去中心化的发展,跨地域云计算的数据联表查询面对的是更加复杂的网络情况,在运行大数据量的计算任务时,相较于可用CPU核数和可用内存,网络带宽是更昂贵更稀缺的资源。但是现在的数据计算工具和调度程序并没有根据分布式进行优化,导致在计算任务执行中,在不同数据中心之间移动数据会导致大量的时间浪费,数据的计算与使用无法在分布式环境下达到最优的效率,同时数据中心的算力无法到达高效的利用。
针对上述问题,本公开提出一种联表代价生成、重排方法和数据处理方法及装置、系统,以适应新的场景的需求,实现加速数据库联表计算的执行效率,并提高算力的利用效率。
本公开的数据库的联表代价生成方法的一些实施例的流程图如图1所示。
在步骤S11中,获取数据中心之间的网络带宽信息。在一些实施例中,实时采集各个数据中心之间的网络带宽信息。在一些实施例中,可以通过实施的网络监测获取网络带宽信息,或以预定频率采集和更新网络带宽信息,以确保网络带宽信息的数据时效性,提高后续生成的代价信息的准确度。
在步骤S12中,确定与数据处理任务相关的数据库表,生成数据库表集合。数据库表集合中的数据库表中的每两个表可以位于同一个数据中心,或位于不同数据中心。在一些实施例中,可以将数据库表集合通过预定的数据结构存储,以便后续解析和使用。在一些实施例中,预定数据结构包括列表,队列,栈,字典或查找表中的一项或多项。
在一些实施例中,可以在主进程收到计算任务后,启动计算线程,执行步骤S11和S12中收集任务相关的网络带宽信息和数据库统计信息的操作。步骤S11和S12没有先后顺序,可以并行执行。
在步骤S13中,规划数据库表集合中数据库表的联表顺序,并根据网络带宽信息确定联表顺序对应的传输时间代价,以便根据传输时间代价确定联表路径。
在一些实施例中,基于自顶向下的动态规划算法,确定规划数据库表集合中数据库表的联表顺序。上述自顶而下的动态规划算法,可以理解为从数据传递的目的地址出发,沿着逆数据传递方向的顺序确定联表顺序。在一些实施例中,动态规划算法的每一次迭代中,将生成的信息缓存在内存中,待所有计算完成后得到完整的联表顺序和传输时间代价。
在一些实施例中,在得到联表顺序后,可以基于联表顺序生成数据库联表计划树。在一些实施例中,数据库联表计划树符合以下至少一项:数据库联表计划树的叶子节点为数据库表;数据库联表计划树为二叉树;或数据库联表计划树包括左深树,右深树或部分稠密树中的至少一项。通过这样的方法,能够方便数据的后续使用。
在一些实施例中,基于联表顺序生成数据库联表计划树包括:基于预定数据结构解析联表顺序,生成联表数据,其中,预定数据结构包括列表,队列,栈,字典或查找表中的一项或多项;根据预定数据结构与数据库联表计划树的关联关系,将联表数据转化成数据库联表计划树。通过这样的方法,能够提高基于联表顺序生成计划树的准确度和效率,提高运行的可靠性。
基于上文所示实施例中的方法,能够根据任务相关的数据表以及数据中心之间的网络带宽信息,更新传输时间代价,从而便于在后续确定联表路径时将数据中心之间的传输时延纳入考虑范围,以便于提高数据库联表任务的执行效率。
在一些实施例中,上文步骤S13中,动态规划操作的一些实施例的流程图如图2A所示。
在步骤231中,对数据库表集合执行迭代的预定操作。在一些实施例中,预定操作中包括但不限于在数据库表集合中确定第一数据库表,和在数据库表中删除第一数据库表,其中,迭代的每次预定操作中确定的第一数据库表为下一次预定操作的数据传输目的地址。每次执行预定操作后,数据库表集合中数据库表的数量会减少,进而执行步骤232。
在一些实施例中,预定操作还包括,根据网络带宽信息,确定第一数据库表到数据传输目的地址的传输时间信息,并根据联表顺序和每次迭代中确定的传输时间信息,确定传输时间代价。通过这样的方法,能够为后续的联表路径确定提供数据基础。
在步骤232中,判断迭代是否完成。若迭代完成,则执行步骤233;若迭代未完成,则执行步骤231。在一些实施例中,可以通过确定数据库表集合中数据库表数量的方式确定迭代是否完成。在一些实施例中,若数据库表集合中剩余数据库表的数量为1,则无需执行下次预定操作,执行步骤233。
在步骤233中,根据每次迭代中确定的第一数据库表确定联表顺序。在一些实施例中,由于每次迭代中确定的第一数据库表为下一次迭代的数据传输目的地址,则可以确定联表顺序为确定的数据传输目的地址顺序的逆序。在一些实施例中,在每次预定操作中,基于预定格式进行数据存储,进而在步骤233中按照迭代顺序读取每次迭代中存储的数据,生成联表顺序。
通过上文所示实施例中的方法,能够通过逐层迭代的操作,规划完整的联表顺序,避免遗漏,提高可靠度。
在一些实施例中,逐层迭代的操作可以如图2C所示。
以数据库表集合包含4个数据库表(ABCD)为例,假设先确定最终的数据会传递至表C所处的数据中心,如图2C的左下方矩形框中所示,示出了在迭代过程的第一次预定操作中,将数据库表集合从空间为4缩小至空间为3时的各种情况,如左下方矩形框的左侧三个框中示出的:ABD表的数据已传递至同一个数据中心(包括传递至A处于的数据中心、传递至B处于的数据中心、传递至D处于的数据中心三种情况);左下方矩形框的上方框示出的:ABC的数据已位于C所属的数据中心但D的数据仍处于原数据中心的情况;左下方矩形框的下方框示出的:BCD的数据已位于C所属的数据中心但A的数据仍处于原数据中心的情况;以及左下方矩形框的右方框示出的:ACD的数据已位于C所属的数据中心但B的数据仍处于原数据中心的情况。
以左下方矩形框的上方框示出的(ABC的数据已位于C所属的数据中心但D的数据仍处于原数据中心)的情况为例,迭代过程的下一次预定操作如曲线箭头引出的框所示,示出了在迭代过程的第二次预定操作中,将数据库表集合从空间为3缩小至空间为2时的各种情况,如该部分的左侧所示的:AB的数据均位于A所属的数据中心(在后续的数据库表集合从空间为2缩小至空间为1时,B的数据传递至A所属的数据中心),AB的数据均位于B所属的数据中心(在后续的数据库表集合从空间为2缩小至空间为1时,A的数据传递至B所属的数据中心);上方示出的:BC的数据均位于C所属的数据中心(后续的数据库表集合从空间为2缩小至空间为1时,B的数据传递至C所属的数据中心),但A的数据仍位于原数据中心;下方示出的:AC的数据均位于C所属的数据中心(后续的数据库表集合从空间为2缩小至空间为1时,A的数据传递至C所属的数据中心),但B的数据仍位于原数据中心。
通过逐个减少数据库表集合中数据表数量的方式,逐层迭代分析联表顺序,并确定传输时间代价,确保分析无遗漏,提高了生成的传输时间代价的可靠度,也便于提高后续确定的联表路径的数据传输效率。
在一些实施例中,上文步骤231中的预定操作可以如图2B中所示。
在步骤241中,在数据库表集合中选择第一数据库表。
在步骤242中,通过在数据库表集合中删除第一数据库表更新数据库表集合。
在步骤243中,判断第一数据库表与数据传输目的地址是否位于同一个数据中心。若位于同一个数据中心,则由于位于相同数据中心的数据库表在联表查询中,网络带宽对于数据传递的影响可以忽略,执行步骤245;由于位于不相同数据中心的数据库表在联表查询中,需要数据在不同数据中心间传递,网络带宽是数据传递的重要影响因素,因此执行步骤244。
在步骤244中,根据数据库表集合中数据库表的统计信息,和第一数据库表到当前的数据传输目的地址的网络带宽信息,确定传输时间信息。在一些实施例中,传输时间信息=数据库表数据结构的基数/第一数据库表到数据传输目的地址的网络带宽。
在一些实施例中,初始的传输时间代价为初始值,如0,每次计算出传输时间信息后,可以将传输时间信息累加到传输时间代价中,确定当前预定操作中的第一数据库表到最终的数据传输目的地址的累计代价,便于后续使用。
在一些实施例中,当前预定操作过程中生成或相关的数据存储,生成或相关的数据包括第一数据库表的标识,传输时间信息或传输时间代价中的至少一种,还可以包括基于前序的迭代过程产生的前缀或后缀数据。
在步骤245中,结束当前预定操作。在一些实施例中,触发执行步骤232。
通过上文所示实施例中的方法,在迭代过程的每次预定操作中,能够确定数据传输顺序,以及基于该顺序,从当前确定的数据传输目的地址到最终的地址之间,由跨数据中心传输带来的传输时间代价,便于后续汇总和使用。
在一些实施例中,由于迭代过程的每次操作情况有所差异,预定操作的每次执行过程会有所不同。在一些实施例中,本公开的数据库的联表代价生成方法中动态规划操作的另一些实施例的流程图如图3A所示。考虑到在跨数据中心的联表查询中,若设计的数据表数量小于等于2,则联表路径是确定的,因此联表代价的分析的价值不大,因此,本公开的实施例中,初始的数据库表集合中数据库表数量大于2。
在步骤331中,在数据库表集合中选择一个数据库表作为数据传输终点,以该数据传输终点为顶执行自顶向下的动态规划。在一些实施例中,数据传输终点为随机选择。
在步骤332中,初始化传输时间代价C为预定初始值,初始化数据传输目的地址D为数据传输终点。在一些实施例中,预定初始值可以为0。
在步骤333中,通过删除数据传输终点对应的数据库表更新数据库表集合。在一些实施例中,将数据传输终点和传输时间代价按照预定规则存储。
在步骤334中,判断数据库表集合中数据库表的数量是否等于2。若数据库表集合中数据库表的数量大于2,则执行步骤335;若数据库表的数量等于2,则执行步骤336。由于数据库表的数量等于2的情况下会执行结束联表顺序的规划操作,因此不存在数据库表的数量等于1的情况。
在步骤335中,在数据库表集合中确定目标数据库表T,在一些实施例中,可以随机确定一个数据库表作为目标数据库表T。进而根据目标数据库表T与数据传输目的地址D之间的传输时间信息更新传输时间代价,更新数据传输目的地址D,并返回执行步骤334。
在一些实施例中,根据目标数据库表与数据传输目的地址之间的传输时间信息更新传输时间代价,更新数据传输目的地址的具体过程可以如图3B所示。
在步骤351中,判断目标数据库表T与数据传输目的地址D是否位于相同数据中心。若位于相同数据中心,则执行步骤352;若位于不同数据中心,则执行步骤356。
在步骤352中,将数据传输目的地址D更新为目标数据库表T。在一些实施例中,存储数据传输目的地址的标识,传输时间信息或传输时间代价中的至少一种,还可以包括基于前序的迭代过程产生的前缀或后缀数据。由于更新前后的D位于相同数据中心,因此传输时间代价不发生变化。
在步骤353中,在数据库表集合中重新选择目标数据库表T。
在一些实施例中,在重新选择目标数据库表T后,返回执行步骤351,判断更新后的目标数据库表T与数据传输目的地址D是否位于相同数据中心。若不位于相同数据中心,则执行确定目标数据库表与数据传输目的地址之间的传输时间信息的操作。
在一些实施例中,根据数据库表数据结构的基数,以及目标数据库表与数据传输目的地址之间的网络带宽信息,确定目标数据库表与数据传输目的地址之间的传输时间信息。在一些实施例中,传输时间信息t=数据库表数据结构的基数/T到D的数据中心之间的网络带宽。
在步骤354中,通过在传输时间代价的基础上增加传输时间信息更新传输时间代价,即更新C为C+t。
在步骤355中,再次将数据传输目的地址D更新为目标数据库表T。
在一些实施例中,将生成或相关的数据存储,生成或相关的数据包括数据传输目的地址的标识,传输时间信息或传输时间代价中的至少一种,还可以包括基于前序的迭代过程产生的前缀或后缀数据。
在步骤356中,确定当前的目标数据库表T与数据传输目的地址D之间的传输时间信息。在一些实施例中,根据数据库表数据结构的基数,以及目标数据库表T与数据传输目的地址D之间的网络带宽信息,确定目标数据库表与数据传输目的地址之间的传输时间信息。在一些实施例中,传输时间信息t=数据库表数据结构的基数/T到D的数据中心之间的网络带宽。
在步骤357中,通过在传输时间代价的基础上增加传输时间信息更新传输时间代价,即更新C为C+t。
在步骤358中,将数据传输目的地址D更新为目标数据库表T。
在一些实施例中,将生成或相关的数据存储,生成或相关的数据包括数据传输目的地址的标识,传输时间信息或传输时间代价中的至少一种,还可以包括基于前序的迭代过程产生的前缀或后缀数据。
在上述步骤334中,若数据库表的数量等于2,则执行步骤336。
在步骤336中,在数据库表集合中确定目标数据库表,在一些实施例中,可以随机确定一个数据库表作为目标数据库表。进而根据目标数据库表与数据传输目的地址之间的传输时间信息更新传输时间代价,并结束联表顺序的规划操作。
在一些实施例中,根据目标数据库表与数据传输目的地址之间的传输时间信息更新传输时间代价的具体过程可以如图3C所示。
在步骤361中,判断目标数据库表与数据传输目的地址是否位于相同数据中心。若位于相同数据中心,则在目标数据库表与数据传输目的地址之间无需跨数据中心的数据传输,且后续的联表顺序确定,结束联表顺序的规划操作;若位于不同数据中心,则执行步骤362。
在步骤362中,确定当前的目标数据库表T与数据传输目的地址D之间的传输时间信息。在一些实施例中,根据数据库表数据结构的基数,以及目标数据库表T与数据传输目的地址D之间的网络带宽信息,确定目标数据库表与数据传输目的地址之间的传输时间信息。在一些实施例中,传输时间信息t=数据库表数据结构的基数/T到D的数据中心之间的网络带宽。
在步骤363中,通过在传输时间代价的基础上增加传输时间信息更新传输时间代价,即更新C为C+t。结束联表顺序的规划操作。
在一些实施例中,将生成或相关的数据存储,生成或相关的数据包括数据传输目的地址的标识,传输时间信息或传输时间代价中的至少一种,还可以包括基于前序的迭代过程产生的前缀或后缀数据。
通过上文所示实施例中的方法,将数据在不同数据中心之间的移动时间作为计算目标,在跨地域算力网络环境下,可以得到更为高效的执行计划,使用自顶向下的动态规划算法,减少了重复计算,避免在树状结构中,由于底层的数据库表变化导致的整个执行计划的搜索空间放大问题,提高了计算效率。
在一些实施例中,当收到SQL计算任务后,开始计算任务,启动计算线程,执行以下步骤a-t中的操作。
a)根据 SQL 中涉及到的数据库表所在的数据中心,获取相应的“网络带宽信息”。
b)将 SQL 中涉及到的数据库表提取出来,作为“数据库表集合",保存在预定的数据结构中。
c)设置“前目的地数据库表”为空,数据传输时间 = 0。
d)遍历“数据库表集合”,选择一个数据库表作为“新目的地数据库表”。
e)判断“前目的地数据库表”是否为空:如果为空,运行步骤 f;如果不为空,运行步骤 g。
f)设置“新的数据传输时间” = 0,运行步骤 h。
g)从“网络带宽信息”中找到“新目的地数据库表”到“前目的地数据库表”的网络带宽;设置“新的数据传输时间” = “数据库表数据结构”的基数 / “新目的地数据库表”到“前目的地数据库表”的网络带宽,运行步骤 h。
h)数据传输时间 = 数据传输时间 + 新的数据传输时间;将“数据传输时间”,“前缀”,“后缀”,“新目的地数据库表”,“数据库表集合”传到步骤 i。另外,将前目的地数据库表更新为新目的地数据库表,在数据库表集合中删除新目的地数据库表。
i)判断“数据库表集合”数量是否为2:如果为2,运行步骤 j;如果不为2,运行步骤o。
j)遍历“数据库表集合”,选出一个数据库表用作判断。
k)判断“选出的数据库表” 所处的数据中心是否等于是否是“新目的地数据库表”所处的数据中心是否等于。如果是,则当前计算进程结束;如果不是,转到步骤 l。
l)将“数据库表数据结构”中另一个表作为“新目的地数据库表”。
m)从“网络带宽信息”中找到“选出的数据库表”到“新目的地数据库表”的网络带宽;设置“新的数据传输时间” = “数据库表集合”的基数 / “选出的数据库表”到“新目的地数据库表”的网络带宽。
n)使用前缀,后缀,和标识符表明联表的树形结构和数据的移动方向,作为键值;“新的数据传输时间”作为数据值,存储起来。结束子计算。
o)遍历“数据库表集合”,选出一个数据库表。
p)生成不包含这个数据库表的新的“数据库表集合”。
q)“选出的数据库表”所处的数据中心是否等于“新目的地数据库表”所处的数据中心。如果是,跳转到步骤 r,如果不是跳转到步骤 s。
r)编辑前缀和后缀,使用前缀,后缀,和标识符表明联表的树形结构和数据的移动方向;将传输时间,前缀,后缀,目的地表,和新的数据库表集合作为参数,传给步骤 d,跳转到步骤 d。
s)从“网络带宽信息”中找到“选出的数据库表”到“新目的地数据库表”的网络带宽;设置“新的数据传输时间” = “数据库表集合”的基数 / “选出的数据库表”到“新目的地数据库表”的网络带宽。
t)编辑前缀和后缀,使用前缀,后缀,和标识符表明联表的树形结构和数据的移动方向;将传输时间,前缀,后缀,“新目的地数据库表”,和新的数据库表集合作为参数,传给步骤i,跳转到步骤i。
通过上述进程中的方式,能够通过自顶向下的动态规划算法,减少了重复计算,避免在树状结构中,由于底层的数据库表变化导致的整个执行计划的搜索空间放大问题,降低计算量,提高计算效率。在计算过程中实时存储数据,便于后续处理。
在一些实施例中,当生成联表顺序及传输时间代价后,基于计算过程中存储的数据,生成联表计划树。在一些实施例中,基于预定数据结构解析联表顺序,生成联表数据,其中,预定数据结构包括列表,队列,栈,字典或查找表中的一项或多项;根据预定数据结构与数据库联表计划树的关联关系,将联表数据转化成数据库联表计划树。
以预定结构为栈为例,本公开的数据库的联表代价生成方法中生成数据库联表计划树的一些实施例的示意图如图4所示。该实施例中的数据仅为示例,不构成对本申请的不当限制。
在线程计算过程中生成的联表顺序信息为TCTATB#TBTD#TD#TD,其中,#为分隔迭代过程的标识符。通过一次解析,将其解析为#TBTD#TD#TD。具体过程如下方栈中所示,将TCTATB按照顺序压入栈1,从栈1中将后入的TATB出栈,写入栈2。进一步解析,将#TBTD#TD#TD解析为#TD#TD。具体过程如下方栈中所示,将TBTD中位于第一位的TB为迭代过程的上一次操作的终点,因此仅将TD压入栈1,随即从栈1中将后入的TD出栈,结合栈2中已入栈的信息,写入栈2。由于TD的入栈位于TATB之后,因此结合栈2中已入栈的信息,拼接在右侧形成新的入栈信息。进一步解析, TD#TD#TD中未发生数据在数据中心间的移动,栈1、2无需修改。最终,将栈1中最先压入的TC出栈。由于TC的入栈位于TATB之前,因此结合栈2中已入栈的信息,拼接在左侧形成新的入栈信息。
基于栈2中的信息可以同步或异步的生成图4中所示的计划树。例如,在栈2中仅入栈了TATB的信息时,绘制以TATB为叶节点的计划树;当入栈了TATBTD的信息时,在以TATB为叶节点的计划树中增加叶节点TD。由于TD位于TATB的右侧,将TD作为右侧的叶节点写入计划树。当入栈了TCTATBTD的信息时,在以TATBTD为叶节点的计划树中增加叶节点TC。由于TC位于TATBTD的左侧,将TC作为左侧的叶节点写入计划树。
通过上文所示的方法,生成了计划树。在该计划树中数据的传输方向为从左到右。
上文中的数据结构和计划树的生成方式仅为示例,不构成对本申请的不当限制。
在一些实施例中,当确定联表顺序和传输时间代价后,本公开的数据库的联表重排方法的一些实施例的流程图如图5A所示。
在步骤S51中,获取数据处理任务。
在步骤S52中,基于上文中提到的任意一种数据库的联表代价生成方法,规划联表顺序,并确定传输时间代价。
在步骤S53中,根据传输时间代价确定联表路径。在一些实施例中,可以通过确定最小的传输时间代价的方式确定对应的路径,作为联表路径。在具体的执行数据处理任务时,基于联表路径进行跨数据中心的数据传输,从而实现分布式的数据处理。
通过上文所示实施例中的方式,能够根据任务相关的数据表以及数据中心之间的网络带宽信息,更新传输时间代价,在确定联表路径时将数据中心之间的传输时延纳入考虑范围,以便于提高数据库联表任务的执行效率。
在一些实施例中,在确定联表路径时,除了考虑到传输时间代价,还可以参考数据库集群的CPU或内存信息中的至少一种。根据数据处理任务相关的数据库表的统计信息,或数据库集群可用的CPU和内存信息中的至少一种,确定第一路径代价信息,进而根据传输时间代价,结合第一路径代价信息确定目标联表顺序,以减少目标联表顺序的综合路径代价。在一些实施例中,可以设置不同代价种类的权重,生成综合路径代价,以最小化综合路径代价为目标,确定联表路径,从而在考虑到跨数据中心的网络带宽的同时,也能兼顾数据中心本身性能带来的影响,进一步提高数据处理任务的处理效率。
图5B为本公开的数据库的联表重排方法的另一些实施例的流程图。
在步骤511-515中,启动上文中任意一种数据库的联表代价生成方法的计算线程,确定传输路径代价,作为联表重排路径代价。
另外,在步骤515-517中,结合与数据处理任务相关联的数据库表的统计信息,以及集群的可用CPU和内存信息,计算第一路径代价信息(图中所示的数据JOIN代价)。在一些实施例中,确定第一路径代价信息的方式可以参考相关技术。
在步骤518中,综合联表重排路径代价和第一路径代价信息,选择代价最小的联表路径。
基于该实施例中的方法,能够在根据集群的可用CPU和内存信息确定联表路径的基础上,进一步考虑传输路径代价,将数据在不同数据中心之间的移动时间作为计算目标,在跨地域算力网络环境下,可以得到更为高效的执行计划。
在一些实施例中,当得到联表路径后,可以基于联表路径处理上述步骤S51中获得的数据处理任务。本公开的数据库的数据处理方法的一些实施例的流程图如图6A中所示。
在步骤S61中,根据上文中任意一种联表重排方法确定目标联表顺序。
在步骤S62中,基于目标联表顺序,针对数据处理任务执行联表数据处理。
本公开的数据库的数据处理方法中,数据传递方向的一些实施例的示意图如图6B中所示。图6B的上半部分分别表示在N个数据库表情况下(N为大于等于3的整数),生成左深树和右深树情况下的数据移动方向,其中单表中数据库表数量为1,多表联表操作结果中数据库表数量为N-1。当执行数据处理任务时,数据按照从左向右的方向,多表联表传递到单表,或从单表传递到多表联表。图6B的下半部分可以看做对上半部分中多表联表的部分展开,分别表示在展开至3个数据库表情况下,生成左深树和右深树情况下的数据移动方向。当执行数据处理任务时,数据按照从左向右的方向,多表联表传递到单表,或从单表传递到多表联表。当完成数据传递后,能够针对数据处理语句执行处理,如数据查询操作。
通过上文所示实施例中的方式,能够根据任务相关的数据表以及数据中心之间的网络带宽信息,更新传输时间代价,在确定联表路径时将数据中心之间的传输时延纳入考虑范围,提高数据库联表任务的执行效率。
本公开的数据库联表代价生成装置70的一些实施例的示意图如图7所示。
信息获取单元701能够获取数据中心之间的网络带宽信息。在一些实施例中,实时采集各个数据中心之间的网络带宽信息。在一些实施例中,可以通过实施的网络监测获取网络带宽信息,或以预定频率采集和更新网络带宽信息,以确保网络带宽信息的数据时效性,提高后续生成的代价信息的准确度。
集合生成单元702能够确定与数据处理任务相关的数据库表,生成数据库表集合。
传输时间代价确定单元703能够规划数据库表集合中数据库表的联表顺序,并根据网络带宽信息确定联表顺序对应的传输时间代价,以便根据传输时间代价确定联表路径。在一些实施例中,基于自顶向下的动态规划算法,确定规划数据库表集合中数据库表的联表顺序。
这样的数据库联表代价生成装置能够根据任务相关的数据表以及数据中心之间的网络带宽信息,更新传输时间代价,从而便于在后续确定联表路径时将数据中心之间的传输时延纳入考虑范围,以便于提高数据库联表任务的执行效率。
本公开的数据库联表重排装置80的一些实施例的示意图如图8所示。
任务获取单元801能够获取数据处理任务,如获取SQL语句。
代价生成单元802能够基于上文中提到的任意一种数据库的联表代价生成方法,规划联表顺序,并确定传输时间代价。在一些实施例中,代价生成单元802可以为上文中的数据库联表代价生成装置。
路径确定单元803能够根据传输时间代价确定联表路径。
这样的数据库联表重排装置能够根据任务相关的数据表以及数据中心之间的网络带宽信息,更新传输时间代价,在确定联表路径时将数据中心之间的传输时延纳入考虑范围,以便于提高数据库联表任务的执行效率。
在一些实施例中,代价生成单元802还能够根据数据处理任务相关的数据库表的统计信息,或数据库集群可用的CPU和内存信息中的至少一种,确定第一路径代价信息。路径确定单元803根据传输时间代价,结合第一路径代价信息确定目标联表顺序,以减少目标联表顺序的综合路径代价,从而在考虑到跨数据中心的网络带宽的同时,也能兼顾数据中心本身性能带来的影响,进一步提高数据处理任务的处理效率。
本公开的数据处理系统90的一些实施例的示意图如图9所示。
联表重排装置901能够根据上文中任意一种联表重排方法确定目标联表顺序。在一些实施例中,联表重排装置901可以为上文中提到的数据库联表重排装置。
处理装置902能够基于目标联表顺序,针对数据处理任务执行联表数据处理。
这样的数据处理系统能够根据任务相关的数据表以及数据中心之间的网络带宽信息,更新传输时间代价,在确定联表路径时将数据中心之间的传输时延纳入考虑范围,提高数据库联表任务的执行效率。
本公开数据处理装置的一个实施例的结构示意图如图10所示。数据处理装置包括存储器1001和处理器1002。其中:存储器1001可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储上文中数据库的联表代价生成方法、数据库的联表重排方法或数据处理方法的对应实施例中的指令。处理器1002耦接至存储器1001,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器1002用于执行存储器中存储的指令,能够便于在跨数据中心的情况下提高数据库联表计算的执行效率。
在一个实施例中,还可以如图11所示,数据处理装置1100包括存储器1101和处理器1102。处理器1102通过BUS总线1103耦合至存储器1101。该数据处理装置1100还可以通过存储接口1104连接至外部存储装置1105以便调用外部数据,还可以通过网络接口1106连接至网络或者另外一台计算机系统(未标出)。此处不再进行详细介绍。
在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,能够便于在跨数据中心的情况下提高数据库联表计算的执行效率。
在另一个实施例中,一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现数据库的联表代价生成方法、数据库的联表重排方法或数据处理方法对应实施例中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
可能以许多方式来实现本公开的方法以及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法以及装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
需要说明的是,本公开的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
最后应当说明的是:以上实施例仅用以说明本公开的技术方案而非对其限制;尽管参照较佳实施例对本公开进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本公开的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本公开技术方案的精神,其均应涵盖在本公开请求保护的技术方案范围当中。
Claims (20)
1.一种数据库的联表代价生成方法,包括:
获取数据中心之间的网络带宽信息;
确定与数据处理任务相关的数据库表,生成数据库表集合;
规划所述数据库表集合中数据库表的联表顺序,并根据所述网络带宽信息确定联表顺序对应的传输时间代价,以便根据所述传输时间代价确定联表路径。
2.根据权利要求1所述的方法,其中,所述规划所述数据库表集合中数据库表的联表顺序包括:
基于自顶向下的动态规划算法,确定规划所述数据库表集合中数据库表的联表顺序,生成数据库联表计划树。
3.根据权利要求2所述的方法,其中,所述数据库联表计划树符合以下至少一项:
所述数据库联表计划树的叶子节点为所述数据库表;
所述数据库联表计划树为二叉树;或
所述数据库联表计划树包括左深树,右深树或部分稠密树中的至少一项。
4.根据权利要求2所述的方法,其中,所述基于自顶向下的动态规划算法,确定规划所述数据库表集合中数据库表的联表顺序包括:
对所述数据库表集合执行迭代的预定操作,直至完成对所述数据库表集合中所有数据库表的处理,其中,所述预定操作中包括在所述数据库表集合中确定第一数据库表,和在所述数据库表中删除所述第一数据库表,每次预定操作中确定的所述第一数据库表为下一次预定操作的数据传输目的地址;
根据每次预定操作中确定的所述第一数据库表确定所述联表顺序。
5.根据权利要求4所述的方法,其中,所述根据所述网络带宽信息确定联表顺序对应的传输时间代价包括:
根据所述网络带宽信息,在每次预定操作中确定所述第一数据库表到所述数据传输目的地址的传输时间信息;
根据联表顺序和每次迭代中确定的所述传输时间信息,确定所述传输时间代价。
6.根据权利要求5所述的方法,其中,所述预定操作包括:
在所述数据库表集合中选择第一数据库表;
通过删除所述第一数据库表更新所述数据库表集合;
根据所述数据库表集合中数据库表的统计信息,和所述第一数据库表到当前的所述数据传输目的地址的网络带宽信息,确定传输时间信息,并结束当前迭代。
7.根据权利要求6所述的方法,其中,所述预定操作还包括:
判断所述第一数据库表与所述数据传输目的地址是否位于同一个数据中心;
若所述第一数据库表与所述数据传输目的地址不位于同一个数据中心,则执行所述确定传输时间信息的操作;
若所述第一数据库表与所述数据传输目的地址位于同一个数据中心,则结束当前预定操作。
8.根据权利要求2所述的方法,其中,所述生成数据库联表计划树包括:
基于预定数据结构解析所述联表顺序,生成联表数据,其中,所述预定数据结构包括列表,队列,栈,字典或查找表中的一项或多项;
根据所述预定数据结构与数据库联表计划树的关联关系,将所述联表数据转化成所述数据库联表计划树。
9.根据权利要求1所述的方法,其中,所述规划所述数据库表集合中数据库表的联表顺序,并根据所述网络带宽信息确定联表顺序对应的传输时间代价包括:
在所述数据库表集合中选择一个数据库表作为数据传输终点,初始化传输时间代价为预定初始值,初始化数据传输目的地址为所述数据传输终点,通过删除所述数据传输终点对应的数据库表更新所述数据库表集合;
判断所述数据库表集合中数据库表的数量是否等于2;
若所述数据库表的数量大于2,则
在所述数据库表集合中确定目标数据库表;
根据所述目标数据库表与所述数据传输目的地址之间的传输时间信息更新所述传输时间代价,更新所述数据传输目的地址,并返回执行所述判断所述数据库表集合中数据库表的数量是否等于2的步骤;
若所述数据库表的数量等于2,则
在所述数据库表集合中确定目标数据库表;
根据所述目标数据库表与所述数据传输目的地址之间的传输时间信息更新所述传输时间代价,并结束联表顺序的规划操作。
10.根据权利要求9所述的方法,其中,所述根据所述目标数据库表与所述数据传输目的地址之间的传输时间信息更新所述传输时间代价,更新所述数据传输目的地址包括:
在所述目标数据库表与所述数据传输目的地址位于不同数据中心的情况下,
根据数据库表数据结构的基数,以及所述目标数据库表与所述数据传输目的地址之间的网络带宽信息,确定所述目标数据库表与所述数据传输目的地址之间的传输时间信息;
通过在所述传输时间代价的基础上增加所述传输时间信息更新所述传输时间代价;
将所述数据传输目的地址更新为所述目标数据库表。
11.根据权利要求10所述的方法,其中,所述根据所述目标数据库表与所述数据传输目的地址之间的传输时间信息更新所述传输时间代价,更新所述数据传输目的地址还包括:
在所述目标数据库表与所述数据传输目的地址位于相同数据中心的情况下,
将所述数据传输目的地址更新为所述目标数据库表;
在所述数据库表集合中重新选择目标数据库表;
在所述目标数据库表与所述数据传输目的地址位于相同数据中心的情况下,返回执行所述将所述数据传输目的地址更新为所述目标数据库表,在所述数据库表集合中重新选择目标数据库表的步骤;在所述目标数据库表与所述数据传输目的地址位于不同数据中心的情况下,确定所述目标数据库表与所述数据传输目的地址之间的传输时间信息;
通过在所述传输时间代价的基础上增加所述传输时间信息更新所述传输时间代价;
再次将所述数据传输目的地址更新为所述目标数据库表。
12. 根据权利要求9所述的方法,其中,所述根据所述目标数据库表与所述数据传输目的地址之间的传输时间信息更新所述传输时间代价,并结束联表顺序的规划操作包括以下至少一项:
在所述目标数据库表与所述数据传输目的地址位于不同数据中心的情况下,根据数据库表数据结构的基数,以及所述目标数据库表与所述数据传输目的地址之间的网络带宽信息,确定所述目标数据库表与所述数据传输目的地址之间的传输时间信息,通过在所述传输时间代价的基础上增加所述传输时间信息更新所述传输时间代价,结束联表顺序的规划操作;或
在所述目标数据库表与所述数据传输目的地址位于相同数据中心的情况下,结束联表顺序的规划操作。
13.一种数据库的联表重排方法,包括:
获取数据处理任务;
根据权利要求1~12任意一项所述的方法,规划联表顺序,并确定传输时间代价;
根据所述传输时间代价确定联表路径。
14.根据权利要求13所述的方法,还包括:
根据数据处理任务相关的数据库表的统计信息,或数据库集群可用的中央处理器和内存信息中的至少一种,确定第一路径代价信息;
所述根据所述传输时间代价确定联表路径包括:
根据所述传输时间代价,结合所述第一路径代价信息确定目标联表顺序,以减少目标联表顺序的综合路径代价。
15.一种数据处理方法,包括:
根据权利要求13或14所述的方法,确定目标联表顺序;
基于所述目标联表顺序,针对所述数据处理任务执行联表数据处理。
16.一种数据库联表代价生成装置,包括:
信息获取单元,被配置为获取数据中心之间的网络带宽信息;
集合生成单元,被配置为确定与数据处理任务相关的数据库表,生成数据库表集合;
传输时间代价确定单元,被配置为规划所述数据库表集合中数据库表的联表顺序,并根据所述网络带宽信息确定联表顺序对应的传输时间代价,以便根据所述传输时间代价确定联表路径。
17.一种数据库联表重排装置,包括:
任务获取单元,被配置为获取数据处理任务;
代价生成单元,被配置为通过执行权利要求1~12任意一项所述的方法,规划联表顺序并确定传输时间代价;和
路径确定单元,被配置为根据所述传输时间代价确定联表路径。
18.一种数据处理系统,包括:
联表重排装置,被配置为通过执行权利要求13或14所述的方法确定联表路径;
处理装置,被配置为基于目标联表顺序,针对数据处理任务执行联表数据处理。
19. 一种数据处理装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如权利要求1至15任一项所述的方法。
20.一种非瞬时性计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现权利要求1至15任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310744294.8A CN116501743B (zh) | 2023-06-21 | 2023-06-21 | 联表代价生成、重排方法和数据处理方法及装置、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310744294.8A CN116501743B (zh) | 2023-06-21 | 2023-06-21 | 联表代价生成、重排方法和数据处理方法及装置、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116501743A true CN116501743A (zh) | 2023-07-28 |
CN116501743B CN116501743B (zh) | 2023-11-24 |
Family
ID=87326909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310744294.8A Active CN116501743B (zh) | 2023-06-21 | 2023-06-21 | 联表代价生成、重排方法和数据处理方法及装置、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116501743B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6421657B1 (en) * | 1999-06-14 | 2002-07-16 | International Business Machines Corporation | Method and system for determining the lowest cost permutation for joining relational database tables |
US20100010989A1 (en) * | 2008-07-03 | 2010-01-14 | The Regents Of The University Of California | Method for Efficiently Supporting Interactive, Fuzzy Search on Structured Data |
CN103793467A (zh) * | 2013-09-10 | 2014-05-14 | 浙江鸿程计算机系统有限公司 | 一种基于超图和动态规划的大数据实时查询优化方法 |
CN104063486A (zh) * | 2014-07-03 | 2014-09-24 | 四川中亚联邦科技有限公司 | 一种大数据分布式存储方法和系统 |
CN107463702A (zh) * | 2017-08-16 | 2017-12-12 | 中科院成都信息技术股份有限公司 | 一种基于进化算法的数据库多连接查询优化方法 |
CN112256705A (zh) * | 2020-11-13 | 2021-01-22 | 北京理工大学 | 一种Gaia系统中的多表连接优化方法 |
CN114911823A (zh) * | 2022-03-29 | 2022-08-16 | 哈尔滨工业大学 | 面向云边端协同查询的深度学习代价估计系统、方法及设备 |
CN115114325A (zh) * | 2022-06-24 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置、电子设备以及存储介质 |
US20220374288A1 (en) * | 2019-10-30 | 2022-11-24 | Cerebras Systems Inc. | Distributed placement of linear operators for accelerated deep learning |
US20230086547A1 (en) * | 2021-09-20 | 2023-03-23 | EMC IP Holding Company LLC | Granular Data Replication |
-
2023
- 2023-06-21 CN CN202310744294.8A patent/CN116501743B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6421657B1 (en) * | 1999-06-14 | 2002-07-16 | International Business Machines Corporation | Method and system for determining the lowest cost permutation for joining relational database tables |
US20100010989A1 (en) * | 2008-07-03 | 2010-01-14 | The Regents Of The University Of California | Method for Efficiently Supporting Interactive, Fuzzy Search on Structured Data |
CN103793467A (zh) * | 2013-09-10 | 2014-05-14 | 浙江鸿程计算机系统有限公司 | 一种基于超图和动态规划的大数据实时查询优化方法 |
CN104063486A (zh) * | 2014-07-03 | 2014-09-24 | 四川中亚联邦科技有限公司 | 一种大数据分布式存储方法和系统 |
CN107463702A (zh) * | 2017-08-16 | 2017-12-12 | 中科院成都信息技术股份有限公司 | 一种基于进化算法的数据库多连接查询优化方法 |
US20220374288A1 (en) * | 2019-10-30 | 2022-11-24 | Cerebras Systems Inc. | Distributed placement of linear operators for accelerated deep learning |
CN112256705A (zh) * | 2020-11-13 | 2021-01-22 | 北京理工大学 | 一种Gaia系统中的多表连接优化方法 |
US20230086547A1 (en) * | 2021-09-20 | 2023-03-23 | EMC IP Holding Company LLC | Granular Data Replication |
CN114911823A (zh) * | 2022-03-29 | 2022-08-16 | 哈尔滨工业大学 | 面向云边端协同查询的深度学习代价估计系统、方法及设备 |
CN115114325A (zh) * | 2022-06-24 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置、电子设备以及存储介质 |
Non-Patent Citations (2)
Title |
---|
邹承明 等: "基于Greenplum数据库的查询优化", 《计算机应用》, vol. 38, no. 2, pages 478 - 482 * |
邹承明;谢义;吴佩;: "基于Greenplum数据库的查询优化", 计算机应用, no. 02, pages 478 - 482 * |
Also Published As
Publication number | Publication date |
---|---|
CN116501743B (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10606834B2 (en) | Methods and apparatus of shared expression evaluation across RDBMS and storage layer | |
CN1552032B (zh) | 数据库 | |
CN105824957A (zh) | 分布式内存列式数据库的查询引擎系统及查询方法 | |
CN108182242A (zh) | 一种用于海量多维数值数据范围查询的索引方法 | |
CN104111958A (zh) | 一种数据查询方法及装置 | |
CN112380276B (zh) | 一种分布式系统分库分表后非分片键字段查询数据的方法 | |
CN116431837B (zh) | 基于大型语言模型和图网络模型的文档检索方法和装置 | |
CN108549688B (zh) | 一种数据操作的优化方法、装置、设备和存储介质 | |
CN111694893B (zh) | 一种基于日志解析的部分回滚解析方法和数据同步系统 | |
CN112231351A (zh) | 一种pb级海量数据的实时查询方法和装置 | |
CN102253990A (zh) | 一种交互应用多媒体数据的查询方法及其装置 | |
CN111159268B (zh) | 一种ETL流程在Spark集群中运行的方法和装置 | |
CN102346765A (zh) | 一种查询内存数据的方法及装置 | |
CN116501743B (zh) | 联表代价生成、重排方法和数据处理方法及装置、系统 | |
US20080082516A1 (en) | System for and method of searching distributed data base, and information management device | |
CN115952323A (zh) | 对大规模超图的查询方法及系统 | |
CN115374121A (zh) | 数据库索引的生成方法、机器可读存储介质与计算机设备 | |
CN107291875B (zh) | 一种基于元数据图的元数据组织管理方法和系统 | |
CN113297274B (zh) | 一种签收数据查询方法和系统 | |
CN115391346A (zh) | 数据库聚合索引的生成方法、存储介质与计算机设备 | |
CN114254005A (zh) | 分区表的分组聚集查询方法、装置、计算机设备和介质 | |
CN115391424A (zh) | 数据库查询的处理方法、存储介质与计算机设备 | |
CN110413617B (zh) | 一种根据数据量的大小动态调节哈希表组的方法 | |
CN112905598A (zh) | 基于接口实现分离的图任务中间结果存储方法及系统 | |
JPH06180717A (ja) | データベース検索方式 |
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 |