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 事太多了,使得每一个…

Apache Polaris 从入门到精通

Iceberg Rest Catalog 在介绍 Polaris 之前,先介绍下 Iceberg 的 Rest catalog。 Iceberg 支持众多 catalog,比如 Hive、Glue、Hadoop、REST 等等。这里面最为开放的就是 REST catalog。你只需要按照官方的 rest a…

ORC vs Parquet,孰强孰弱?

2024 年的今天,从事实上看,Parquet 貌似已经在这一场数据湖格式之争中胜利了,这从各大表格式的支持程度上可见一般。 Hudi Paimon Iceberg DeltaLake Hive Parquet ✅ ✅ ✅ ✅ ✅ ORC ❌ ✅ ✅ ❌ ✅ 本文存粹按…

Apache ORC 加密解析

Apache ORC 支持对列进行加密,且会对该列的统计信息一起加密。同时加密后的文件,即使 reader 没有正确的 master key 也能够正常的查看,只不过看到的都是错误的,被 mask 后的数据。 但是 ORC 的加密只能支持到列…

RLE 编码在 Apache ORC 中的实现

最近刚学习了 Zigzag(浅谈 Apache ORC 之 Decimal 存储),那就干脆趁热打铁,再学一下 Apache ORC 里面的 RLE 吧。 RLE(Run Length Encoding) 说说简单,比如 [1, 1, 1, 1] 四个 int32,本来需要 4 * 4 = 16 by…

浅谈 Apache ORC 之 Decimal 存储

Apache ORC 官方文档用一句话轻描淡写了 Decimal 的存储,但这句话让我这个 CRUD Boy 看的好苦。 Decimal was introduced in Hive 0.11 with infinite precision (the total number of digits). In Hive 0.13, the …