# Hudi用户接口
#### 实时视图与增量视图查询
DWS提供了类似spark-sql风格的表级参数，用于支持实时视图和增量视图。
具体参数说明如下，其中SCHEMA.FOREIGN_TABLE需要替换为实际的schema和外表名。
表1实时视图与增量视图查询的参数 
| 参数                                                      | 取值      | 说明                               |
|:---|:---|:---|
| hoodie.SCHEMA.FOREIGN_TABLE.consume.mode                | SNAPSHOT | 查询实时视图。                          |
| hoodie.SCHEMA.FOREIGN_TABLE.consume.mode                | INCREMENTAL | 查询增量视图。                           |
| hoodie.SCHEMA.FOREIGN_TABLE.consume. start.timestamp    | hudi时间戳   | 指定增量同步的起始commit。               |
| hoodie.SCHEMA.FOREIGN_TABLE.consume. ending.timestamp | hudi时间戳 | 指定增量同步的结束commit，不指定则采用最新commit。 |
   
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
- 以上参数支持使用set命令设置，并且仅在当前SESSION中有效。可使用reset命令恢复缺省值。
- 可以通过系统函数pg_catalog.pg_show_custom_settings()来查询相关参数的设置详情。
- 查询MOR表的增量视图时，需要使用where条件过滤_hoodie_commit_time字段，避免读取到未合并的不符合条件的log文件数据。COW表无需该操作。
 
#### Hudi外表信息查询与自动同步任务
DWS提供一系列系统函数来实现Hudi外表信息获取、创建Hudi自动同步任务等功能。其中，Hudi自动同步任务实现了从Hudi外表周期性同步数据到DWS内表功能。
表2Hudi系统函数 
| 名称                                                   | 类型      | 功能                                                  |
|:---|:---|:---|
| pg_show_custom_settings()                            | 内置函数  | 查询Hudi外表参数设置详情。                                   |
| hudi_get_options(regclass)                            | 内置函数   | 查询Hudi外表的属性信息（hoodie.properties）。                 |
| hudi_get_max_commit(regclass)                       | 内置函数    | 获取当前Hudi外表最新commit的时间戳。                            |
| hudi_sync_task_submit(regclass, regclass)            | 内置函数 | 提交Hudi自动同步任务。                                       |
| hudi_sync_task_submit(regclass, regclass, text, text) | 内置函数 | 提交Hudi自动同步任务。                                       |
| hudi_show_sync_state()                              | 内置函数   | 获取Hudi自动同步任务的同步状态。                                  |
| hudi_sync(regclass, regclass)                       | 存储过程    | Hudi自动同步任务调用入口。                                   |
| hudi_sync_custom(regclass, regclass, text)           | 存储过程  | Hudi自动同步任务调用入口，支持用户自定义目标表和数据源表的字段同步对应关系。          |
| hudi_set_sync_commit(regclass, regclass, text)      | 内置函数   | 设置Hudi自动同步任务首次同步的起点时间戳，避免在已经同步了部分数据的情况下，重新同步已有数据。 |
| hudi_set_sync_commit(text, text)                      | 内置函数   | 设置Hudi自动同步任务下一次同步的起点时间戳，可以用于重复同步历史数据或者跳过某些数据。     |
   
