字节跳动火山引擎ByteHouse的hash join

简介: 字节跳动火山引擎ByteHouse的hash join

带有过滤条件的hash join,首先针对左表构建hash表,然后对右表进行过滤,针对hash表中每个元组都对右表过滤后的结果进行探测,满足条件的作为join结果。当左表比较大时,构建hash表就需要较大代价。字节跳动的火山引擎Bytehouse中对hash join进行了优化。当右表过滤后结果集比较小时,将右表结果集作为过滤条件过滤左表,然后再构建hash表进行探测。如下图所示:

 

那就有问题了,虽然看起来这个idea可以带来较大收益,但需要思考是构建全量左表hash表的代价大还是提前过滤不会命中的join数据代价大呢?也就是什么场景下,什么阈值最好有个标量值下这种Runtime filter才具有优势呢?

Bytehouse中介绍,右表过滤后结果集比较小,同时左表非常大,但根据join条件过滤后结果集很小,这种场景下才适合启动Runtime Filter

但是,还是上面问题,针对启用条件,bytehouse是否有变量阈值控制呢?这个就不得而知了。

目录
相关文章
|
SQL 存储 缓存
袋鼠云研发手记 | 开源·数栈-扩展FlinkSQL实现流与维表的join
作为一家创新驱动的科技公司,袋鼠云每年研发投入达数千万,公司80%员工都是技术人员,袋鼠云产品家族包括企业级一站式数据中台PaaS数栈、交互式数据可视化大屏开发平台Easy[V]等产品也在迅速迭代。
3623 0
|
10月前
|
SQL 存储 分布式计算
奇思妙想的SQL|去重Cube计算优化新思路
本文主要分享了作者在蚂蚁集团高管数据链路改造升级过程中,针对去重Cube的优化实践。
906 48
|
9月前
|
机器学习/深度学习 人工智能 JSON
人工智能平台PAI操作报错合集之带有all reduce 的算子是trace不出来的,结果会错,怎么才可以绕过去
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。
|
SQL 存储 缓存
分布式数据库如何实现 Join?
PolarDB-X 不仅语法兼容 MySQL,作为分布式数据库,也力求保持与单机数据库一致的使用体验。在分布式场景下,Join 的两张表可能都是分布式表,因此需要通过多次网络请求获取相应的数据。如何高效地实现这一点呢?
1629 0
分布式数据库如何实现 Join?
|
SQL 分布式计算 Oracle
一文解析大数据的JOIN
本文大部分理论和问题都从maxcomputer中得出,不同的计算引擎底层结构不同最后结果可能稍微不同,这一点需要注意,本文应该可以让你不再苦恼各种join,或者更加苦恼join。
1175 0
一文解析大数据的JOIN
|
分布式计算 Spark
|
OLAP Serverless
openGauss向量化引擎--hash join
openGauss向量化引擎--hash join
162 0
|
机器学习/深度学习 人工智能 算法
每个字节跳动的背后,都有一台火山引擎
9 岁的字节跳动宣布「全擎投入」企业技术服务市场,一上来就计划要做 50 年。
559 0
每个字节跳动的背后,都有一台火山引擎
|
存储 分布式计算 流计算
离线数据Join我懂,但是实时数据怎么做Join的? by彭文华
离线数据Join我懂,但是实时数据怎么做Join的? by彭文华

热门文章

最新文章