小红花·文摘
  • 首页
  • 广场
  • 排行榜🏆
  • 直播
  • FAQ
Dify.AI

哈希连接是OLAP中的标准连接算法,通过构建较小表的哈希表并用较大表进行查找,复杂度为O(n + m)。该算法支持INNER和LEFT连接,NULL键不匹配。构建阶段扫描较小表并插入哈希表,探测阶段查找匹配行,LEFT连接保留未匹配的行,构建列为NULL。

OLAP – 第七阶段 哈希连接

Kimserey Lam’s website, Software Development blog posts, videos and tutorials
Kimserey Lam’s website, Software Development blog posts, videos and tutorials · 2026-07-15T05:00:00Z

第六阶段的哈希聚合实现了GROUP BY聚合,使用哈希表将组键映射到聚合状态。每个聚合函数遵循初始化、更新和最终化的生命周期,并正确处理NULL值。哈希聚合是第一个需要查看所有输入的阶段,以确保输出的准确性。

OLAP – 第六阶段哈希聚合

Kimserey Lam’s website, Software Development blog posts, videos and tutorials
Kimserey Lam’s website, Software Development blog posts, videos and tutorials · 2026-07-11T05:00:00Z

文章讨论了OLAP系统的执行引擎,重点在于向量化表达式及其查询处理。通过处理2048行数据,提升了CPU效率。介绍了顺序扫描、过滤和投影操作符的实现,利用区域映射优化数据读取,减少不必要的数据复制。整体流程通过操作符管道处理数据,提升查询性能。

OLAP – 第五阶段 向量化表达式与扫描/过滤/投影

Kimserey Lam’s website, Software Development blog posts, videos and tutorials
Kimserey Lam’s website, Software Development blog posts, videos and tutorials · 2026-07-08T05:00:00Z

本文探讨了分布式OLAP查询引擎的架构与执行模型,重点分析了Trino与Spark、DuckDB等引擎的对比。介绍了OLTP、OLAP与HTAP的优化目标,强调了交互式OLAP的特点及其应用。阐述了SQL解析、逻辑优化、物理执行及MPP调度的过程,并讨论了嵌入式与分布式的选择依据。最后提供了后续阅读路径与实验入口。

【分布式 OLAP 查询引擎】OLAP 查询引擎全景:从单进程到 MPP

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-07T00:00:00Z

本文讨论了优化器在 SQL 查询中的重要性,特别是 Apache Calcite 和 Trino 的关系。Calcite 提供逻辑计划和优化规则,而 Trino 则采用自研规划器,借鉴 Calcite 的代数思想。文章还介绍了物理计划的执行约定、优化规则及其在 Trino 中的实现,强调了优化阶段的流水线和调试手段。

【分布式 OLAP 查询引擎】Calcite 与规则/代价优化框架

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-07T00:00:00Z

本文探讨了多表连接的优化策略,包括连接顺序、物理连接算子和分布式连接方法。重点分析了DuckDB和Trino的连接规划,比较了Hash Join和Merge Join的性能,并介绍了动态分区裁剪(DPP)和数据倾斜问题的解决方案。最后,总结了连接规划的关键要素和未来研究方向。

【分布式 OLAP 查询引擎】Join 重排与物理算子选择

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-07T00:00:00Z

本文总结了数据平台的选型决策,提出了交互式联邦、批ETL、嵌入式分析和流批一体四条路径。通过能力对照表,分析了不同引擎的下推深度、并发模型和运维复杂度,强调了查询引擎的核心功能及其在数据平台栈中的重要性,并提供了针对不同需求的引擎选择建议。

【分布式 OLAP 查询引擎】引擎选型与数据平台阅读地图

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-07T00:00:00Z

CBO(基于成本的优化器)在OLAP引擎中通过基数估计和代价常量做出决策,影响连接算法和顺序。统计信息对优化至关重要,直接影响查询性能。Trino和DuckDB的统计机制不同,DuckDB通过内置估计提高计划准确性。统计过期会导致错误的连接顺序,因此需定期更新统计信息以优化查询。

【分布式 OLAP 查询引擎】统计信息与代价模型

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-07T00:00:00Z

本文探讨了Volcano模型在执行层的应用,重点分析了Trino与PostgreSQL的对比。核心内容包括通过pull语义驱动子算子、阻断pipeline的算子,以及Trino在Volcano框架下的批量化改造。文章还介绍了算子的接口、Pipeline与Pipeline Breaker的概念,以及PostgreSQL的执行机制,最后讨论了Volcano在OLAP中的局限性与演进。

【分布式 OLAP 查询引擎】Volcano 迭代器模型:Pull 语义与 Pipeline Breaker

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-07T00:00:00Z

本文总结了RocksDB的内核机制,探讨了存储引擎的选择决策树,包括OLTP、OLAP和湖仓等场景。RocksDB适合写密集型负载,适用于Flink、TiKV等嵌入式应用。文章对比了RocksDB与InnoDB、列存和湖仓的特点,指出各自的适用场景和优化方向,并提供了存储栈和数据平台的阅读地图,以帮助读者理解不同存储引擎的关系与应用。

【RocksDB 内核机制】选型与存储栈阅读地图

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-07T00:00:00Z

第四阶段引入了表、目录和CSV批量加载功能,支持定义模式、逐行添加数据并持久化存储。表由行组和附加状态组成,目录管理所有表的注册信息。CSV加载器将CSV列映射到表列并转换数据类型,为后续的查询执行引擎奠定基础。

OLAP – 第四阶段:表、目录和批量加载

Kimserey Lam’s website, Software Development blog posts, videos and tutorials
Kimserey Lam’s website, Software Development blog posts, videos and tutorials · 2026-07-04T05:00:00Z

文章讨论了OLAP系统中的压缩技术,重点介绍了列存储的压缩方法。通过使用RLE、字典编码、位打包和增量编码等四种压缩编解码器,数据可以减少5-10倍。每种编码器根据数据类型自动选择,以实现最佳压缩效果,并介绍了压缩的实现细节和未来的开发计划。

OLAP – 第三阶段压缩

Kimserey Lam’s website, Software Development blog posts, videos and tutorials
Kimserey Lam’s website, Software Development blog posts, videos and tutorials · 2026-07-01T05:00:00Z

第二阶段的OLAP专注于列式存储,设计了RowGroups和ColumnSegments结构,以优化数据的磁盘存储和读取。RowGroups将表水平分区,每组最多包含122,880行;ColumnSegments存储每列的数据,并附带最小/最大区间图。该模型支持按需读取列、跳过不匹配的行组,并独立压缩每个段,提升查询效率。

OLAP – 第二阶段列式存储

Kimserey Lam’s website, Software Development blog posts, videos and tutorials
Kimserey Lam’s website, Software Development blog posts, videos and tutorials · 2026-06-27T05:00:00Z

OLAP数据库与OLTP数据库的主要区别在于数据存储方式。OLAP使用列存储,以提高分析查询速度。DuckDB的基础结构包括向量和数据块,每个向量最多可存2048个值,并使用有效性位掩码跟踪NULL值。数据块是列向量的集合,支持高效的数据处理和过滤。

OLAP – 第一阶段向量与数据块

Kimserey Lam’s website, Software Development blog posts, videos and tutorials
Kimserey Lam’s website, Software Development blog posts, videos and tutorials · 2026-06-24T05:00:00Z

DuckDB 是一种嵌入式列向量化分析引擎,适用于单机分析和数据科学。其架构包括 Catalog、Optimizer、Execution 和 Storage,支持 SQL 查询,并能直接处理 Parquet 和 CSV 文件。DuckDB 更适合零运维的嵌入式分析场景,支持 ACID 事务,适合小规模数据分析。

【列存引擎内核】DuckDB 架构与嵌入式 OLAP

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-06-18T00:00:00Z

本文探讨了ClickHouse的列存储引擎MergeTree的架构与优势,强调其在OLAP场景下的高效性。列存储通过减少IO、优化压缩和向量化计算,显著提升查询性能。与行存和LSM存储相比,ClickHouse在处理分析负载时表现优越,适合高并发和大数据量的场景。文章还介绍了MergeTree的不同变种及其应用场景,强调了其在数据分析中的重要性。

【列存引擎内核】列存基础与 ClickHouse 架构

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-06-18T00:00:00Z

本文探讨了ClickHouse的列存储架构及其向量化执行机制,强调了批量处理的优势。介绍了Block和IProcessor的结构,分析了数据读取、过滤和聚合的过程,并与PostgreSQL的执行器进行了对比,指出ClickHouse在OLAP场景中的高效性和优化设置。

【列存引擎内核】向量化执行引擎

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-06-18T00:00:00Z

DuckDB 采用向量批处理和 morsel-driven 并行执行模型,显著提升数据处理效率。在 OLAP 任务中,DuckDB 的表现优于 PostgreSQL 和 ClickHouse,支持动态任务调度和负载均衡。其物理算子通过管道化处理数据,优化哈希连接和聚合操作,优化器通过下推谓词和动态规划提升查询性能。

【列存引擎内核】DuckDB 向量化与 Morsel-Driven Pipeline

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-06-18T00:00:00Z

本文比较了DuckDB与ClickHouse在OLAP场景中的应用,指出两者适用场景不同。DuckDB适合嵌入式分析和小规模数据,而ClickHouse更适合大规模数据处理和多用户访问。通过决策树,用户可以根据需求选择合适的工具,结合使用可提高效率。

【列存引擎内核】ClickHouse 与 DuckDB 选型决策

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-06-18T00:00:00Z

本文讨论了ClickHouse的默认设置及其在中等批量OLAP中的应用,特别是与Kafka和ORM的插入方式。重点分析了MergeTree配置、内存与磁盘容量估算、监控及故障模式,并提供了配置层级、插入阈值、合并线程池等设置的详细说明,强调了SSD与HDD的策略差异。最后,提出了容量规划的工作流和配置审查清单,以优化性能和资源使用。

【列存引擎内核】配置陷阱与容量规划

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-06-18T00:00:00Z
  • <<
  • <
  • 1 (current)
  • 2
  • 3
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
友情链接: MOGE.AI 九胧科技 模力方舟 Gitee AI 菜鸟教程 Remio.AI DeekSeek连连 53AI 神龙海外代理IP IPIPGO全球代理IP 东波哥的博客 匡优考试在线考试系统 开源服务指南 蓝莺IM Solo 独立开发者社区 AI酷站导航 极客Fun 我爱水煮鱼 周报生成器 He3.app 简单简历 白鲸出海 T沙龙 职友集 TechParty 蟒周刊 Best AI Music Generator

小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码