创建 DeltaLake 表
默认情况下,Delta Lake 表必须已存在于 S3、GCP 或 Azure 存储中,以下命令会在不提供 DDL 列定义的情况下附加到该表。设置allow_delta_lake_create_table = 1 后,对不含 _delta_log 的位置执行带显式列定义的 CREATE TABLE 会改为通过 delta-kernel-rs 写入初始提交以创建新的 Delta Lake 表 (尚不支持创建分区表) ;而在 Unity DataLakeCatalog 数据库中,该表还会注册到目录中。
- S3
- GCP
- Azure
语法引擎参数使用命名集合:
url— 指向现有 Delta Lake 表路径的存储桶 URL。aws_access_key_id,aws_secret_access_key- AWS 账户用户的长期凭证。可使用它们对请求进行身份验证。该参数为可选项。如果未指定凭证,则会从配置文件中读取。extra_credentials- 可选。用于传递role_arn,以便在 ClickHouse Cloud 中实现基于角色的访问。配置步骤请参见 Secure S3。
使用 DeltaLake 表写入数据
使用 DeltaLake 表引擎创建表后,可以通过以下方式向表中插入数据:SET allow_delta_lake_writes = 1; 启用 (自版本 26.7 起可用;在更早版本中请使用 SET allow_experimental_delta_lake_writes = 1;) 。
仅支持通过 delta kernel 向该表引擎写入数据。
支持向 S3 和 GCS 写入,自版本 26.9 起也支持向 Azure 写入。
delta kernel 不支持 Azure workload identity 身份验证 (
extra_credentials(client_id = ..., tenant_id = ...)) 。数据缓存
DeltaLake 表引擎和表函数支持数据缓存,与 S3、AzureBlobStorage 和 HDFS 存储相同。更多详情,请参见”S3 表引擎”。