跳转到主内容
跳转到主内容

Delta Lake 表引擎

此引擎与 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,])

引擎参数

  • url — 指向已有 Delta Lake 表的存储桶 URL(包含路径)。
  • aws_access_key_id, aws_secret_access_key - AWS 账户用户的长期凭证。可使用这些参数对请求进行身份验证。该参数为可选项。如果未指定凭证,将使用配置文件中的凭证。

可以使用命名集合来指定引擎参数。

示例

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 表引擎”

另请参阅