数据湖是近几年来比较热门的一个话题,把这块的内容也加入这个专栏的目的想传达的一个信息,程序员需要对新技术框架有敏锐感知能力,也需要保持一颗好奇心,因为技术肯定是会一直迭代发展的,这一点毫无疑问,所以我们也需要不停地迭代自己的知识,跟上时代的步伐。另外,如果你的简历上有一个新技术的实践经验,这也可以是你的一个加分项。本篇是基于数据湖的具体实现之一 Apache Hudi 来讲解相关内容。
本篇面试内容划重点:表类型(COW、MOR)、查询类型(视图)。
Apache Hudi 依赖于 HDFS 做底层的存储,所以可存储的数据规模是巨大的,同时基于以下两个原语,Hudi 可以将流批一体的存储问题。
- Update/Delete 记录:Hudi 支持更新/删除记录,使用文件/记录级别索引,同时对写操作提供事务保证。查询可获取最新提交的快照来产生结果。
- Change Streams:支持增量获取表中所有更新/插入/删除的记录,从指定时间点开始进行增量查询,可以实现类似 Kafka 的增量消费机制。
Hudi 的重要概念
Timeline 时间线
Hudi 内部对每个表都维护了一个 Timeline,这个 Timeline 是由一组作用在某个表上的 In