⌘+k ctrl+k
1.1.3 (stable)
Search Shortcut cmd + k | ctrl + k
Delta Extension

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

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

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

Installing and Loading

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

INSTALL delta;
LOAD delta;

Usage

要扫描本地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 Storage 存储桶中扫描 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');

特性

虽然delta扩展仍然是实验性的,但许多(扫描)功能和优化已经得到支持:

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

未来将发布更多优化。

支持的 DuckDB 版本和平台

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

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

  • Linux AMD64 (x86_64 和 ARM64): linux_amd64, linux_amd64_gcc4, 和 linux_arm64
  • macOS Intel 和 Apple Silicon: osx_amd64osx_arm64
  • Windows AMD64: windows_amd64

支持其他DuckDB平台的工作正在进行中。