DuckDB
2024年06月03日, DuckDB 的版本1.0.0 正式发布
01.向后兼容: Backward Compatibility 这个功能确实很有存在的必要,毕竟要使用新的版本就要手动升级,着实有些耗费时间
02.duckdb的插件机制: 插件机制是个好东西,在系统在第一天设计的时候就做好抽象,怎么可以更好的把其他人的功能一起协作起来
易扩展--易沟通
03.使用 DuckDB 作为数据云的浏览器,关系数据集始终只需一个超链接即可
开放数据和协同工作
###参考
https://duckdb.org/2024/06/03/announcing-duckdb-100.html
duckbd 插件安装
不同的仓库 repositories
the default core repository which points to http://extensions.duckdb.org
the core_nightly repository
源码
01.原生插件 in-tree extensions
https://github.com/duckdb/duckdb/tree/main/extension
02.Out-of-Tree Extension
注册out of tree的扩展
03.其他插件
-unsigned flag to allow loading unsigned extensions
源码:ExtensionUtil 在这里面扮演了很重要的角色。ExtensionUtil 支持注册普通函数、聚合函数、Table 函数
RegisterSubSystem-Duckdb 对文件系统也做了抽象,方便插件化。filesystem 支持、文件格式支持
系统函数 PragmaFunction
每日构建(Nightly Build,也叫Daily Build), 是将一个软件项目的所有最新代码取出,从头开始编译,链接,运行测试软件包对代码进行单元测试
Nightly版本 开发版 Nightly Build
nightly版本库 bleeding edge 最前沿
动态加载
dynamically loading extensions
在线安装
INSTALL extension_name; 或者 FORCE INSTALL extension_name;
INSTALL spatial;
或者
FORCE INSTALL spatial FROM core_nightly;
官方插件 official extensions
自动加载和手动加载
Autoloadable
默认加载
离线安装插件 install the resulting binaries manually.
https://duckdb.org/docs/extensions/working_with_extensions.html#installing-extensions-from-an-explicit-path
DuckDB扩展是使用gzip格式压缩的,如果你想手动下载它们,你需要先解压缩它们,然后才能加载它们
安装格式 1. .duckdb_extension file 例如: spatial.duckdb_extension
.duckdb_extension.gz 这格式需要解压-gzip格式压缩,里面是.duckdb_extension 文件
downloaded the extension for your platform :
linux_amd64_gcc4 Linux AMD64 (Python packages, CLI, etc.)
https://extensions.duckdb.org/v0.9.2/windows_amd64/httpfs.duckdb_extension.gz
https://extensions.duckdb.org/v0.9.2/windows_amd64/spatial.duckdb_extension.gz
duckdb -unsigned -s "LOAD './zig-out/lib/quack.duckdb_extension';"
源码构建时安装
the extensions
CMake (3.20) and a C++11 compatible compiler.
加载
安装后可以直接加载
不安装需要给出加载的地址: Loading Extension from a Path
查看插件
SELECT extension_name, installed, description FROM duckdb_extensions();
参考
https://duckdb.org/docs/extensions/official_extensions
https://github.com/duckdb/duckdb_spatial
https://github.com/duckdb/duckdb_spatial/releases