CN107515899A - 数据库联合分片方法、装置以及存储介质 - Google Patents

数据库联合分片方法、装置以及存储介质 Download PDF

Info

Publication number
CN107515899A
CN107515899A CN201710604810.1A CN201710604810A CN107515899A CN 107515899 A CN107515899 A CN 107515899A CN 201710604810 A CN201710604810 A CN 201710604810A CN 107515899 A CN107515899 A CN 107515899A
Authority
CN
China
Prior art keywords
dimension table
burst
dimension
field
true
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
CN201710604810.1A
Other languages
English (en)
Other versions
CN107515899B (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.)
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
State Grid Beijing Electric Power Co Ltd
Beijing China Power Information Technology Co Ltd
Beijing Zhongdian Feihua Communication Co Ltd
Original Assignee
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
State Grid Beijing Electric Power Co Ltd
Beijing Guodiantong Network Technology Co Ltd
Beijing Fibrlink Communications Co Ltd
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 State Grid Corp of China SGCC, State Grid Information and Telecommunication Co Ltd, State Grid Beijing Electric Power Co Ltd, Beijing Guodiantong Network Technology Co Ltd, Beijing Fibrlink Communications Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN201710604810.1A priority Critical patent/CN107515899B/zh
Publication of CN107515899A publication Critical patent/CN107515899A/zh
Application granted granted Critical
Publication of CN107515899B publication Critical patent/CN107515899B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/24535Query rewriting; Transformation of sub-queries or views
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据库联合分片方法、装置以及存储介质,涉及数据仓库技术领域,其中的方法包括:计算连接条件包含的维表的选择谓词字段参与连接查询操作的维表字段查询频率;计算在维表与事实表进行连接查询操作时,事实表符合包含有选择谓词字段的连接条件的平均记录数;根据维表字段查询频率和平均记录数确定需要分片的维表,将需要分片的维表以及事实表进行联合分片。本发明的方法、装置以及存储介质,实现了根据工作负载特点、以及分片数量限制,自动选择部分维表,进行维表和事实表的联合分片;并且采用排序的方法,减少了算法的计算量,同时保证连接操作的代价最小化。

Description

数据库联合分片方法、装置以及存储介质
技术领域
本发明涉及数据仓库技术领域,特别是指一种数据库联合分片方法、装置以及存储介质。
背景技术
目前,各行各业包括政府、企业、事业单位都依赖于数据仓库系统,以便在数据分析的基础上做出业务决策。数据仓库的基本建模方法是星型模型及其变种,比如雪花模型。星型模型由一个或者几个大型的事实表,和几十、甚至成百上千个与之连接的维表构成。事实表主要记录业务过程中发生的一些事件,比如银行的交易包括存款、取款、转账等,而维表则记录该事件的各个维度的信息,包括客户信息、商品信息、时间信息、地点信息等。在数据仓库上的查询,主要是一些选择、连接、和聚集查询。其中的连接查询(维表和事实表的连接),是代价较大的一个操作。
为了对大数据进行有效的管理和查询分析,数据分片是有效的技术手段(Partitioning)。数据分片把一个大的数据表格划分成若干数据分区(Partition),在进行查询处理的时候,仅仅存取与查询相关的数据分区,减少I/O操作。数据分片包括各个表格独立分片(Mono Partition)、和联合分片(也称参考分片,Reference Partition)。独立分片指的是各个表格包括维表和事实表根据查询负载的查询条件,选择一个或者多个字段分别进行分片,比如客户表(维表)按照客户ID进行分片,而日志数据表(事实表)按照时间戳以月份方式进行分片。而联合分片,则根据查询负载的查询条件,首先进行一个、或者几个维表的分片,然后依照事实表和维表之间的主外键依赖关系,对事实表进行分片。比如客户表(维表)按照用户ID进行分片,时间维度表(维表)按照季度进行分片,而日志数据表(事实表)按照客户ID、和季度的组合进行分片。
在数据仓库的OLAP应用中,目前主要研究维表和事实表的联合分片策略。OLAP应用的主要查询类型是星型查询,需要进行维表和事实表之间的连接。目前,对维表和事实表的联合分片问题提出了一些方法和算法,但都具有各自的缺陷,例如:(1)针对分布式环境的参考分片方法,事实表根据在所有维表上的所有查询的查询条件进行参考分片,不能选择部分维表。(2)针对多维数据仓库(MOLAP),提出了数据分片策略,把全局超立方体(HyperCube)分解成一系列的子立方体(Sub Cubes),对应数据仓库的切片(Slice)和切块(Dice)的过程。其维表的选择是人工指定的,不能自动根据约束条件,选择部分维表进行联合分片。(3)选择部分维表进行维表和事实表的联合分片。对维表的选择,具体有三种方法,包括遗传算法(Genetic)、模拟退火算法(Simulated Annealing)、以及登山算法(HillClimbing),这种方法把该问题转化成了一个复杂优化问题,计算代价太大。
发明内容
有鉴于此,本发明的目的在于提出一种数据库联合分片方法、装置以及存储介质。
根据本发明的一个方面,提供一种数据库联合分片方法,包括:获取与事实表进行连接查询操作的维表以及所述事实表与所述维表的连接条件;计算所述连接条件包含的所述维表的选择谓词字段参与所述连接查询操作的维表字段查询频率;计算在所述维表与所述事实表进行所述连接查询操作时,所述事实表符合包含有所述选择谓词字段的连接条件的平均记录数;根据所述维表字段查询频率和所述平均记录数确定需要分片的维表,将所述需要分片的维表以及所述事实表进行联合分片。
可选地,所述根据所述维表字段查询频率和所述平均记录数确定需要分片的维表包括:基于所述维表字段查询频率和所述平均记录数计算所述选择谓词字段的负载分布参数;对所述负载分布参数进行排序,根据预设的分片规则以及排序结果确定需要分片的维表。
可选地,所述计算所述连接条件包含的所述维表的选择谓词字段参与所述连接查询操作的维表字段查询频率包括:获取查询操作信息,其中,所述查询操作包括:事实表或者维表的单表查询操作、事实表和维表的连接查询操作;基于所述查询操作信息分别计算各个维表参与所述连接查询操作的频率以及所述维表的各个选择谓词字段参与所述连接查询操作的维表字段查询频率;其中,所述维表字段查询频率为Freq(Dn,Aj),Dn为第n个维表,Aj为第n个维表中的第j个选择谓词字段。
可选地,所述计算在所述维表与所述事实表进行所述连接查询操作时,所述事实表符合包含有所述选择谓词字段的连接条件的平均记录数包括:对于所述维表的各个选择谓词字段,分别计算所述事实表符合包含有所述各个选择谓词字段的连接条件的平均记录数;其中,所述平均记录数为AvgF2D(F,Dn,Aj),F为所述事实表,Dn为第n个维表,Aj为第n个维表中的第j个选择谓词字段。
可选地,所述基于所述维表字段查询频率和所述平均记录数计算所述选择谓词字段的负载分布参数包括:计算所述选择谓词字段的负载分布参数为Freq(Dn,Aj)×AvgF2D(F,Dn,Aj);所述对所述负载分布参数进行排序、根据预设的分片规则以及排序结果确定需要分片的维表包括:将所述负载分布参数由大到小进行排序,根据所述分片规则选择位于所述排序结果前面的至少一个所述负载分布参数所对应的维表以及此维表的选择谓词字段进行分片,其中,所述分片规则包括:事实表分片数量或每个分片的平均大小。
可选地,基于选择的所述选择谓词字段对此选择谓词字段所在的维表进行分片;根据所述维表的分片结果对所述事实表进行分片。
根据本发明的另一发面,提供一种数据库联合分片装置,包括:维表获取模块,用于获取与事实表进行连接查询操作的维表以及所述事实表与所述维表的连接条件;频率计算模块,用于计算所述连接条件包含的所述维表的选择谓词字段参与所述连接查询操作的维表字段查询频率;记录数计算模块,用于计算在所述维表与所述事实表进行所述连接查询操作时,所述事实表符合包含有所述选择谓词字段的连接条件的平均记录数;分片执行模块,用于根据所述维表字段查询频率和所述平均记录数确定需要分片的维表,将所述需要分片的维表以及所述事实表进行联合分片。
可选地,所述分片执行模块,还用于基于所述维表字段查询频率和所述平均记录数计算所述选择谓词字段的负载分布参数;对所述负载分布参数进行排序,根据预设的分片规则以及排序结果确定需要分片的维表。
可选地,所述频率计算模块,还用于获取查询操作信息,其中,所述查询操作包括:事实表或者维表的单表查询操作、事实表和维表的连接查询操作;基于所述查询操作信息分别计算各个维表参与所述连接查询操作的频率以及所述维表的各个选择谓词字段参与所述连接查询操作的维表字段查询频率;其中,所述维表字段查询频率为Freq(Dn,Aj),Dn为第n个维表,Aj为第n个维表中的第j个选择谓词字段。
可选地,所述记录数计算模块,还用于对于所述维表的各个选择谓词字段,分别计算所述事实表符合包含有所述各个选择谓词字段的连接条件的平均记录数;其中,所述平均记录数为AvgF2D(F,Dn,Aj),F为所述事实表,Dn为第n个维表,Aj为第n个维表中的第j个选择谓词字段。
可选地,所述分片执行模块,还用于计算所述选择谓词字段的负载分布参数为Freq(Dn,Aj)×AvgF2D(F,Dn,Aj);将所述负载分布参数由大到小进行排序,根据所述分片规则选择位于所述排序结果前面的至少一个所述负载分布参数所对应的维表以及此维表的选择谓词字段进行分片,其中,所述分片规则包括:事实表分片数量或每个分片的平均大小。
可选地,所述分片执行模块,还用于基于选择的所述选择谓词字段对此选择谓词字段所在的维表进行分片,根据所述维表的分片结果对所述事实表进行分片。
根据本发明的又一方面,提供一种数据库联合分片装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上所述的数据库联合分片方法。
根据本发明的再一方面,提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如上所述的数据库联合分片方法。
本发明的数据库联合分片方法、装置以及存储介质,获取参与连接操作的维表及其选择谓词字段的频率,计算事实表在查询谓词字段上和维表符合连接条件的平均记录数,基于频率与平均记录数进行排序,选择排在前几位的若干个维表参与联合分片,实现了根据工作负载特点、以及分片数量限制,自动选择部分维表,进行维表和事实表的联合分片;并且采用排序的方法,减少了算法的计算量,同时保证连接操作的代价最小化;将负载和数据分布两者结考虑所形成的数据分片,能够减少整个负载的运行时间,运行开销得到控制。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的数据库联合分片方法的一个实施例的流程示意图;
图2A和2B为事实表与维表的不同连接顺序及其中间结果集大小的示意图;
图3为本发明的数据库联合分片装置的一个实施例的模块示意图;
图4为本发明的数据库联合分片装置的另一个实施例的模块示意图。
具体实施方式
下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合各个图和实施例对本发明的技术方案进行多方面的描述。
图1为本发明的数据库联合分片方法的一个实施例的流程示意图,如图1所示:
步骤101,获取与事实表进行连接查询操作的维表以及事实表与维表的连接条件。
每个数据仓库都包含一个或者多个事实数据表,一个事实数据表都要和一个或多个纬度表相关联。事实表与维表的连接条件是维表和事实表进行连接查询所使用的连接条件,连接条件中包含有维表的选择谓词字段,选择谓词字段即为在维表上执行的查询谓词条件中的维表的字段。
步骤102,计算连接条件包含的维表的选择谓词字段参与连接查询操作的维表字段查询频率。
步骤103,计算在维表与事实表进行连接查询操作时,事实表符合包含有选择谓词字段的连接条件的平均记录数。
步骤104,根据维表字段查询频率和平均记录数确定需要分片的维表,将需要分片的维表以及事实表进行联合分片。
根据维表字段查询频率和平均记录数确定需要分片的维表可以有多种方法,例如,基于维表字段查询频率和平均记录数计算选择谓词字段的负载分布参数,对负载分布参数进行排序,根据预设的分片规则以及排序结果确定需要分片的维表。
在现有技术中,对维表的选择采用了重量级的优化方法(遗传算法)或者聚类方法(K-Means方法),运行开销较大。在本发明中考虑了负载特征和数据分布特点,使用排序方法进行维表的选择,采用排序机制进行维表的选择,更为简单,运行开销得到控制。
在一个实施例中,在对维表和事实表的进行联合分片时,分析工作负载,获取参与连接操作的维表及其选择谓词字段的频率。定义工作负载Q={Q1,Q2,…,Qm},以及数据仓库模式S,S由事实表F以及维表D={D1,D2,…,Dn}构成,约束条件是最大的事实表分片数量(或者是每个分片的平均大小,可以根据事实表的数据量和分片数量确定)。在上述的条件下,寻找参与联合分片的维表及其字段,对这些维表进行分片,在此基础上,对事实表进行参考分片,使得查询负载的成本最小化,执行时间最少。
查询负载包含事实表或者维表的单表查询、以及事实表和维表的连接查询。当维表的数量较多的时候,其搜索空间随着维表数量的增多,而急剧增加,其数量为这些维表的所有可能组合,即Cn 2=n*(n-1)/2。当维表数量达到成百上千时,逐一考察各种组合,效率不高。
获取查询操作信息,查询操作包括:事实表或者维表的单表查询操作、事实表和维表的连接查询操作。基于查询操作信息分别计算各个维表参与连接查询操作的频率以及维表的各个选择谓词字段参与连接查询操作的维表字段查询频率。维表的某个选择谓词字段的维表字段查询频率即为包含有此选择谓词字段所参与的连接查询的执行频率。维表字段查询频率为Freq(Dn,Aj),Dn为第n个维表,Aj为第n个维表中的第j个选择谓词字段,n、j都为自然数。
工作负载Q的连接查询包含了维表和事实表的连接条件,主要是主外键连接关系,包含了维表上形如“Di.Aj操作符常量”的谓词判断,其中Di表示某个维表,Aj表示某个字段。通过统计工作负载所有的查询,可以汇总出各个维表参与连接查询的频率,以及其所使用的选择谓词。
例如,数据库中有一个Transtime维表,Transtime维表中有Year、Season等字段。在所有查询中,Transtime表参与了10次连接查询,Transtime表使用的选择谓词(连接条件)有Year和Season等,其中Year使用了5次,Season使用了10次。可以统计出,Transtime表使用Year作为选择谓词字段参与连接查询的频率为5次,即Year参与连接查询操作的维表字段查询频率为5次。而使用Season作为选择谓词字段参与连接查询的频率为10次,即Season参与连接查询操作的维表字段查询频率为10次。该频率(维表字段查询频率)称为Freq(Dn,Aj),Dn为某个维表,Aj为其某个属性。
在选择维表参与联合分片时,连接操作的中间结果的大小也是一个重要的考虑因素,应尽量缩小查询的中间结果集。例如,在一个数据仓库模式中,包含一个事实表F,和三个维表D1、D2、D3。查询负载的其中一个查询,所有的维表需要和事实表连接,在此基础上进行聚集和汇总。在这种情况下,优化器可以选择事实表和这些维表的任意一个首先进行连接,然后在选择下一个维表,最后和剩下的维表进行连接,即连接的顺序(Join Ordering)的可能性是一个全排列Pn n=n!。在选择维表参与联合分片时,希望事实表和某个维表进行第一次连接之后,中间结果集是尽量缩小的。
如图2A和2B所示,提供两种连接顺序,表示连接操作,连接节点旁边的数字表示中间结果集大小。第一种连接顺序,在第一步连接后极大地缩减了中间结果,记录数减少到127970,简化了后续的操作过程,相对于第二种连接顺序更优(其第一步连接操作后的记录数为639850)。
对于维表的各个选择谓词字段,分别计算事实表符合包含有各个选择谓词字段的连接条件的平均记录数,平均记录数为AvgF2D(F,Dn,Aj),F为事实表,Dn为第n个维表,Aj为第n个维表中的第j个选择谓词字段。
在维表选择过程中,不仅考虑维表上的选择谓词字段在工作负载中的出现频率,而且考虑不同维表和事实表进行连接时的中间结果集缩减效果。使用事实表在选择(查询)谓词字段上和维表符合连接条件的平均记录数来度量,称为AvgF2D(F,Di,Aj),F是事实表,Dn为某个维表,Aj为其某个属性,AvgF2D表示对应维表的不同字段值(Dimensional TableDistinct Value)的事实表的平均记录数(Average Number of Fact Table Tuples)。
计算选择谓词字段的负载分布参数为Freq(Dn,Aj)×AvgF2D(F,Dn,Aj),将负载分布参数由大到小进行排序,根据分片规则选择位于排序结果前面的至少一个负载分布参数所对应的维表以及此维表的选择谓词字段进行分片,分片规则包括:事实表分片数量或每个分片的平均大小。基于选择的选择谓词字段对此选择谓词字段所在的维表进行分片,根据维表的分片结果对事实表进行分片。
在一个实施例中,对于整个维表选择、以及维表和事实表的联合分片的过程,可以分解为如下几个主要的步骤:
分析工作负载,获取参与连接操作的维表及其选择谓词字段的频率。对于历程性(Routine)的报表和汇总应用来讲,其查询是固定的,只是参数发生变化,可以获得完整的工作负载。而对于即席(Ad hoc)查询来讲,可以通过汇总一段时间内用户提交的即席查询,获得即席查询的工作负载。在实际数据仓库应用中,主要的负载是历程性的查询,而即席查询所占的比重比较小。
针对各个维表的各个选择谓词字段,计算事实表在查询谓词字段上和维表符合连接条件的平均记录数。针对大数据应用场合,直接在数据库上进行计算,其时间成本会很高。在事实表上进行采样,而由于维表的数据量一般较小,使用其全量数据,计算上述参数。
针对维表及其选择谓词字段进行排序。排序的标准是Freq(Dn,Aj)×AvgF2D(F,Di,Aj)。在排序的基础上,选择排在前几位的若干个维表参与联合分片。由于每个维表可能有多个在负载中出现的选择谓词,对于某个维表,仅选择排在前面的字段进行分片。选择的维表的数量,依据用户设定的约束进行计算。约束可以是最大的事实表分片数量,也可以是每个分片的平均大小,如下表1所示:
表1.维表以及选择谓词排序
最后完成维表和事实表的联合分片。针对这些维表,利用选择谓词字段进行分片。然后参考这些分片,对事实表进行参考分片。比如在表1给出的实例中,第1和第3行为被选择参与联合分片的维表及其字段。首先对Transtime维表进行按照季度的分片,分成四个季度,分别是1到4季度;然后对Customer表进行按照年龄(年龄段)的分片,年龄段分为0-20岁、20-35岁、35-45岁、45-60岁、以及60岁以上等5个分段。于是事实表LogData被分片为4×5=20个分片。
以Freq(Dn,Aj)指标进行维表选择,考虑了负载的特点,而以AvgF2D(F,Di,Aj)指标进行维表选择,则是考虑了数据分布的特点。把两者结合起来,不仅照顾了负载的特点,而且考虑到了数据分布特点,所形成的数据分片,更加能够帮助优化器进行分区裁剪,减少整个负载的运行时间。
上述实施例中的数据库联合分片方法,获取参与连接操作的维表及其选择谓词字段的频率,计算事实表在查询谓词字段上和维表符合连接条件的平均记录数,基于频率与平均记录数进行排序,选择排在前几位的若干个维表参与联合分片;实现了根据工作负载特点、以及分片数量限制,自动选择部分维表,进行维表和事实表的联合分片;并且采用排序的方法,对参与联合分片的维表和字段进行排序,避免了登山算法、遗传算法等重量级算法的计算量,同时保证连接操作的代价最小化。
在一个实施例中,如图3所示,本发明提供一种数据库联合分片装置30,包括:维表获取模块31、频率计算模块32、记录数计算模块33和分片执行模块34。
维表获取模块31获取与事实表进行连接查询操作的维表以及事实表与维表的连接条件。频率计算模块32计算连接条件包含的维表的选择谓词字段参与连接查询操作的维表字段查询频率。记录数计算模块33计算在维表与事实表进行连接查询操作时,事实表符合包含有选择谓词字段的连接条件的平均记录数。
分片执行模块34根据维表字段查询频率和平均记录数确定需要分片的维表,将需要分片的维表以及事实表进行联合分片。例如,分片执行模块34基于维表字段查询频率和平均记录数计算选择谓词字段的负载分布参数,对负载分布参数进行排序,根据预设的分片规则以及排序结果确定需要分片的维表。
频率计算模块32获取查询操作信息,查询操作包括:事实表或者维表的单表查询操作、事实表和维表的连接查询操作;基于查询操作信息分别计算各个维表参与连接查询操作的频率以及维表的各个选择谓词字段参与连接查询操作的维表字段查询频率,维表字段查询频率为Freq(Dn,Aj),Dn为第n个维表,Aj为第n个维表中的第j个选择谓词字段。
记录数计算模块33对于维表的各个选择谓词字段,分别计算事实表符合包含有各个选择谓词字段的连接条件的平均记录数,平均记录数为AvgF2D(F,Dn,Aj),F为事实表,Dn为第n个维表,Aj为第n个维表中的第j个选择谓词字段。
分片执行模块34计算选择谓词字段的负载分布参数为Freq(Dn,Aj)×AvgF2D(F,Dn,Aj),将负载分布参数由大到小进行排序,根据分片规则选择位于排序结果前面的至少一个负载分布参数所对应的维表以及此维表的选择谓词字段进行分片,分片规则包括:事实表分片数量或每个分片的平均大小。分片执行模块34基于选择的选择谓词字段对此选择谓词字段所在的维表进行分片,根据维表的分片结果对事实表进行分片。
图4为根据本发明的数据库联合分片装置的另一个实施例的模块示意图。如图4所示,该装置可包括存储器41、处理器42、通信接口43以及总线44。存储器41用于存储指令,处理器42耦合到存储器41,处理器42被配置为基于存储器41存储的指令执行实现上述的数据库联合分片方法。
存储器41可以为高速RAM存储器、非易失性存储器(NoN-volatile memory)等,存储器41也可以是存储器阵列。存储器41还可能被分块,并且块可按一定的规则组合成虚拟卷。处理器42可以为中央处理器CPU,或专用集成电路ASIC(ApplicatioN SpecificINtegrated Circuit),或者是被配置成实施本发明的数据库联合分片方法的一个或多个集成电路。
在一个实施例中,本发明提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如上任一个实施例中的数据库联合分片方法。
上述实施例中的数据库联合分片方法、装置以及存储介质,获取参与连接操作的维表及其选择谓词字段的频率,计算事实表在查询谓词字段上和维表符合连接条件的平均记录数,基于频率与平均记录数进行排序,选择排在前几位的若干个维表参与联合分片;实现了根据工作负载特点、以及分片数量限制,自动选择部分维表,进行维表和事实表的联合分片;并且采用排序的方法,对参与联合分片的维表和字段进行排序,避免了登山算法、遗传算法等重量级算法的计算量,同时保证连接操作的代价最小化;把负载和数据分布两者结考虑所形成的数据分片,能够减少整个负载的运行时间,运行开销得到控制。
可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

Claims (10)

1.一种数据库联合分片方法,其特征在于,包括:
获取与事实表进行连接查询操作的维表以及所述事实表与所述维表的连接条件;
计算所述连接条件包含的所述维表的选择谓词字段参与所述连接查询操作的维表字段查询频率;
计算在所述维表与所述事实表进行所述连接查询操作时,所述事实表符合包含有所述选择谓词字段的连接条件的平均记录数;
根据所述维表字段查询频率和所述平均记录数确定需要分片的维表,将所述需要分片的维表以及所述事实表进行联合分片。
2.如权利要求1所述的方法,其特征在于,所述根据所述维表字段查询频率和所述平均记录数确定需要分片的维表包括:
基于所述维表字段查询频率和所述平均记录数计算所述选择谓词字段的负载分布参数;
对所述负载分布参数进行排序,根据预设的分片规则以及排序结果确定需要分片的维表。
3.如权利要求2所述的方法,其特征在于,所述计算所述连接条件包含的所述维表的选择谓词字段参与所述连接查询操作的维表字段查询频率包括:
获取查询操作信息,其中,所述查询操作包括:事实表或者维表的单表查询操作、事实表和维表的连接查询操作;
基于所述查询操作信息分别计算各个维表参与所述连接查询操作的频率以及所述维表的各个选择谓词字段参与所述连接查询操作的维表字段查询频率;
其中,所述维表字段查询频率为Freq(Dn,Aj),Dn为第n个维表,Aj为第n个维表中的第j个选择谓词字段。
4.如权利要求3所述的方法,其特征在于,所述计算在所述维表与所述事实表进行所述连接查询操作时,所述事实表符合包含有所述选择谓词字段的连接条件的平均记录数包括:
对于所述维表的各个选择谓词字段,分别计算所述事实表符合包含有所述各个选择谓词字段的连接条件的平均记录数;
其中,所述平均记录数为AvgF2D(F,Dn,Aj),F为所述事实表,Dn为第n个维表,Aj为第n个维表中的第j个选择谓词字段。
5.如权利要求4所述的方法,其特征在于,所述基于所述维表字段查询频率和所述平均记录数计算所述选择谓词字段的负载分布参数包括:
计算所述选择谓词字段的负载分布参数为Freq(Dn,Aj)×AvgF2D(F,Dn,Aj);
所述对所述负载分布参数进行排序、根据预设的分片规则以及排序结果确定需要分片的维表包括:
将所述负载分布参数由大到小进行排序,根据所述分片规则选择位于所述排序结果前面的至少一个所述负载分布参数所对应的维表以及此维表的选择谓词字段进行分片,其中,所述分片规则包括:事实表分片数量或每个分片的平均大小。
6.如权利要求5所述的方法,其特征在于,还包括:
基于选择的所述选择谓词字段对此选择谓词字段所在的维表进行分片;
根据所述维表的分片结果对所述事实表进行分片。
7.一种数据库联合分片装置,其特征在于,包括:
维表获取模块,用于获取与事实表进行连接查询操作的维表以及所述事实表与所述维表的连接条件;
频率计算模块,用于计算所述连接条件包含的所述维表的选择谓词字段参与所述连接查询操作的维表字段查询频率;
记录数计算模块,用于计算在所述维表与所述事实表进行所述连接查询操作时,所述事实表符合包含有所述选择谓词字段的连接条件的平均记录数;
分片执行模块,用于根据所述维表字段查询频率和所述平均记录数确定需要分片的维表,将所述需要分片的维表以及所述事实表进行联合分片。
8.如权利要求7所述的装置,其特征在于,
所述分片执行模块,还用于基于所述维表字段查询频率和所述平均记录数计算所述选择谓词字段的负载分布参数;对所述负载分布参数进行排序,根据预设的分片规则以及排序结果确定需要分片的维表;
所述频率计算模块,还用于获取查询操作信息,其中,所述查询操作包括:事实表或者维表的单表查询操作、事实表和维表的连接查询操作;基于所述查询操作信息分别计算各个维表参与所述连接查询操作的频率以及所述维表的各个选择谓词字段参与所述连接查询操作的维表字段查询频率;其中,所述维表字段查询频率为Freq(Dn,Aj),Dn为第n个维表,Aj为第n个维表中的第j个选择谓词字段;
所述记录数计算模块,还用于对于所述维表的各个选择谓词字段,分别计算所述事实表符合包含有所述各个选择谓词字段的连接条件的平均记录数;其中,所述平均记录数为AvgF2D(F,Dn,Aj),F为所述事实表,Dn为第n个维表,Aj为第n个维表中的第j个选择谓词字段;
所述分片执行模块,还用于计算所述选择谓词字段的负载分布参数为Freq(Dn,Aj)×AvgF2D(F,Dn,Aj);将所述负载分布参数由大到小进行排序,根据所述分片规则选择位于所述排序结果前面的至少一个所述负载分布参数所对应的维表以及此维表的选择谓词字段进行分片,其中,所述分片规则包括:事实表分片数量或每个分片的平均大小;
所述分片执行模块,还用于基于选择的所述选择谓词字段对此选择谓词字段所在的维表进行分片,根据所述维表的分片结果对所述事实表进行分片。
9.一种数据库联合分片装置,其特征在于,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至6中任一项所述的数据库联合分片方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如权利要求1至6中任一项所述的数据库联合分片方法。
CN201710604810.1A 2017-07-24 2017-07-24 数据库联合分片方法、装置以及存储介质 Active CN107515899B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710604810.1A CN107515899B (zh) 2017-07-24 2017-07-24 数据库联合分片方法、装置以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710604810.1A CN107515899B (zh) 2017-07-24 2017-07-24 数据库联合分片方法、装置以及存储介质

Publications (2)

Publication Number Publication Date
CN107515899A true CN107515899A (zh) 2017-12-26
CN107515899B CN107515899B (zh) 2020-05-22

Family

ID=60722391

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710604810.1A Active CN107515899B (zh) 2017-07-24 2017-07-24 数据库联合分片方法、装置以及存储介质

Country Status (1)

Country Link
CN (1) CN107515899B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542891A (zh) * 2018-10-18 2019-03-29 北京新唐思创教育科技有限公司 数据融合方法及计算机存储介质
CN111625602A (zh) * 2020-05-26 2020-09-04 北京思特奇信息技术股份有限公司 一种基于客户id的分库方法和装置
CN113220719A (zh) * 2021-06-04 2021-08-06 上海天旦网络科技发展有限公司 一种海量维度数据关联查询优化方法及系统
CN113297333A (zh) * 2021-03-17 2021-08-24 无锡极数宝大数据科技有限公司 数据处理方法、装置、服务器及存储介质
CN114327261A (zh) * 2021-12-06 2022-04-12 神州融安数字科技(北京)有限公司 数据文件的存储方法及数据安全代理

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004752A (zh) * 2009-08-31 2011-04-06 埃森哲环球服务有限公司 灵活的立方体数据入库
CN102156714A (zh) * 2011-03-22 2011-08-17 清华大学 实现自适应垂直划分的关系型数据库的方法及系统
CN103336792A (zh) * 2013-06-07 2013-10-02 华为技术有限公司 数据分区方法和装置
CN103631911A (zh) * 2013-11-27 2014-03-12 中国人民大学 基于数组存储和向量处理的olap查询处理方法
CN105517644A (zh) * 2014-03-05 2016-04-20 华为技术有限公司 一种数据分区方法和设备
CN105701209A (zh) * 2016-01-13 2016-06-22 广西师范大学 一种提高大数据上并行连接性能的负载平衡方法
US20170116311A1 (en) * 2015-10-23 2017-04-27 Oracle International Corporation System and method for use of automatic slice merge in a multidimensional database environment

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004752A (zh) * 2009-08-31 2011-04-06 埃森哲环球服务有限公司 灵活的立方体数据入库
CN102156714A (zh) * 2011-03-22 2011-08-17 清华大学 实现自适应垂直划分的关系型数据库的方法及系统
CN103336792A (zh) * 2013-06-07 2013-10-02 华为技术有限公司 数据分区方法和装置
CN103631911A (zh) * 2013-11-27 2014-03-12 中国人民大学 基于数组存储和向量处理的olap查询处理方法
CN105517644A (zh) * 2014-03-05 2016-04-20 华为技术有限公司 一种数据分区方法和设备
US20170116311A1 (en) * 2015-10-23 2017-04-27 Oracle International Corporation System and method for use of automatic slice merge in a multidimensional database environment
CN105701209A (zh) * 2016-01-13 2016-06-22 广西师范大学 一种提高大数据上并行连接性能的负载平衡方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
宋雪姣: "面向海量数据的连接查询算法的优化研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
梁双 等: "基于聚类分析分库策略的社交网络数据库查询性能与数据迁移", 《计算机应用》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542891A (zh) * 2018-10-18 2019-03-29 北京新唐思创教育科技有限公司 数据融合方法及计算机存储介质
CN109542891B (zh) * 2018-10-18 2021-04-09 北京新唐思创教育科技有限公司 数据融合方法及计算机存储介质
CN111625602A (zh) * 2020-05-26 2020-09-04 北京思特奇信息技术股份有限公司 一种基于客户id的分库方法和装置
CN113297333A (zh) * 2021-03-17 2021-08-24 无锡极数宝大数据科技有限公司 数据处理方法、装置、服务器及存储介质
CN113220719A (zh) * 2021-06-04 2021-08-06 上海天旦网络科技发展有限公司 一种海量维度数据关联查询优化方法及系统
CN114327261A (zh) * 2021-12-06 2022-04-12 神州融安数字科技(北京)有限公司 数据文件的存储方法及数据安全代理

Also Published As

Publication number Publication date
CN107515899B (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
CN107515899A (zh) 数据库联合分片方法、装置以及存储介质
US11537276B2 (en) Generating data visualizations according to an object model of selected data sources
US8447721B2 (en) Interest-driven business intelligence systems and methods of data analysis using interest-driven data pipelines
US6748394B2 (en) Graphical user interface for relational database
US6941311B2 (en) Aggregate navigation system
US7167859B2 (en) Database security
US7080090B2 (en) Allocation measures and metric calculations in star schema multi-dimensional data warehouse
US9223810B2 (en) Storage advisor for hybrid-store databases
US9405812B2 (en) Systems and methods for providing performance metadata in interest-driven business intelligence systems
US20220300525A1 (en) Systems and Methods for Using Multiple Aggregation Levels in a Single Data Visualization
US20150356137A1 (en) Systems and Methods for Optimizing Data Analysis
CN107908733A (zh) 一种全球贸易数据的查询方法,装置及系统
CN105843842A (zh) 一种大数据环境下多维聚集查询与展示系统及方法
US7072897B2 (en) Non-additive measures and metric calculation
CN107729500B (zh) 一种联机分析处理的数据处理方法、装置及后台设备
US6732115B2 (en) Chameleon measure and metric calculation
EP1492026A2 (en) System and method for expressing and calculating a relationship between OLAP measures
US7836052B2 (en) Selection of attribute combination aggregations
JP2005018751A5 (zh)
Lübcke et al. A decision model to select the optimal storage architecture for relational databases
Vaisman et al. Data warehouse concepts
WO2021102902A1 (zh) 在制产品数量上限推荐的系统和方法、计算机可读介质
CN108491541A (zh) 一种应用于分布式的多维数据库联合查询方法及系统
Dehne et al. Cooperative caching for grid-enabled OLAP
Sasmita et al. Design of Data Warehouse for Minimarket’s Sales Information Using Tabular Models

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100070 Times Fortune Tiandi Building, No. 1 Hangfeng Road, Fengtai District, Beijing, 28 Floors

Applicant after: BEIJING GUODIANTONG NETWORK TECHNOLOGY Co.,Ltd.

Applicant after: STATE GRID CORPORATION OF CHINA

Applicant after: STATE GRID BEIJING ELECTRIC POWER Co.

Applicant after: Beijing Zhongdian Feihua Communications Co.,Ltd.

Applicant after: STATE GRID INFORMATION & TELECOMMUNICATION GROUP Co.,Ltd.

Address before: 100070 Times Fortune Tiandi Building, No. 1 Hangfeng Road, Fengtai District, Beijing, 28 Floors

Applicant before: BEIJING GUODIANTONG NETWORK TECHNOLOGY Co.,Ltd.

Applicant before: State Grid Corporation of China

Applicant before: STATE GRID BEIJING ELECTRIC POWER Co.

Applicant before: Beijing Zhongdian Feihua Communications Co.,Ltd.

Applicant before: STATE GRID INFORMATION & TELECOMMUNICATION GROUP Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190606

Address after: 100085 Beijing city Haidian District Qinghe small Camp Road No. 15

Applicant after: BEIJING CHINA POWER INFORMATION TECHNOLOGY Co.,Ltd.

Applicant after: STATE GRID CORPORATION OF CHINA

Applicant after: STATE GRID BEIJING ELECTRIC POWER Co.

Applicant after: Beijing Zhongdian Feihua Communications Co.,Ltd.

Applicant after: STATE GRID INFORMATION & TELECOMMUNICATION GROUP Co.,Ltd.

Address before: 100070 Times Fortune Tiandi Building, No. 1 Hangfeng Road, Fengtai District, Beijing, 28 Floors

Applicant before: BEIJING GUODIANTONG NETWORK TECHNOLOGY Co.,Ltd.

Applicant before: STATE GRID CORPORATION OF CHINA

Applicant before: STATE GRID BEIJING ELECTRIC POWER Co.

Applicant before: Beijing Zhongdian Feihua Communications Co.,Ltd.

Applicant before: STATE GRID INFORMATION & TELECOMMUNICATION GROUP Co.,Ltd.

GR01 Patent grant
GR01 Patent grant