更新时间:2024-04-30 GMT+08:00

Hudi用户接口

实时视图与增量视图查询

GaussDB(DWS)提供了类似spark-sql风格的表级参数,用于支持实时视图和增量视图。

具体参数说明如下,其中SCHEMA.FOREIGN_TABLE需要替换为实际的schema和外表名。

表1 实时视图与增量视图查询的参数

参数

取值

说明

hoodie.SCHEMA.FOREIGN_TABLE.consume.mode

SNAPSHOT

查询实时视图。

INCREMENTAL

查询增量视图。

hoodie.SCHEMA.FOREIGN_TABLE.consume. start.timestamp

hudi时间戳

指定增量同步的起始commit。

hoodie.SCHEMA.FOREIGN_TABLE.consume. ending.timestamp

hudi时间戳

指定增量同步的结束commit,不指定则采用最新commit。

  • 以上参数支持使用set命令设置,并且仅在当前SESSION中有效;使用reset命令恢复缺省值。
  • 可以通过系统函数pg_catalog.pg_show_custom_settings()来查询相关参数的设置详情。
  • 查询MOR表的增量视图时,需要使用where条件过滤_hoodie_commit_time字段,避免读取到未合并的不符合条件的log文件数据;COW表无需该操作。

Hudi外表信息查询与自动同步任务

GaussDB(DWS)提供一系列系统函数来实现Hudi外表信息获取、创建Hudi自动同步任务等功能。其中Hudi自动同步任务实现了从Hudi外表周期性同步数据到GaussDB(DWS)内表功能。

表2 Hudi系统函数

序号

名称

类型

功能

1

pg_show_custom_settings()

内置函数

查询HUDI外表参数设置详情。

2

hudi_get_options(regclass)

内置函数

查询HUDI外表的属性信息(hoodie.properties)。

3

hudi_get_max_commit(regclass)

内置函数

获取当前HUDI外表最新commit的时间戳。

4

hudi_sync_task_submit(regclass, regclass)

内置函数

提交HUDI自动同步任务。

hudi_sync_task_submit(regclass, regclass, text, text)

5

hudi_show_sync_state()

内置函数

获取HUDI自动同步任务的同步状态。

6

hudi_sync(regclass, regclass)

存储过程

HUDI自动同步任务调用入口。

7

hudi_sync_custom(regclass, regclass, text)

存储过程

HUDI自动同步任务调用入口,支持用户自定义目标表和数据源表的字段同步对应关系。

8

hudi_set_sync_commit(regclass, regclass, text)

内置函数

设置HUDI自动同步任务首次同步的起点时间戳,避免在已经同步了部分数据的情况下,重新同步已有数据。

hudi_set_sync_commit(text, text)

设置HUDI自动同步任务下一次同步的起点时间戳,可以用于重复同步历史数据或者跳过某些数据。