⌘+k ctrl+k
1.1.3 (stable)
Search Shortcut cmd + k | ctrl + k
Community Extensions

DuckDB 最近推出了一个社区扩展仓库。 详情请参阅公告博客文章

用户体验

我们将使用h3扩展作为我们的示例。 这个扩展实现了层次六边形索引用于地理空间数据。

使用DuckDB社区扩展仓库,您可以按照以下方式安装并加载h3扩展:

INSTALL h3 FROM community;
LOAD h3;

然后,您可以立即开始使用它。请注意,示例数据为500 MB:

SELECT
    h3_latlng_to_cell(pickup_latitude, pickup_longitude, 9) AS cell_id,
    h3_cell_to_boundary_wkt(cell_id) AS boundary,
    count() AS cnt
FROM read_parquet('https://blobs.duckdb.org/data/yellow_tripdata_2010-01.parquet')
GROUP BY cell_id
HAVING cnt > 10;

加载时,会检查扩展的签名,以确保平台和版本兼容,并验证二进制文件的来源是社区扩展仓库。扩展是为Linux、macOS、Windows和WebAssembly构建、签名和分发的。这使得任何使用1.0.0版本及未来版本的DuckDB客户端都可以使用这些扩展。

有关更多详细信息,请参阅h3 扩展的文档

开发者体验

从开发者的角度来看,社区扩展仓库执行发布扩展所需的步骤,包括为所有相关的平台构建扩展、对扩展二进制文件进行签名以及从仓库中提供它们。

对于h3的维护者,发布过程需要执行以下步骤:

  1. 发送一个包含元数据文件 description.yml 的 PR,该文件包含扩展的描述:

    extension:
      name: h3
      description: Hierarchical hexagonal indexing for geospatial data
      version: 1.0.0
      language: C++
      build: cmake
      license: Apache-2.0
      maintainers:
        - isaacbrodsky
    
    repo:
      github: isaacbrodsky/h3-duckdb
      ref: 3c8a5358e42ab8d11e0253c70f7cc7d37781b2ef
    
  2. CI 将构建并测试扩展。CI 执行的检查与 extension-template 仓库 保持一致,因此可以独立进行迭代。

  3. 等待DuckDB社区扩展仓库维护者的批准以及构建过程完成。

安全考虑

详情请参阅Securing Extensions页面

社区扩展列表

请参阅DuckDB社区扩展库网站