数据湖是近几年来比较热门的一个话题,把这块的内容也加入这个专栏的目的想传达的一个信息,程序员需要对新技术框架有敏锐感知能力,也需要保持一颗好奇心,因为技术肯定是会一直迭代发展的,这一点毫无疑问,所以我们也需要不停地迭代自己的知识,跟上时代的步伐。另外,如果你的简历上有一个新技术的实践经验,这也可以是你的一个加分项。本篇是基于数据湖的具体实现之一 Apache Hudi 来讲解相关内容。
本篇面试内容划重点:表类型(COW、MOR)、查询类型(视图)。
Apache Hudi 依赖于 HDFS 做底层的存储,所以可存储的数据规模是巨大的,同时基于以下两个原语,Hudi 可以将流批一体的存储问题。
- Update/Delete 记录:Hudi 支持更新/删除记录,使用文件/记录级别索引,同时对写操作提供事务保证。查询可获取最新提交的快照来产生结果。
- Change Streams:支持增量获取表中所有更新/插入/删除的记录,从指定时间点开始进行增量查询,可以实现类似 Kafka 的增量消费机制。
Hudi 的重要概念
Timeline 时间线
Hudi 内部对每个表都维护了一个 Timeline,这个 Timeline 是由一组作用在某个表上的 Instant(时刻)对象组成。Instant 表示在某个时间点对表进行操作的,从而达到某一个状态的表示,所以 Instant 包含 Instant Action,Instant Time 和 Instant State 这三个内容,它们的含义如下所示:
- Instant Action:对 H
本文深入解析Apache Hudi数据湖技术,包括Hudi的重要概念如Timeline、索引、表类型(Copy-On-Write, Merge-On-Read)及查询类型。Hudi依赖HDFS存储,支持Update/Delete记录和Change Streams,提供流批一体存储解决方案。文章还介绍了Hudi的索引类型(HBASE, INMEMORY, BLOOM)及其优缺点,以及表类型的详细运作机制和查询方式。"
79298866,7465706,Java接口深入解析,"['Java接口', '面向对象', '编程概念']
订阅专栏 解锁全文

332

被折叠的 条评论
为什么被折叠?



