starrocks对大量数据怎么实现hash join

这篇具有很好参考价值的文章主要介绍了starrocks对大量数据怎么实现hash join。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

以下是个人理解,可能不正确,希望评论指正:

pipeline构建

be的入口是:main->start_be,这里注册的doris::PBackendService中有一个exec_plan_fragment用来执行fe发来的查询计划。执行分两步:FragmentExecutor::prepare,FragmentExecutor::execute。

prepare阶段

在prepare阶段,FragmentExecutor::prepare->_prepare_pipeline_driver->PipelineBuilder::build中将HashJoinNode转为pipeline。hash join 节点的右侧是build 端,左侧是probe 端,在生成build 端时,会在build端加入一个SpillProcessOperator的pipeline算子。probe端与build端一起绑定了同一个HashJoiner节点。

execute阶段

在执行阶段FragmentExecutor::execute向GlobalDriverExecutor提交pipeline driver,当worker线程遍历到包含hash join node的driver节点时,调用PipelineDriver::process执行pipeline中每个pipeline算子,即从上游算子pull_chunk,再push_chunk到下游节点。

SpillableHashJoinBuildOperator从上游拉数据,会将chunk数据交到PartitionedSpillerWriter中,从而计算chunk中每行的hash 值,并生成它应属于哪个hash backet的索引(selections),当一个hash bucket满时,就将这个桶分裂一级,如果分裂至最高级时还满,就输出到文件中。

当一个SpillableHashJoinBuildOperator从上游获取完最后一条数据时,会调用 set_finishing将所在partition的stream 设置为eof状态

对于SpillableHashJoinProbeOperator,在检查has_output时,会起task去load所有build端的SpillerReader,当检查到build端一个partition 的eof状态时,ProbeOperator的has_output能就会检查

当driver扫描到SpillableHashJoinProbeOperator,它加载数据到一定程度,会调用pull_chunk,用build侧的hash表来join 本probe侧数据,将join上的返回,push_chunk到下一个pipeline节点。join不上的部分通过probe_remain补充null,并将结果返回。文章来源地址https://www.toymoban.com/news/detail-832521.html

到了这里,关于starrocks对大量数据怎么实现hash join的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 创建大量栅格文件并分别写入像元数据:C++ GDAL代码实现

      本文介绍基于 C++ 语言 GDAL 库, 批量创建 大量栅格遥感影像文件,并将数据批量写入其中的方法。   首先,我们来明确一下本文所需实现的需求。已知我们对 大量遥感影像 进行了批量读取与数据处理操作——具体过程可以参考文章C++ GDAL提取多时相遥感影像中像素随

    2024年02月19日
    浏览(43)
  • 【算法与数据结构】二叉树的三种遍历代码实现(下)—— 非递归方式实现(大量图解)

     上篇: 【算法与数据结构】二叉树的三种遍历代码实现(上)—— 用递归序知识点讲解_Hacynn的博客-CSDN博客 https://blog.csdn.net/zzzzzhxxx/article/details/133609612?spm=1001.2014.3001.5502 目录 前言 1、先序遍历 1.1、详细图解描述 1.2、先序遍历非递归代码实现  2、中序遍历 2.1、详细图解描

    2024年02月08日
    浏览(39)
  • ZYNQ通过AXI DMA实现PL发送连续大量数据到PS DDR

    硬件:ZYNQ7100 软件:Vivado 2017.4、Xilinx SDK 2017.4   ZYNQ PL 和 PS 的通信方式有 AXI GPIO、BRAM、DDR等。对于数据量较少、地址不连续、长度规则的情况,BRAM 比较适用。而对于传输速度要求高、数据量大、地址连续的情况,比如 ADC,可以通过 AXI DMA 来完成。 1、硬件设计 1.1 ZYNQ7

    2024年02月04日
    浏览(44)
  • 电脑硬盘空间大量被占用怎么办?

    通常情况下,电脑硬盘空间会被系统文件、已安装的应用程序或个人文件、备份、病毒或其他恶意软件或其他未知文件占用。那我们应该怎样解决硬盘空间大量被占用的问题呢? 方法1:通过存储功能查看内容并释放空间 您可以通过Windows 11/10中的存储功能查看安装在每个硬盘

    2024年02月07日
    浏览(45)
  • 【flink番外篇】15、Flink维表实战之6种实现方式-通过Temporal table实现维表数据join

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年01月20日
    浏览(52)
  • PHP自己的框架PDO数据表前缀、alias、model、table、join方法实现(完善篇九--结束)

    一、实现功能,数据表前缀、alias、model、table、join方法实现    二、表前缀实现 1、config.php增加表前缀  2、增加表前缀方法function.php 3、PDO数据表增加表前缀ModelBase.php 三、alias数据表别名和join实现实现ModelBase.php 四、控制器实现,数据表前缀、alias、model、table、join方法查询

    2024年02月10日
    浏览(43)
  • tp6的runtime/Logs目录下产生大量日记文件,怎么取消自动生成?

    一开始查了好多网上提供的,很幸运都是抄袭别人的,没一个成功,最后无奈只能自己解决方法 其实很简单,不用修改config/log.php文件,没用因为只要有登入错误,警告,消息或者sql错误都会写入 解决方法: 关闭调试模式 配置数据库文件  .env文件 true改为false即可  总结:

    2024年02月16日
    浏览(81)
  • springboot集成starrocks、以及采用flink实现mysql与starrocks亚秒级同步

    (因采用dynamic-datasource-spring-boot-starter动态数据源,所以才是以下配置文件的样式,像redis,druid根据自己情况导入依赖) 这个配置文件的场景是把starrocks当成slave库在用。某些大数据慢查询就走starrocks 就这样配置好后就可把starrocks当mysql用了 重点:采用这种方式有限制,插入

    2024年01月21日
    浏览(36)
  • 大数据StarRocks(七):数据表创建

    1.1 Row Column 一张表包括行(Row)和列(Column)。Row 即用户的一行数据。Column 用于描述一行数据中不同的字段。 ⚫ 在默认的数据模型中,Column 只分为排序列和非排序列。存储引擎会按照排序列对数据进行排序存储,并建立稀疏索引,以便在排序数据上进行快速查找。 ⚫ 而在

    2024年01月16日
    浏览(63)
  • 数据仓库系列:StarRocks 入门培训教程

    其它文章请参考 数据仓库系列:StarRocks 下一代高性能分析数据仓库的架构、数据存储及表设计 数据仓库系列:StarRocks的简单试用及与clickhouse的对比 数据仓库系列:如何将StarRocks集群与Jupyter集成? StarRocks 是一款MPP DB, 对标ClickHouse、Vertica、Teradata、Greenplum,在查询性能上远

    2024年02月11日
    浏览(77)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包