数据库联合分片方法、装置以及存储介质制造方法及图纸

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

Database joint fragmentation method, device and storage medium

The invention discloses a database combined fragmenting method, device and storage medium, relates to the field of data warehouse technology, the method includes: calculating connection condition included the dimension table selection predicate field joined query dimension table field query frequency; in the calculation of dimension tables and fact tables for query processing, fact the average number of records containing table conditions are connected with the field selection predicates; according to the dimension table field query frequency and average number of records to determine the slice dimension table, will need to patch the dimension table and fact table with slice. The method, device and storage medium, can according to the load characteristics, and the patch number limit, automatic selection of part dimension table, combined with piecewise of dimension tables and fact tables; and the ranking method, reduce the computation, and ensure the connection operation cost minimization.

【技术实现步骤摘要】
数据库联合分片方法、装置以及存储介质
本专利技术涉及数据仓库
,特别是指一种数据库联合分片方法、装置以及存储介质。
技术介绍
目前,各行各业包括政府、企业、事业单位都依赖于数据仓库系统,以便在数据分析的基础上做出业务决策。数据仓库的基本建模方法是星型模型及其变种,比如雪花模型。星型模型由一个或者几个大型的事实表,和几十、甚至成百上千个与之连接的维表构成。事实表主要记录业务过程中发生的一些事件,比如银行的交易包括存款、取款、转账等,而维表则记录该事件的各个维度的信息,包括客户信息、商品信息、时间信息、地点信息等。在数据仓库上的查询,主要是一些选择、连接、和聚集查询。其中的连接查询(维表和事实表的连接),是代价较大的一个操作。为了对大数据进行有效的管理和查询分析,数据分片是有效的技术手段(Partitioning)。数据分片把一个大的数据表格划分成若干数据分区(Partition),在进行查询处理的时候,仅仅存取与查询相关的数据分区,减少I/O操作。数据分片包括各个表格独立分片(MonoPartition)、和联合分片(也称参考分片,ReferencePartition)。独立分片指的是各个表格包括维表和事实表根据查询负载的查询条件,选择一个或者多个字段分别进行分片,比如客户表(维表)按照客户ID进行分片,而日志数据表(事实表)按照时间戳以月份方式进行分片。而联合分片,则根据查询负载的查询条件,首先进行一个、或者几个维表的分片,然后依照事实表和维表之间的主外键依赖关系,对事实表进行分片。比如客户表(维表)按照用户ID进行分片,时间维度表(维表)按照季度进行分片,而日志数据表(事实表)按照客户ID、和季度的组合进行分片。在数据仓库的OLAP应用中,目前主要研究维表和事实表的联合分片策略。OLAP应用的主要查询类型是星型查询,需要进行维表和事实表之间的连接。目前,对维表和事实表的联合分片问题提出了一些方法和算法,但都具有各自的缺陷,例如:(1)针对分布式环境的参考分片方法,事实表根据在所有维表上的所有查询的查询条件进行参考分片,不能选择部分维表。(2)针对多维数据仓库(MOLAP),提出了数据分片策略,把全局超立方体(HyperCube)分解成一系列的子立方体(SubCubes),对应数据仓库的切片(Slice)和切块(Dice)的过程。其维表的选择是人工指定的,不能自动根据约束条件,选择部分维表进行联合分片。(3)选择部分维表进行维表和事实表的联合分片。对维表的选择,具体有三种方法,包括遗传算法(Genetic)、模拟退火算法(SimulatedAnnealing)、以及登山算法(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.一种数据库联合分片方法,其特征在于,包括:获取与事实表进行连接查询操作的维表以及所述事实表与所述维表的连接条件;计算所述连接条件包含的所述维表的选择谓词字段参与所述连接查询操作的维表字段查询频率;计算在所述维表与所述事实表进行所述连接查询操作时,所述事实表符合包含有所述选择谓词字段的连接条件的平均记录数;根据所述维表字段查询频率和所述平均记录数确定需要分片的维表,将所述需要分片的维表以及所述事实表进行联合分片。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所述的方法,其特征在于,还包括:基于选择的所述选择谓词字段对此选择谓词字段所在的维表进行分片;根据所...

【专利技术属性】
技术研发人员:孙乔张春光邓卜侨孙雷刘炜崔伟裴旭斌马慧远
申请(专利权)人:北京国电通网络技术有限公司国家电网公司国网北京市电力公司北京中电飞华通信股份有限公司国网信息通信产业集团有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1