更新时间:2025-12-26 GMT+08:00
分享

读取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;或任意值。
表1 cow表

查询引擎

实时视图/读优化视图

增量视图

Hive

Y

Y

Spark(SparkSQL)

Y

Y

Spark(SparkDataSource API)

Y

Y

HetuEngine

Y

N

表2 mor表

查询引擎

实时视图

增量视图

读优化视图

Hive

Y

Y

Y

Spark(SparkSQL)

Y

Y

Y

Spark(SparkDataSource API)

Y

Y

Y

HetuEngine

Y

N

Y

相关文档