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

GroupJoin算法落盘处理

芬芳 2023-10-18
112

GroupJoin的落盘处理,类似于partition-style的HashJoin&HashGroupby的落盘处理,方法如下:

  1. GroupJoin的整体算法采用分区(partition)的方式;
  2. 使用左表构建哈希表时,内存中的partition,构建hash table的算法与算法一节描述一致;
  3. 使用左表构建哈希表时,不在内存中的partition,刷到磁盘中对应的临时文件,后续新写入这个partition 的数据也会直接刷到磁盘中对应的临时文件;落盘的partition会建立一个bloomfilter,方便后续查找的时候快速过滤掉不可能匹配的右表数据;
  4. 完成左表的哈希表构建后,使用右表数据查哈希表:
    • 在查哈希表的过程中,如果对应partition在内存中,则如算法中的处理方式一样;如果对应的partition不在内存中,则先查bloomfilter,如果不命中bloomfilter则直接丢弃或者直接输出,否则刷入该partition对应的临时文件中。
    • 内存中的partition完全处理完毕后,逐个处理磁盘中的partition,此时假设至少一个partition时能放入磁盘中的,不需要再切分一个partition;处理算法与算法中的处理方式一样。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论