读取Hudi数据概述
Hudi的读操作能够作用于其提供的三种视图之上,这三种视图分别是实时视图、增量视图和读优化视图。用户可以根据不同的需求选择合适的视图进行查询。
- 实时视图:实时视图提供了最新的数据状态,适用于需要快速访问最新数据的场景。它通过合并基础文件和增量日志文件来提供最新的数据记录,确保用户能够获取到最新的数据更新。
- 增量视图:增量视图用于捕获自上次查询以来的数据变更,包括新增、更新和删除操作。
- 读优化视图:读优化视图通过将数据存储在优化的列式文件格式中,如Parquet或ORC,以提高读取性能。这种视图适用于需要高效读取大量数据的批处理和分析场景。读优化视图通过减少I/O操作和提高数据压缩率,显著提升了查询性能,特别适合于大数据分析和报表生成。
通过灵活选择不同的视图,Hudi能够满足多样化的数据访问需求,提高数据处理的效率和准确性。
Hudi支持多种查询引擎Spark、Hive、HetuEngine,具体支持矩阵见表1和表2。
- 当前Hudi使用Spark datasource接口读取时,不支持分区推断能力。比如bootstrap表使用datasource接口查询时,可能出现分区字段不显示,或者显示为null的情况。
- 增量视图,需设置set hoodie.hudicow.consume.mode = INCREMENTAL;,但该参数仅限于增量视图查询,不能用于Hudi表的其他类型查询,和其他表的查询。 恢复配置可设置set hoodie.hudicow.consume.mode = SNAPSHOT;或任意值。