
# 读取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;**或任意值。
 表1cow表 
| 查询引擎                       | 实时视图/读优化视图 | 增量视图 |
|:---|:---|:---|
| Hive                       | Y          | Y    |
| Spark（SparkSQL）            | Y          | Y    |
| Spark（SparkDataSource API） | Y          | Y    |
| HetuEngine                 | Y          | N    |
   
 表2mor表 
| 查询引擎                       | 实时视图 | 增量视图 | 读优化视图 |
|:---|:---|:---|:---|
| Hive                       | Y    | Y    | Y     |
| Spark（SparkSQL）            | Y    | Y    | Y     |
| Spark（SparkDataSource API） | Y    | Y    | Y     |
| HetuEngine                 | Y    | N    | Y     |
   
