暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8c 分布式查询

原创 孙梦泽 2022-03-28
354

对于分布式查询,根据关联表类型的不同分为:复制表+复制表、复制表+分布表、分布表+分布表,数据落在相同HG上、分布表+分布表,数据落在不同HG上四种情况。

1.1.1    复制表+复制表

1.   应用发出查询SQL;

2.   CN解析SQL,计算出SQL涉及的表均为复制表;

3.   向本HG发送SQL;

4.   获得结果返回应用。

5.   这类查询不涉及数据移动,无临时计算结果,查询性能高,支持高并发,性能线性提升。

1.1.2    复制表+分布表

1.   应用发出查询数据SQL;

2.   CN根据查询条件判断包含复制表和分布表,则分别向HG-1、HG-2、HG-3查询数据,并获得每个节点上的结果;

3.   合并结果并返回。

这类查询性能较高,高并发的支持不如只涉及单组情况,适于大表的存储。

1.1.3    分布表+分布表

分布表+分布表的查询,分为数据落在相同HG上和不同HG上两种类型。

数据落在相同HG上时原理如下:

TD1和TD2皆为分布表,以uid为分片列:

1.   CN接收到SQL后,根据集群元数据存储的分片规则,确认此次查询仅涉及HG-1;

2.   把SQL语句直接发送给HG-1,获得执行结果;

3.   CN将结果返回给用户。

这类查询性能高,无冗余操作,支持高并发,性能线性提升。

数据落在相同HG上时原理如下:

TD1和TD2皆为分布表,以uid为分片列:

1.   CN接收到SQL后,根据集群元数据存储的分片规则,根据TD1表的分片规则,生成分布SQL语句;

2.   把SQL语句发送给HG-1数据引擎执行;

3.   HG-1拉取其他HG上TD2表uid<60的数据;

4.   进行JOIN查询计算;

5.   HG-1将结果返回给CN;

6.   CN返回给用户。

这类查询性能较差,涉及数据移动,跨节点拉数据,网络传输是瓶颈。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论