1 时间线
Hudi内部维护了一条在表上执行动作的时间线timeline。每个时刻instant提供表的一个即时视图,同时方便按照抵达顺序获取数据。
每个时刻包含以下组建:
Instant action
: 执行动作类型Instant time
: 动作开始时间戳,如20190117010349state
: 当前状态
Hudi保证时间线上动作的原子性和时间一致性。
主要动作类型:
COMMITS
原子写CLEANS
-后台清理旧版本文件DELTA_COMMIT
原子性、增量地写入 MergeOnRead表COMPACTION
后台统一内部数据结构。内部通常在时间线上表示为一种特殊的提交。ROLLBACK
回滚SAVEPOINT
快照
状态:
REQUESTED
已调度动作,但尚未初始化INFLIGHT
执行动作中COMPLETED
完成执行动作
左侧方框表示插入更新的数据抵达时间在10:00-10:20之间。
下方流水线表示每各5分钟提交一次,期间伴有后台清理和压缩。左侧数据的提交时间是10:20。
中间的图示表示数据分桶从07:00开始,每小时分桶。
迟到的数据会增量更新到对应的数据分桶中,这样可以更加高效地查询数据。