メインコンテンツまでスキップ
に最終更新

Kudu Catalog

概要​

Kudu Catalog は、Trino Kudu Connector を使用し、Trino Connector の互換性フレームワークを通じて Kudu テーブルにアクセスします。

注記
  • これは実験的な機能で、バージョン 3.0.1 以降でサポートされています。
  • この機能は Trino クラスター環境に依存せず、Trino 互換プラグインのみを使用します。

ユースケース​

シナリオ対応状況
データ統合Kudu のデータを読み取り、Doris の内部テーブルに書き込む
データの書き戻しサポートされていません

バージョンの互換性​

  • Doris のバージョン: 3.0.1 以降
  • Trino Connector のバージョン: 435
  • Kudu のバージョン: サポート対象のバージョンについては、Trino のドキュメントを参照してください。

クイックスタート​

ステップ 1: Connector プラグインの準備​

Kudu Connector プラグインは、次のいずれかの方法で入手できます。

方法 1: ビルド済みパッケージを使用する(推奨)

こちらからビルド済みのプラグインパッケージをダウンロードし、展開します。

方法 2: 手動でビルドする

カスタムビルドが必要な場合は、次の手順に従ってください(JDK 17 が必要です)。

git clone https://github.com/apache/doris-thirdparty.git
cd doris-thirdparty
git checkout trino-435
cd plugin/trino-kudu
mvn clean package -Dmaven.test.skip=true

ビルド後、trino-kudu-435/ ディレクトリが trino/plugin/trino-kudu/target/ に生成されます。

ステップ 2: プラグインの配置​

  1. trino-kudu-435/ ディレクトリを、すべての FE および BE のデプロイ先にある connectors/ ディレクトリの下に配置します(ディレクトリが存在しない場合は手動で作成してください)。

    ├── bin
    ├── conf
    ├── plugins
    │ ├── connectors
    │ ├── trino-kudu-435
    ...

    trino_connector_plugin_dir 設定を fe.conf で変更して、プラグインのパスをカスタマイズすることもできます。例: trino_connector_plugin_dir=/path/to/connectors/

  2. Connector が正しく読み込まれるように、すべての FE および BE ノードを再起動します。

ステップ 3: Catalog の作成​

基本設定(認証なし)

CREATE CATALOG kudu_catalog PROPERTIES (
'type' = 'trino-connector',
'trino.connector.name' = 'kudu',
'trino.kudu.client.master-addresses' = 'ip1:port1,ip2:port2,ip3:port3',
'trino.kudu.authentication.type' = 'NONE'
);

Kerberos 認証の設定

CREATE CATALOG kudu_catalog PROPERTIES (
'type' = 'trino-connector',
'trino.connector.name' = 'kudu',
'trino.kudu.client.master-addresses' = 'ip1:port1,ip2:port2,ip3:port3',
'trino.kudu.authentication.type' = 'KERBEROS',
'trino.kudu.authentication.client.principal' = 'user@DOMAIN.COM',
'trino.kudu.authentication.client.keytab' = '/path/to/kudu.keytab',
'trino.kudu.authentication.config' = '/etc/krb5.conf',
'trino.kudu.authentication.server.principal.primary' = 'kudu'
);

ステップ 4: データのクエリ​

Catalog の作成後、次の三つの方法のいずれかで Kudu テーブルのデータをクエリできます。

-- Method 1: Query after switching to Catalog
SWITCH kudu_catalog;
USE kudu_db;
SELECT * FROM kudu_tbl LIMIT 10;

-- Method 2: Use two-level path
USE kudu_catalog.kudu_db;
SELECT * FROM kudu_tbl LIMIT 10;

-- Method 3: Use fully qualified name
SELECT * FROM kudu_catalog.kudu_db.kudu_tbl LIMIT 10;

設定​

Catalog の設定パラメータ​

Kudu Catalog を作成する際の基本構文は次のとおりです。

CREATE CATALOG [IF NOT EXISTS] catalog_name PROPERTIES (
'type' = 'trino-connector', -- Required, fixed value
'trino.connector.name' = 'kudu', -- Required, fixed value
{TrinoProperties}, -- Trino Connector related properties
{CommonProperties} -- Common properties
);

TrinoProperties パラメータ​

TrinoProperties は、trino. で始まる Trino Kudu Connector 固有のプロパティの設定に使用します。主なパラメータは次のとおりです。

パラメータ名必須デフォルト値説明
trino.kudu.client.master-addressesはい-Kudu Master ノードのアドレス一覧
trino.kudu.authentication.typeいいえNONE認証タイプ: NONE または KERBEROS
trino.kudu.authentication.client.principalいいえ-Kerberos クライアントのプリンシパル
trino.kudu.authentication.client.keytabいいえ-Kerberos キータブファイルのパス
trino.kudu.authentication.configいいえ-Kerberos 設定ファイルのパス
trino.kudu.authentication.server.principal.primaryいいえ-Kudu サーバーのプリンシパルのプレフィックス

Kudu Connector のその他の設定パラメータについては、Trino の公式ドキュメントを参照してください。

CommonProperties パラメータ​

CommonProperties は、メタデータの更新ポリシーやアクセス制御など、Catalog の共通プロパティの設定に使用します。詳細については、Catalog の概要の「共通プロパティ」セクションを参照してください。

データ型のマッピング​

Kudu Catalog を使用する場合、データ型は次の規則に従ってマッピングされます。

Kudu の型Trino の型Doris の型備考
booleanbooleanboolean
int8tinyinttinyint
int16smallintsmallint
int32integerint
int64bigintbigint
floatrealfloat
doubledoubledouble
decimal(P, S)decimal(P, S)decimal(P, S)
binaryvarbinarystringTrino と同じ表示結果を得るには、HEX(col) 関数を使用してクエリする
stringvarcharstring
datedatedate
unixtime_microstimestamp(3)datetime(3)
otherUNSUPPORTED-サポートされていない型
ヒント

binary 型を十六進数形式で表示するには、HEX() 関数で列名を囲みます。例: SELECT HEX(binary_col) FROM table。