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
的维护者,发布过程需要执行以下步骤:
-
发送一个包含元数据文件
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
-
CI 将构建并测试扩展。CI 执行的检查与
extension-template
仓库 保持一致,因此可以独立进行迭代。 -
等待DuckDB社区扩展仓库维护者的批准以及构建过程完成。
安全考虑
详情请参阅Securing Extensions页面。
社区扩展列表
请参阅DuckDB社区扩展库网站。