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)