Kudu カタログ
Kudu カタログ は Trino Connector 互換性フレームワークを使用して、Kudu Connector を通じて Kudu Tableにアクセスします。
この機能は実験的であり、バージョン 3.0.1 以降でサポートされています。
適用シナリオ
| シナリオ | 説明 |
|---|---|
| データ統合 | Kudu データを読み取り、Doris 内部Tableに書き込みます。 |
| データライトバック | サポートされていません。 |
環境準備
Kudu Connector Plugin のコンパイル
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/plugin/trino-kudu/target/ ディレクトリに trino-kudu-435 フォルダが含まれます。
また、事前にコンパイル済みの trino-kudu-435-20240724.tar.gz を直接ダウンロードして展開することもできます。
Kudu Connector のデプロイ
すべてのFEおよびBEノードのデプロイメントパスの connectors/ ディレクトリに trino-kudu-435/ ディレクトリを配置してください。(ディレクトリが存在しない場合は、手動で作成できます。)
├── bin
├── conf
├── connectors
│ ├── trino-kudu-435
...
デプロイメント後、Connectorが正しく読み込まれることを確認するため、FEおよびBEノードを再起動することを推奨します。
Catalogの設定
構文
CREATE CATALOG [IF NOT EXISTS] catalog_name PROPERTIES (
'type' = 'trino-connector', -- required
'trino.connector.name' = 'kudu', -- required
{TrinoProperties},
{CommonProperties}
);
-
{TrinoProperties}TrinoPropertiesセクションは、Trino Connectorに渡されるプロパティを指定するために使用されます。これらのプロパティにはtrino.のプレフィックスが付きます。理論上、Trinoでサポートされているすべてのプロパティがここでもサポートされています。Kuduプロパティの詳細については、Trinoドキュメントを参照してください。 -
[CommonProperties]CommonPropertiesセクションは、一般的なプロパティを指定するために使用されます。「Common Properties」セクション配下のカタログ 概要を参照してください。
サポートされているKuduバージョン
Kuduの詳細については、Trinoドキュメントを参照してください。
サポートされているMetadataサービス
Kuduの詳細については、Trinoドキュメントを参照してください。
サポートされているストレージシステム
Kuduの詳細については、Trinoドキュメントを参照してください。
カラム型マッピング
| Kudu タイプ | Trino タイプ | Doris タイプ | Comment |
|---|---|---|---|
| boolean | boolean | boolean | |
| int8 | tinyint | tinyint | |
| int16 | smallint | smallint | |
| int32 | integer | int | |
| int64 | bigint | bigint | |
| float | real | float | |
| double | double | double | |
| decimal(P, S) | decimal(P, S) | decimal(P, S) | |
| binary | varbinary | string | Trinoと同じように表示される結果を返すには、クエリでHEX(col)を使用する必要があります。 |
| string | varchar | string | |
| date | date | date | |
| unixtime_micros | timestamp(3) | datetime(3) | |
| other | UNSUPPORTED |
例
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'
);
Query 運用
Catalogを設定した後、以下の方法を使用してCatalog内のTableデータをクエリできます:
-- 1. switch to catalog, use database and query
SWITCH kudu_ctl;
USE kudu_db;
SELECT * FROM kudu_tbl LIMIT 10;
-- 2. use kudu database directly
USE kudu_ctl.kudu_db;
SELECT * FROM kudu_tbl LIMIT 10;
-- 3. use full qualified name to query
SELECT * FROM kudu_ctl.kudu_db.kudu_tbl LIMIT 10;