Hudi 連接器¶
概觀¶
Hudi 連接器可查詢同步至 Hive Metastore 的 Hudi 表格。此連接器僅使用 Metastore 來追蹤分割區位置。它會使用底層的 Hudi 檔案系統和輸入格式來列出資料檔案。若要深入了解連接器的設計,請查看 RFC-40。
需求¶
若要使用 Hudi,我們需要:
Presto 協調器和工作節點與分散式物件儲存之間的網路存取權。
存取 Hive Metastore 服務 (HMS)。
從 Presto 協調器到 HMS 的網路存取權。使用 Thrift 通訊協定的 Hive Metastore 存取預設使用連接埠 9083。
設定¶
Hudi 支援與 Hive 連接器相同的 Metastore 設定屬性。至少,必須在 <presto_install_dir>/etc/catalog 目錄內的 hudi.properties 檔案中設定以下連接器屬性:
connector.name=hudi
hive.metastore.uri=thrift://hms.host:9083
此外,可以根據使用案例設定以下工作階段屬性。
屬性名稱 |
描述 |
預設值 |
---|---|---|
|
從 Hudi 的中繼資料表而非儲存體擷取檔案名稱和大小的清單。 |
false |
SQL 支援¶
目前,連接器僅提供對同步至 Hive Metastore 的 Hudi 表格中資料的讀取權限。如上所述設定目錄後,使用者可以像 Hive 表格一樣正常查詢表格。
支援的查詢類型¶
表格類型 |
支援的查詢類型 |
---|---|
複製時寫入 (Copy On Write) |
快照查詢 |
合併時讀取 (Merge On Read) |
快照查詢 + 讀取最佳化查詢 |
範例查詢¶
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)