Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Delta Lake テーブルエンジン

このエンジンは、S3、GCP、Azure ストレージ上の既存の Delta Lake テーブルとのインテグレーションを提供し、読み取りと書き込みの両方をサポートします (v25.10 以降) 。

Delta Lake テーブルを作成する

Delta Lake テーブルを作成するには、そのテーブルがあらかじめ S3、GCP、または Azure ストレージ上に存在している必要があります。以下のコマンドでは、新しいテーブルを作成するための DDL パラメータは指定できません。

構文

CREATE TABLE table_name
ENGINE = DeltaLake(url, [aws_access_key_id, aws_secret_access_key,] [extra_credentials])

エンジンパラメータ

  • url — 既存の Delta Lake テーブルへのパスを含むバケット URL。
  • aws_access_key_id, aws_secret_access_key - AWS アカウントユーザーの長期認証情報です。これらを使用してリクエストを認証できます。このパラメータは任意です。認証情報が指定されていない場合は、設定ファイルのものが使用されます。
  • extra_credentials - 任意。ClickHouse Cloud でロールベースアクセス用の role_arn を渡すために使用します。設定手順については、Secure S3 を参照してください。

エンジンパラメータは、名前付きコレクション を使用して指定することもできます。

CREATE TABLE deltalake
ENGINE = DeltaLake('http://mars-doc-test.s3.amazonaws.com/clickhouse-bucket-3/test_table/', 'ABC123', 'Abc+123')

名前付きコレクション を使用する場合:

<clickhouse>
    <named_collections>
        <deltalake_conf>
            <url>http://mars-doc-test.s3.amazonaws.com/clickhouse-bucket-3/</url>
            <access_key_id>ABC123</access_key_id>
            <secret_access_key>Abc+123</secret_access_key>
        </deltalake_conf>
    </named_collections>
</clickhouse>
CREATE TABLE deltalake
ENGINE = DeltaLake(deltalake_conf, filename = 'test_table')

Delta Lake テーブルを使用してデータを書き込む

Delta Lake テーブルエンジンを使用してテーブルを作成したら、次のようにデータを挿入できます。

SET allow_delta_lake_writes = 1;

INSERT INTO deltalake(id, firstname, lastname, gender, age)
VALUES (1, 'John', 'Smith', 'M', 32);

Delta Lake への書き込みは、既定では無効になっているベータ機能であり、SET allow_delta_lake_writes = 1; で有効にする必要があります (バージョン 26.7 以降で利用可能です。以前のバージョンでは SET allow_experimental_delta_lake_writes = 1; を使用してください)。

データキャッシュ

Delta Lake テーブルエンジンおよびテーブル関数は、S3AzureBlobStorageHDFS ストレージと同様に、データキャッシュをサポートしています。詳細は "S3テーブルエンジン" を参照してください。

関連項目

Navigation