更新时间:2024-06-29 GMT+08:00
分享

Hudi外表查询

Hudi外表可以直接查询数据,默认查询实时视图;也可以通过设置增量查询参数实现增量视图查询。

增量查询

针对hudi增量查询功能,可以通过设置增量查询参数实现增量查询。

1
2
3
4
SET hoodie.SCHEMA.FOREIGN_TABLE.consume.mode=incremental;
SET hoodie.SCHEMA.FOREIGN_TABLE.consume.start.timestamp=起始时间戳;
SET hoodie.SCHEMA.FOREIGN_TABLE.consume.ending.timestamp=结束时间戳;
SELECT * FROM SCHEMA.FOREIGN_TABLE;

示例:

查询MOR hudi外表public.rtd_mfdt_int_currency_ft从20221207164617到20221207170234之间的增量数据。其中

1
2
3
4
SET hoodie.public.rtd_mfdt_int_currency_ft.consume.mode=incremental;
SET hoodie.public.rtd_mfdt_int_currency_ft.consume.start.timestamp=20221207164617;
SET hoodie.public.rtd_mfdt_int_currency_ft.consume.ending.timestamp=20221207170234;
SELECT * FROM public.rtd_mfdt_int_currency_ft where _hoodie_commit_time>20221207164617 and _hoodie_commit_time<=20221207170234;

查询已设置的增量参数

可以通过查询下面函数查看已经设置了哪些参数,检查是否设置正确。
1
SELECT * FROM pg_show_custom_settings();

查询hudi外表属性(hoodie.properties)

查询OBS上hudi数据的hoodie.properties:
1
SELECT * FROM hudi_get_options('SCHEMA.FOREIGN_TABLE');

示例:查询当前schema下的OBS外表rtd_mfdt_int_unit_ft的hudi属性:

1
SELECT * FROM hudi_get_options('rtd_mfdt_int_unit_ft');

查询hudi外表最大时间线

查询OBS上hudi数据最大时间线,即最新的提交记录:

1
SELECT * FROM hudi_get_max_commit('SCHEMA.FOREIGN_TABLE');

示例:查询当前schema下的OBS外表rtd_mfdt_int_unit_ft的最大时间线:

1
SELECT * FROM hudi_get_max_commit('rtd_mfdt_int_unit_ft');

相关文档