Hudi
按照我的理解,我们一般所说的 MOR 与 Hudi 中的 MOR 不同,我们强调的是 query,而 Hudi 中指的是 table type。Hudi 中真正对应的我们的是视图(query type) 中的近实时视图(Snapshot Queries):
在此视图上的查询将查看某个增量提交操作中数据集的最新快照。该视图通过动态合并最新的基本文件(例如parquet)和增量文件(例如avro)来提供近实时数据集(几分钟的延迟)。
当前支持 Hudi 近实时视图的查询引擎如下图
Hudi 实时视图相关逻辑
实现类:HoodieRealtimeRecordReader -> RealtimeCompactedRecordReader
我们可以从 testReaderWithNestedAndComplexSchema() 这个测试方法中看到完整的 Snapshot Queries 的过程:
- 构建 HoodieRealtimeFileSplit,其中包含了 baseFilePath 、logFil