分布式数据库的数据内部传输代价标定方法及系统技术方案

技术编号:32776527 阅读:16 留言:0更新日期:2022-03-23 19:33
本发明专利技术公开了分布式数据库的数据内部传输代价标定方法及系统,属于数据库技术领域,本发明专利技术要解决的技术问题为传统数据库在向分布式数据库转型时,难以估计数据内部传输代价,采用的技术方案为:该方法具体如下:确定数据内部传输代价模型,具体包括:构建数据广播代价模型;构建数据重分布代价模型;构建数据聚集代价模型;标定数据内部传输代价系数:采用TPC

【技术实现步骤摘要】
分布式数据库的数据内部传输代价标定方法及系统


[0001]本专利技术涉及数据库
,具体地说是一种分布式数据库的数据内部传输代价标定方法及系统。

技术介绍

[0002]随着信息技术不断深入生活,各种信息系统的数据量呈爆炸式增长,由于单个计算机容量的限制,传统单体数据库已经无法满足大数据场景下对数据库软件的需求,许多单体数据库被改造为了分布式数据库。
[0003]分布式数据库相比单体数据库的一个显著区别是:数据分布在多个分布式节点中,在执行数据查询的过程中,可能涉及到三种数据内部传输:广播、重分布、聚集,可能会涉及到大量数据在数据库节点之间的复制或者移动。
[0004]在传统单体数据库中,由于没有数据内部传输的过程,所以数据库在查询的计划阶段,不会将数据内部传输的代价考虑在内。而对于分布式数据库来说,数据内部传输会有较大的网络开销,此环节的代价已经无法忽略。传统数据库在向分布式数据库转型时,难以估计数据内部传输代价成了困扰数据库研发工作的难题。

技术实现思路

[0005]本专利技术的技术任务是提供一种分布式数据库的数据内部传输代价标定方法及系统,来解决传统数据库在向分布式数据库转型时,难以估计数据内部传输代价的问题。
[0006]本专利技术的技术任务是按以下方式实现的,一种分布式数据库的数据内部传输代价标定方法,该方法具体如下:
[0007]确定数据内部传输代价模型,具体包括:
[0008]构建数据广播代价模型;
[0009]构建数据重分布代价模型;<br/>[0010]构建数据聚集代价模型;
[0011]标定数据内部传输代价系数:采用TPC

DS标准测试数据库的数据;具体包括:
[0012]标定数据广播代价系数;
[0013]标定数据重分布代价系数;
[0014]标定数据聚集的代价系数。
[0015]作为优选,数据广播代价模型具体如下:
[0016]C
brod
=k
brod
·
S
table
·
(N
node

1);
[0017]其中,C
brod
表示数据广播的代价值;k
brod
表示数据广播的代价系数;S
table
表示数据表的大小;N
node
表示分布式节点个数;数据广播是将分散在各个节点的数据广播至全部节点。
[0018]更优地,数据重分布代价模型具体如下:
[0019]C
dist
=k
dist
·
S
table

[0020]其中,C
dist
表示数据重分布的代价值;k
dist
表示数据重分布的代价系数;S
table
表示数据表的大小;数据重分布是将数据按照所需的分布规律做从新分布。
[0021]更优地,数据聚集模型具体如下:
[0022][0023]其中,C
gather
表示数据广播的代价值;k
gather
表示数据广播的代价系数;S
table
表示数据表的大小;N
node
表示分布式节点个数;数据聚集是将分布在各个节点的数据聚集至特定节点。
[0024]作为优选,标定数据广播代价系数是指使用两个联表的SQL语句,实验组需要进行数据广播操作,对照组已经预先将小表广播至所有节点,无需广播;比较实验组和对照组的执行时间推算数据广播的代价;具体如下
[0025]实验组具体如下:
[0026]store_sales表以ss_ticket_number字段为哈希分布字段,存储于数据库集群中,date_dim表以d_date_sk字段为哈希字段,存储于数据库集群中;
[0027]调整数据库配置,使得执行以下SQL语句时,会广播date_dim表;
[0028]记录执行时间T
exp
,优化器代价C
exp

[0029]对照组具体如下:
[0030]store_sales表的数据分为三个部分,命名为store_sales_1表、store_sales_2表及store_sales_3表,将三张表分别保存在3个节点本地;
[0031]date_dim表不分片,完整的保存在3个节点本地,分别命名为date_dim_1表、date_dim_2表及date_dim_3表;
[0032]执行SQL语句;
[0033]记录执行时间T
ctrl
,优化器代价C
ctrl

[0034]广播代价系数为:
[0035][0036]其中,S
date_dim
为date_dim表数据量。
[0037]更优地,标定数据重分布代价系数是指使用两个联表的SQL语句,实验组在执行查询时需要进行数据重分布,对照组已经预先按照连接字段预分布数据,无需重分布;比较实验组和对照组的执行时间,推算数据重分布的代价;具体如下:
[0038]实验组具体如下:
[0039]store_sales表以ss_ticket_number字段为哈希分布字段,存储于数据库集群中,date_dim表以d_date_sk字段为哈希分布字段,存储于数据库集群中;
[0040]执行SQL语句;
[0041]记录执行时间T
exp
,优化器代价C
exp

[0042]对照组具体如下:
[0043]store_sales表以ss_sold_date_sk字段为哈希分布字段,存储于数据库集群中,date_dim表以d_date_sk字段为哈希分布字段,存储于数据库集群中;
[0044]调整数据库配置,使得执行SQL语句时,会直接进行本地join;
[0045]记录执行时间T
ctrl
,优化器代价C
ctrl

[0046]重分布代价系数为:
[0047][0048]其中,S
date_dim
表示为date_dim表数据量;S
store_sales
表示store_sales表数据量。
[0049]更优地,标定数据聚集代价系数是指使用读表的SQL语句,实验组在执行查询时需要进行数据聚集,对照组已经预先将数据聚集在一个节点,无需聚集;比较实验组和对照组的执行时间,推算数据聚集的代价,具体如下:
[0050]实验组具体如下:
[0051]store_sales表以ss_ticket_number字段为哈希分布字段,存储于数据库集群中;
[0052]执行SQL语句,SQL语句具体为:SELECT*FR本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库的数据内部传输代价标定方法,其特征在于,该方法具体如下:确定数据内部传输代价模型,具体包括:构建数据广播代价模型;构建数据重分布代价模型;构建数据聚集代价模型;标定数据内部传输代价系数:采用TPC

DS标准测试数据库的数据;具体包括:标定数据广播代价系数;标定数据重分布代价系数;标定数据聚集的代价系数。2.根据权利要求1所述的分布式数据库的数据内部传输代价标定方法,其特征在于,数据广播代价模型具体如下:C
brod
=k
brod
·
S
table
·
(N
node

1);其中,C
brod
表示数据广播的代价值;k
brod
表示数据广播的代价系数;S
table
表示数据表的大小;N
node
表示分布式节点个数;数据广播是将分散在各个节点的数据广播至全部节点。3.根据权利要求1或2所述的分布式数据库的数据内部传输代价标定方法,其特征在于,数据重分布代价模型具体如下:C
dist
=k
dist
·
S
table
;其中,C
dist
表示数据重分布的代价值;k
dist
表示数据重分布的代价系数;S
table
表示数据表的大小;数据重分布是将数据按照所需的分布规律做从新分布。4.根据权利要求3所述的分布式数据库的数据内部传输代价标定方法,其特征在于,数据聚集模型具体如下:其中,C
gather
表示数据广播的代价值;k
gather
表示数据广播的代价系数;S
table
表示数据表的大小;N
node
表示分布式节点个数;数据聚集是将分布在各个节点的数据聚集至特定节点。5.根据权利要求1所述的分布式数据库的数据内部传输代价标定方法,其特征在于,标定数据广播代价系数是指使用两个联表的SQL语句,实验组需要进行数据广播操作,对照组已经预先将小表广播至所有节点,无需广播;比较实验组和对照组的执行时间推算数据广播的代价;具体如下实验组具体如下:store_sales表以ss_ticket_number字段为哈希分布字段,存储于数据库集群中,date_dim表以d_date_sk字段为哈希字段,存储于数据库集群中;调整数据库配置,使得执行以下SQL语句时,会广播date_dim表;记录执行时间T
exp
,优化器代价C
exp
;对照组具体如下:store_sales表的数据分为三个部分,命名为store_sales_1表、store_sales_2表及store_sales_3表,将三张表分别保存在3个节点本地;date_dim表不分片,完整的保存在3个节点本地,分别命名为date_dim_1表、date_dim_2表及date_dim_3表;
执行SQL语句;记录执行时间T
ctrl
,优化器代价C
ctrl
;广播代价系数为:其中,S

【专利技术属性】
技术研发人员:许晓笛
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

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

1