Apache Paimon PK 表的 data distribution

本人初次接触 Paimon,以下内容仅是自己的理解,如有错误,欢迎评论。 下面所有讨论的内容仅限 PK 表。 Paimon 通过 bucket 提升数据的读写并行度,每一个 bucket 是一棵独立的 LSM 树,也是最小的读写单元。 当表…

Arrow-rs Parquet Reader 浅析

在千篇一律 arrow-cpp 系的 Parquet Reader 实现中,arrow-rs 上面的实现着实让人眼前一亮,这里简单记录下。 Parquet C++ Reader 早期由 Impala 团队开发,即 parquet-cpp,后合并到 arrow-cpp 中。Doris 引擎在早…

Apache Iceberg Delete File 解析

Iceberg 默认使用 Copy On Write 技术,也就是当你删除一行数据时,它会读取原有的文件,删除目标行,然后再重新写一遍,这样开销显然很大。后面 Iceberg 引入了 Merge On Read 技术,通过标记的方式,实现高效的数…

Apache Iceberg 概念梳理

在学习 Iceberg 源码前,我们需要搞清楚 Iceberg 中的各种概念,这样源码看起来才能更有层次感。 所以这篇文章只做一件很纯粹的事情,就是理清 Iceberg 中的名称概念,不做其它阐述。 下面所有的命名不是我自己 YY …

OceanBase Mac/Win Clion 开发环境搭建

OceanBase 作为一个大型的 C++ 项目,使用 Clion 能够明显提升开发效率,其很多功能是 VS Code 所不具备的。目前 OB 官网推荐使用 VS Code + ccls 插件来索引代码,但是其索引慢的离谱,而且跳转能力也一般,说实话…

假如我还有三天假期

n 年不遇的 gap,即将迎来了尾声,写下这篇日记的时候,假期余额已不足3天。 要我评价这 15 天的 gap,我只能说一个字,爽,两个字,真爽。自打毕业后,就没这么爽过了。 前几天还沉浸在离职的伤感中,休息了几天后…

从 StarRocks 离开,再出发

雄关漫道真如铁,而今迈步从头越 写于 2024 年 12 月 20 日礼拜五 last day,StarRocks 杭州办公室的会议室中。 用流水账记录一下这两年发生的事情以及最近离职带来心里上的感触,便于 n 年后的自己再次进行 review…

Apache Parquet Bloom Filter

Bloom Filter 只能处理 =,IN 谓词。 什么是 Bloom Filter? Bloom Filter 是用于判断某个元素是否在一个集合中的数据结构,优点是空间效率和查询时间都非常高,缺点是有一定的误判率。 布隆过滤器是由一个Bit数组和…

Apache Parquet ZoneMap 过滤支持小记

前置背景 ZoneMap Min-max 过滤也叫 ZoneMap 过滤。 一个 ZoneMap 一般包含如下信息: Parquet 的 ZoneMap 含有: ORC 的 ZoneMap 含有: ZoneMap 需要支持处理的表达式 ZoneMap 应用限制 比如 $f(a) = 10$ 这个表…

最近日子过的是一团“浆糊”

写在假期的尾巴,即礼拜天的晚上: 自从工作后,自己貌似逐渐失去了学生时代对代码的激情。不过也不是说就不喜欢代码,只是纯粹到了周六日,啥事不想干,就想爽玩! 这一年不知道是不是因为 P 事太多了,使得每一个…