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.metadata-table-enabled

ファイル名とサイズのリストをストレージではなく、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)