メインコンテンツまでスキップ
バージョン: 26.x

Delta Lake カタログ

Delta Lake CatalogはTrino Connector互換性フレームワークを使用して、Delta Lake Connectorを通じてDelta LakeTableにアクセスします。

注記

この機能は実験的であり、バージョン3.0.1以降でサポートされています。

適用シナリオ​

シナリオ説明
データ統合Delta Lakeデータを読み取り、Doris内部Tableに書き込みます。
データ書き戻しサポートされていません。

環境準備​

Delta Lake Connectorプラグインのコンパイル​

JDK 17が必要です。

$ git clone https://github.com/apache/doris-thirdparty.git
$ cd doris-thirdparty
$ git checkout trino-435
$ cd plugin/trino-delta-lake
$ mvn clean install -DskipTest
$ cd ../../lib/trino-hdfs
$ mvn clean install -DskipTest

コンパイル後、trino/plugin/trino-delta-lake/target/ の下に trino-delta-lake-435 ディレクトリが、trino/lib/trino-hdfs/target/ の下に hdfs ディレクトリが見つかります。

また、事前にコンパイルされた trino-delta-lake-435-20240724.tar.gz と hdfs.tar.gz を直接ダウンロードして展開することもできます。

Delta Lake Connectorのデプロイ​

すべてのFEおよびBEのデプロイパスの connectors/ ディレクトリに trino-delta-lake-435/ ディレクトリを配置し(存在しない場合は手動で作成できます)、hdfs.tar.gz を trino-delta-lake-435/ ディレクトリに展開してください。

├── bin
├── conf
├── connectors
│ ├── trino-delta-lake-435
│ │ ├── hdfs
...

デプロイ後は、Connectorが正しくロードされることを保証するために、FEおよびBEノードを再起動することを推奨します。

Catalogの設定​

構文​

CREATE CATALOG [IF NOT EXISTS] catalog_name
PROPERTIES (
'type' = 'trino-connector', -- required
'trino.connector.name' = 'delta_lake', -- required
{TrinoProperties},
{CommonProperties}
);
  • {TrinoProperties}

    TrinoPropertiesセクションは、Trino Connectorに渡されるプロパティを指定するために使用されます。これらのプロパティはtrino.プレフィックスを使用します。理論的には、Trinoでサポートされているすべてのプロパティもここでサポートされています。Delta Lakeの詳細については、Trino ドキュメントを参照してください。

  • [CommonProperties]

    CommonPropertiesセクションは、一般的なプロパティを指定するために使用されます。"Common Properties"セクションの下のカタログ 概要を参照してください。

サポートされているDelta Lakeバージョン​

Delta Lakeの詳細については、Trino ドキュメントを参照してください。

サポートされているメタデータサービス​

Delta Lakeの詳細については、Trino ドキュメントを参照してください。

サポートされているストレージシステム​

Delta Lakeの詳細については、Trino ドキュメントを参照してください。

カラム型マッピング​

Delta Lake タイプTrino タイプDoris タイプComment
booleanbooleanboolean
intintint
bytetinyinttinyint
shortsmallintsmallint
longbigintbigint
floatrealfloat
doubledoubledouble
decimal(P, S)decimal(P, S)decimal(P, S)
stringvarcharstring
bianryvarbinarystring
datedatedate
timestamp_ntztimestamp(N)datetime(N)
timestamptimestamp with time zone(N)datetime(N)
arrayarrayarray
mapmapmap
structrowstruct

例​

CREATE CATALOG delta_lake_hms properties ( 
'type' = 'trino-connector',
'trino.connector.name' = 'delta_lake',
'trino.hive.metastore' = 'thrift',
'trino.hive.metastore.uri'= 'thrift://ip:port',
'trino.hive.config.resources'='/path/to/core-site.xml,/path/to/hdfs-site.xml'
);

Query 運用​

Catalogを設定した後、以下の方法を使用してCatalog内のTableデータをクエリできます:

-- 1. Switch to the catalog, use the database, and query
SWITCH delta_lake_ctl;
USE delta_lake_db;
SELECT * FROM delta_lake_tbl LIMIT 10;

-- 2. Use the Delta Lake database directly
USE delta_lake_ctl.delta_lake_db;
SELECT * FROM delta_lake_tbl LIMIT 10;

-- 3. Use the fully qualified name to query
SELECT * FROM delta_lake_ctl.delta_lake_db.delta_lake_tbl LIMIT 10;