⌘+k ctrl+k
1.4 (LTS)
搜索快捷键 cmd + k | ctrl + k
Delta 扩展

delta 扩展增加了对 Delta Lake 开源存储格式的支持。它是使用 Delta Kernel 构建的。该扩展为本地和远程的 Delta 表提供了读取支持以及有限的写入(盲插入)支持。

有关实现细节,请参阅发布博客文章

要连接到 Unity Catalog,DuckDB 还提供了 unity_catalog 扩展

安装和加载

delta 扩展在首次使用时会从官方扩展仓库自动加载。如果您想手动安装并加载它,请运行

INSTALL delta;
LOAD delta;

用法

要扫描本地 Delta 表,请运行

SELECT *
FROM delta_scan('file:///some/path/on/local/machine');

从 S3 存储桶读取

要扫描 S3 存储桶中的 Delta 表,请运行

SELECT *
FROM delta_scan('s3://some/delta/table');

对于 S3 存储桶的身份验证,DuckDB 支持使用 Secrets(密钥)

CREATE SECRET (
    TYPE s3,
    PROVIDER credential_chain
);
SELECT *
FROM delta_scan('s3://some/delta/table/with/auth');

要扫描 S3 上的公共存储桶,您可能需要通过创建包含公共 S3 存储桶所在区域的密钥来传入正确的区域

CREATE SECRET (
    TYPE s3,
    REGION 'my-region'
);
SELECT *
FROM delta_scan('s3://some/public/table/in/my-region');

从 Azure Blob 存储读取

要扫描 Azure Blob 存储桶中的 Delta 表,请运行

SELECT *
FROM delta_scan('az://my-container/my-table');

对于 Azure Blob 存储的身份验证,DuckDB 支持使用 Secrets(密钥)

CREATE SECRET (
    TYPE azure,
    PROVIDER credential_chain
);
SELECT *
FROM delta_scan('az://my-container/my-table-with-auth');

功能

此扩展支持许多功能/优化,因为它重用了 DuckDB 大部分常规 Parquet 扫描逻辑

  • 多线程扫描和 Parquet 元数据读取
  • 数据跳过/过滤条件下推
    • 跳过文件中的行组(基于 Parquet 元数据)
    • 跳过完整文件(基于 Delta 分区信息)
  • 投影下推
  • 盲插入 (Blind inserts)
  • 扫描带有删除向量 (Deletion Vectors) 的表
  • 所有原始类型
  • 结构体 (Structs)
  • VARIANT 类型支持
  • 支持通过密钥访问云存储 (AWS, Azure, GCP)

支持的 DuckDB 版本和平台

delta 扩展需要 DuckDB 0.10.3 或更高版本。

delta 扩展目前仅支持以下平台

  • Linux AMD64 (x86_64 和 ARM64): linux_amd64linux_arm64
  • macOS Intel 和 Apple Silicon: osx_amd64osx_arm64
  • Windows AMD64: windows_amd64

其他 DuckDB 平台的支持正在开发中。

© 2025 DuckDB 基金会,阿姆斯特丹,荷兰
行为准则 商标使用指南