Hudi 连接器¶
概述¶
Hudi 连接器支持查询已同步到 Hive 元存储的 Hudi 表格。连接器仅使用元存储来跟踪分区位置。它利用底层的 Hudi 文件系统和输入格式来列出数据文件。要详细了解连接器的设计,请查看 RFC-40。
需求¶
要使用 Hudi,我们需要
Presto 协调器和工作器到分布式对象存储的网络访问。
访问 Hive 元存储服务 (HMS)。
Presto 协调器到 HMS 的网络访问。使用 Thrift 协议的 Hive 元存储访问默认使用端口 9083。
配置¶
Hudi 支持与 Hive 连接器相同的元存储配置属性。至少,以下连接器属性必须设置在 <presto_install_dir> /etc/catalog 目录中的 hudi.properties 文件中
connector.name=hudi
hive.metastore.uri=thrift://hms.host:9083
此外,可以根据用例设置以下会话属性。
属性名称 |
描述 |
默认值 |
---|---|---|
|
从 Hudi 的元数据表而不是存储中获取文件名和大小列表。 |
false |
SQL 支持¶
目前,连接器仅提供对已同步到 Hive 元存储的 Hudi 表格中数据的读取访问权限。一旦目录已如上所述配置,用户就可以像 Hive 表格一样查询表格。
支持的查询类型¶
表格类型 |
支持的查询类型 |
---|---|
写入时复制 |
快照查询 |
读时合并 |
快照查询 + 读取优化查询 |
示例查询¶
stock_ticks_cow 是我们在 Hudi 快速入门 文档中用于创建的 Hudi cow 表格。
以下是一些示例查询
USE hudi.default;
select symbol, max(ts) from stock_ticks_cow group by symbol HAVING symbol = 'GOOG';
symbol | _col1 |
-----------+----------------------+
GOOG | 2018-08-31 10:59:00 |
(1 rows)
select dt, symbol from stock_ticks_cow where symbol = 'GOOG';
dt | symbol |
------------+--------+
2018-08-31 | GOOG |
(1 rows)
select dt, count(*) from stock_ticks_cow group by dt;
dt | _col1 |
------------+--------+
2018-08-31 | 99 |
(1 rows)