⌘+k ctrl+k
1.3 (稳定版)
搜索快捷键 cmd + k | ctrl + k
Delta 扩展

delta 扩展增加了对 Delta Lake 开源存储格式的支持。它使用 Delta Kernel 构建。此扩展为本地和远程的 Delta 表提供了 读取支持

有关实现细节,请参阅公告博客文章

警告:delta 扩展目前处于实验阶段,并且仅在给定平台上支持

安装和加载

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 密钥

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 密钥

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

功能

尽管 delta 扩展仍处于实验阶段,但许多(扫描)功能和优化已得到支持

  • 多线程扫描和 Parquet 元数据读取
  • 数据跳过/过滤器下推
    • 跳过文件中的行组(基于 Parquet 元数据)
    • 跳过完整文件(基于 Delta 分区信息)
  • 投影下推
  • 扫描带有删除向量的表
  • 所有基本类型
  • 结构体
  • 支持带密钥的 S3

未来将发布更多优化。

支持的 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 平台的支持正在进行中。