Compaction in Apache Iceberg

压缩,可以将多个小文件合并为大文件提高读性能,几种压缩策略:binpack(简单合并)、sort、z-order(适合多列查询),Expire Snapshots 可以删除过期的数据文件,还提供了参数可以自动删除manifest 文件、保留多少manifest文件,以及清除orphan 文件

阅读全文

The Life of a Read/Write Query for Apache Iceberg Tables

介绍了存储的结构,元数据层包括:manifest files、manifest list, metadata files,catalog指向最新的 metadata files;每一层都可以做裁减,包括数据层,介绍了读取、time travel过程,是自上往下的读取和裁减过程;写入过程:插入、删除、merge过程,写 过程是自下而上的,通过 切换catalog指向,利用OCC控制并发,实现ACID

阅读全文

Analyzing and Comparing Lakehouse Storage Systems

讨论了 LakeHouse 系统设计的难点,在不可变高延迟的对象存储之上,增加事务特性,三大系统都使用了OCC做隔离,事务实现都用了MVCC,源数据库管理delta和hudi用了表格式,iceberg用了层次存储(单节点处理),数据更新三者都支持CoW(适合读多写少场景),hudi和iceberg支持MoR(适合写多的场景)

阅读全文

The History of Big data

从谷歌的三篇论文到Hadoop的诞生,再是各种开源产品依次出现,Hive对MapReduce的易用性改进,三大Hadoop 供应商,谷歌新三篇论文诞生了交互式查询(三大供应商推出)以及各种开源存储格式,Spark的出现和各种流处理系统,Netflix也证明了云的强大,流批一体以及各种分布式调度系统,基于云的数仓产品出现,HDFS替换上云、容器化出现、全托管数仓Modern Data Stack、深度学习对Hadoop的影响,三大供应商被收购,三大开放表格存储的出现,几个元数据管理产品,几个新的调度框架,LakeHouse的出现以及相关类似云产品

阅读全文

SQL Server Column Store Indexes

SQL Server 11代 Denali,在行存系统上增加了列存和索引结构,这些改动并不是重新来一套,而是基于现有技术的改进,如对行做了分片segment,每个 row segment 再根据 column 进一步细分为 column segment;column segment本身是现有的 blob存储,同时还利用了压缩技术,基于 column segment 又开发出了 segment directory,这个 directory包含了一些元信息如行数量、size、多少数据被编码了、min和max等,这些改动之后,还可以跟现有的lock、log、recovery、patition、mirror、replication完全兼容整合;之后查询引擎部分也会做一些改动来兼容行、列数据,这里使用了多核、bitmap filter、算子间的内存共享、SIMD等进一步优化,根据代价模型评估,选择合适的索引,测试TPC-DS时,前面大部分数据都是批的方式处理的,而且做了并行化,只有最后的聚合、重分区是用 行模式处理的,最后效率大幅度提升

阅读全文