Apache Hudi是一种开源的数据湖表格式框架。Hudi基于对象存储或者Hdfs组织文件布局,保证ACID,支持行级别的高效更新和删除,从而降低数据ETL开发门槛。同时该框架支持自动管理及合并小文件,保持指定的文件大小,从而在处理数据插入和更新时,不会创建过多的小文件,引发查询端性能降低,避免手动监控和重写小文件的运维负担。结合Flink、Presto、Spark等计算引擎进行数据入湖和计算分析,常用来支持DB入湖加速、增量数据实时消费和数仓回填等需求。
1.2 Hudi特性支持ACID:支持ACID语义,提供事务的线性隔离级别。
Hudi 的核心是维护timeline在不同时间对表执行的所有操作,instants这有助于提供表的即时视图,同时还有效地支持按到达顺序检索数据。Hudi Instant 由以下组件组成
Instant action:在表上执行的操作类型Instant time:即时时间通常是一个时间戳(例如:20190117010349),它按照动作 (action)开始时间的顺序单调递增。state: 时刻(事件)的当前状态
Hudi 保证在时间轴上执行的动作是原子的并且基于即时时间的时间轴是一致的。
action的主要操作包括:commits:表示将一批记录原子写入表中。cleans:清除表中不再需要的旧版本文件的后台活动。



