このエンジンは、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')構文
-- HTTPS URL を使用する(推奨)
CREATE TABLE table_name
ENGINE = DeltaLake('https://storage.googleapis.com/<bucket>/<path>/', '<access_key_id>', '<secret_access_key>')引数
url— Delta Lake テーブルへの GCS バケット URL。https://storage.googleapis.com/<bucket>/<path>/形式 (GCS XML API エンドポイント) 、または自動変換されるgs://<bucket>/<path>/を使用する必要があります。access_key_id— GCS Access Key。Google Cloud Console → Cloud Storage → Settings → Interoperability で作成します。secret_access_key— GCS のシークレット。
名前付きコレクション
名前付きコレクションも使用できます。 たとえば:
CREATE NAMED COLLECTION gcs_creds AS
access_key_id = '<access_key>',
secret_access_key = '<secret>';
CREATE TABLE gcpDeltaLake
ENGINE = DeltaLake(gcs_creds, url = 'https://storage.googleapis.com/<bucket>/<path>')構文
CREATE TABLE table_name
ENGINE = DeltaLake(connection_string|storage_account_url, container_name, blobpath, [account_name, account_key, format, compression])引数
connection_string— Azure の接続文字列storage_account_url— Azure ストレージアカウントの URL (例: https://account.blob.core.windows.net)container_name— Azure コンテナー名blobpath— コンテナー内の Delta Lake テーブルへのパスaccount_name— Azure ストレージアカウント名account_key— Azure ストレージアカウント キー
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 テーブルエンジンおよびテーブル関数は、S3、AzureBlobStorage、HDFS ストレージと同様に、データキャッシュをサポートしています。詳細は "S3テーブルエンジン" を参照してください。