跳转到主要内容
该引擎可与 S3、GCP 和 Azure 存储中现有的 Delta Lake 表集成,并支持读写 (自 v25.10 起) 。

创建 DeltaLake 表

要创建 DeltaLake 表,该表必须已存在于 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 - 可选。用于传递 role_arn,以便在 ClickHouse Cloud 中实现基于角色的访问。配置步骤请参见 Secure S3
引擎参数也可以通过 Named Collections 指定。示例
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')

使用 DeltaLake 表写入数据

使用 DeltaLake 表引擎创建表后,可以通过以下方式向表中插入数据:
SET allow_experimental_delta_lake_writes = 1;

INSERT INTO deltalake(id, firstname, lastname, gender, age)
VALUES (1, 'John', 'Smith', 'M', 32);
仅支持通过 delta kernel 向该表引擎写入数据。 目前尚不支持向 Azure 写入,但支持 S3 和 GCS。

数据缓存

DeltaLake 表引擎和表函数支持数据缓存,与 S3AzureBlobStorageHDFS 存储相同。更多详情,请参见”S3 表引擎”

另请参阅

最后修改于 2026年6月10日