Gbase 8a 参数 one-pass hash group 的适用场景与算法选择

问题现象 

   参数 one-pass hash group 的适用场景。

处理方法

one-pass hash group 适用于源表行数较多(相对于 group buffer),且 group by 列 中不同值占比较多的情况。当前实现中包含三种划分方式:RR、原始 hash、one-p ass hash,它们的评估原则如下:

 采样得到的 DistinctRatio < 10(不同值占比小于 10%)时,使用 RR 划分(需 要二次聚集),否则使用 hash 划分。预期第一次聚集的结果集比较小,二次 聚集代价较低。

 根据源表的行数和 group buffer 的大小,确定使用原始的 hash 划分,还是 onepass hash 划分:

1. 当 group buffer 能够容纳源表数据的 50%时,使用原始的 hash 划分。这时 会将数据分为 dop 份,每个线程一份,预期各线程进行聚集时不会发生多 趟;

2. 否则使用 one-pass hash 划分,这时会将数据分为(原始数据行数 / 子线 程哈希表能够容纳的行数 * 4)个文件分片。(乘以 4 是为了防止一个文件 分片聚集时发生多趟)。

说明 如果数据量相对于 group buffer 较大,而采样结果显示不同值较多,就会使用 one-pass has h 划分。

问题 2

参数 one-pass hash group 的算法选择。

回答

针对特定的数据,以下两个原因可能导致算法选择上不是最优:

 数据量大时,采样结果不准确;

 选择原始 hash group 或 one-pass hash group 时,只参考了数据量,没有考虑数 据特征。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值