duckdb_fdw
DuckDB 外部数据源包装器
仓库
alitrack/duckdb_fdw
https://github.com/alitrack/duckdb_fdw
源码
duckdb_fdw-1.1.3.tar.gz
duckdb_fdw-1.1.3.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
duckdb_fdw | 1.1.2 | OLAP | MIT | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 2470 | duckdb_fdw | 否 | 是 | 否 | 是 | 否 | 是 | - |
| 相关扩展 | pg_analytics pg_duckdb pg_mooncake pg_parquet wrappers citus_columnar columnar citus |
|---|
conflict on libduckdb with pg_duckdb
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.1.2 | 1817161514 | duckdb_fdw | - |
| RPM | PIGSTY | 1.1.2 | 1817161514 | duckdb_fdw_$v | libduckdb |
| DEB | PIGSTY | 1.1.2 | 1817161514 | postgresql-$v-duckdb-fdw | libduckdb |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY MISS | PIGSTY 1.1.2 el8.x86_64.pg17 : duckdb_fdw_17 duckdb_fdw_17-1.1.2-1PIGSTY.el8.x86_64.rpm
| PIGSTY 1.1.2 el8.x86_64.pg16 : duckdb_fdw_16 duckdb_fdw_16-1.1.2-1PIGSTY.el8.x86_64.rpm
| PIGSTY 1.1.2 el8.x86_64.pg15 : duckdb_fdw_15 duckdb_fdw_15-1.1.2-1PIGSTY.el8.x86_64.rpm
| PIGSTY 1.1.2 el8.x86_64.pg14 : duckdb_fdw_14 duckdb_fdw_14-1.1.2-1PIGSTY.el8.x86_64.rpm
|
| el8.aarch64 | PIGSTY MISS | PIGSTY 1.1.2 el8.aarch64.pg17 : duckdb_fdw_17 duckdb_fdw_17-1.1.2-1PIGSTY.el8.aarch64.rpm
| PIGSTY 1.1.2 el8.aarch64.pg16 : duckdb_fdw_16 duckdb_fdw_16-1.1.2-1PIGSTY.el8.aarch64.rpm
| PIGSTY 1.1.2 el8.aarch64.pg15 : duckdb_fdw_15 duckdb_fdw_15-1.1.2-1PIGSTY.el8.aarch64.rpm
| PIGSTY 1.1.2 el8.aarch64.pg14 : duckdb_fdw_14 duckdb_fdw_14-1.1.2-1PIGSTY.el8.aarch64.rpm
|
| el9.x86_64 | PIGSTY MISS | PIGSTY 1.1.2 el9.x86_64.pg17 : duckdb_fdw_17 duckdb_fdw_17-1.1.2-1PIGSTY.el9.x86_64.rpm
| PIGSTY 1.1.2 el9.x86_64.pg16 : duckdb_fdw_16 duckdb_fdw_16-1.1.2-1PIGSTY.el9.x86_64.rpm
| PIGSTY 1.1.2 el9.x86_64.pg15 : duckdb_fdw_15 duckdb_fdw_15-1.1.2-1PIGSTY.el9.x86_64.rpm
| PIGSTY 1.1.2 el9.x86_64.pg14 : duckdb_fdw_14 duckdb_fdw_14-1.1.2-1PIGSTY.el9.x86_64.rpm
|
| el9.aarch64 | PIGSTY MISS | PIGSTY 1.1.2 el9.aarch64.pg17 : duckdb_fdw_17 duckdb_fdw_17-1.1.2-1PIGSTY.el9.aarch64.rpm
| PIGSTY 1.1.2 el9.aarch64.pg16 : duckdb_fdw_16 duckdb_fdw_16-1.1.2-1PIGSTY.el9.aarch64.rpm
| PIGSTY 1.1.2 el9.aarch64.pg15 : duckdb_fdw_15 duckdb_fdw_15-1.1.2-1PIGSTY.el9.aarch64.rpm
| PIGSTY 1.1.2 el9.aarch64.pg14 : duckdb_fdw_14 duckdb_fdw_14-1.1.2-1PIGSTY.el9.aarch64.rpm
|
| el10.x86_64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| el10.aarch64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d12.x86_64 | PIGSTY MISS | PIGSTY 1.1.2 d12.x86_64.pg17 : postgresql-17-duckdb-fdw postgresql-17-duckdb-fdw_1.1.2-1PIGSTY~bookworm_amd64.deb
| PIGSTY 1.1.2 d12.x86_64.pg16 : postgresql-16-duckdb-fdw postgresql-16-duckdb-fdw_1.1.2-1PIGSTY~bookworm_amd64.deb
| PIGSTY 1.1.2 d12.x86_64.pg15 : postgresql-15-duckdb-fdw postgresql-15-duckdb-fdw_1.1.2-1PIGSTY~bookworm_amd64.deb
| PIGSTY 1.1.2 d12.x86_64.pg14 : postgresql-14-duckdb-fdw postgresql-14-duckdb-fdw_1.1.2-1PIGSTY~bookworm_amd64.deb
|
| d12.aarch64 | PIGSTY MISS | PIGSTY 1.1.2 d12.aarch64.pg17 : postgresql-17-duckdb-fdw postgresql-17-duckdb-fdw_1.1.2-1PIGSTY~bookworm_arm64.deb
| PIGSTY 1.1.2 d12.aarch64.pg16 : postgresql-16-duckdb-fdw postgresql-16-duckdb-fdw_1.1.2-1PIGSTY~bookworm_arm64.deb
| PIGSTY 1.1.2 d12.aarch64.pg15 : postgresql-15-duckdb-fdw postgresql-15-duckdb-fdw_1.1.2-1PIGSTY~bookworm_arm64.deb
| PIGSTY 1.1.2 d12.aarch64.pg14 : postgresql-14-duckdb-fdw postgresql-14-duckdb-fdw_1.1.2-1PIGSTY~bookworm_arm64.deb
|
| d13.x86_64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| d13.aarch64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u22.x86_64 | PIGSTY MISS | PIGSTY 1.1.2 u22.x86_64.pg17 : postgresql-17-duckdb-fdw postgresql-17-duckdb-fdw_1.1.2-1PIGSTY~jammy_amd64.deb
| PIGSTY 1.1.2 u22.x86_64.pg16 : postgresql-16-duckdb-fdw postgresql-16-duckdb-fdw_1.1.2-1PIGSTY~jammy_amd64.deb
| PIGSTY 1.1.2 u22.x86_64.pg15 : postgresql-15-duckdb-fdw postgresql-15-duckdb-fdw_1.1.2-1PIGSTY~jammy_amd64.deb
| PIGSTY 1.1.2 u22.x86_64.pg14 : postgresql-14-duckdb-fdw postgresql-14-duckdb-fdw_1.1.2-1PIGSTY~jammy_amd64.deb
|
| u22.aarch64 | PIGSTY MISS | PIGSTY 1.1.2 u22.aarch64.pg17 : postgresql-17-duckdb-fdw postgresql-17-duckdb-fdw_1.1.2-1PIGSTY~jammy_arm64.deb
| PIGSTY 1.1.2 u22.aarch64.pg16 : postgresql-16-duckdb-fdw postgresql-16-duckdb-fdw_1.1.2-1PIGSTY~jammy_arm64.deb
| PIGSTY 1.1.2 u22.aarch64.pg15 : postgresql-15-duckdb-fdw postgresql-15-duckdb-fdw_1.1.2-1PIGSTY~jammy_arm64.deb
| PIGSTY 1.1.2 u22.aarch64.pg14 : postgresql-14-duckdb-fdw postgresql-14-duckdb-fdw_1.1.2-1PIGSTY~jammy_arm64.deb
|
| u24.x86_64 | PIGSTY MISS | PIGSTY 1.1.2 u24.x86_64.pg17 : postgresql-17-duckdb-fdw postgresql-17-duckdb-fdw_1.1.2-1PIGSTY~noble_amd64.deb
| PIGSTY 1.1.2 u24.x86_64.pg16 : postgresql-16-duckdb-fdw postgresql-16-duckdb-fdw_1.1.2-1PIGSTY~noble_amd64.deb
| PIGSTY 1.1.2 u24.x86_64.pg15 : postgresql-15-duckdb-fdw postgresql-15-duckdb-fdw_1.1.2-1PIGSTY~noble_amd64.deb
| PIGSTY 1.1.2 u24.x86_64.pg14 : postgresql-14-duckdb-fdw postgresql-14-duckdb-fdw_1.1.2-1PIGSTY~noble_amd64.deb
|
| u24.aarch64 | PIGSTY MISS | PIGSTY 1.1.2 u24.aarch64.pg17 : postgresql-17-duckdb-fdw postgresql-17-duckdb-fdw_1.1.2-1PIGSTY~noble_arm64.deb
| PIGSTY 1.1.2 u24.aarch64.pg16 : postgresql-16-duckdb-fdw postgresql-16-duckdb-fdw_1.1.2-1PIGSTY~noble_arm64.deb
| PIGSTY 1.1.2 u24.aarch64.pg15 : postgresql-15-duckdb-fdw postgresql-15-duckdb-fdw_1.1.2-1PIGSTY~noble_arm64.deb
| PIGSTY 1.1.2 u24.aarch64.pg14 : postgresql-14-duckdb-fdw postgresql-14-duckdb-fdw_1.1.2-1PIGSTY~noble_arm64.deb
|
构建
您可以使用 pig build 命令构建 duckdb_fdw 扩展的 DEB 包:
pig build pkg duckdb_fdw # 构建 DEB 包
安装
您可以直接安装 duckdb_fdw 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install duckdb_fdw; # 当前活跃 PG 版本安装
pig ext install -y duckdb_fdw -v 17 # PG 17
pig ext install -y duckdb_fdw -v 16 # PG 16
pig ext install -y duckdb_fdw -v 15 # PG 15
pig ext install -y duckdb_fdw -v 14 # PG 14
dnf install -y duckdb_fdw_17 # PG 17
dnf install -y duckdb_fdw_16 # PG 16
dnf install -y duckdb_fdw_15 # PG 15
dnf install -y duckdb_fdw_14 # PG 14
apt install -y postgresql-17-duckdb-fdw # PG 17
apt install -y postgresql-16-duckdb-fdw # PG 16
apt install -y postgresql-15-duckdb-fdw # PG 15
apt install -y postgresql-14-duckdb-fdw # PG 14
创建扩展:
CREATE EXTENSION duckdb_fdw;
此扩展目前存在问题,与 pg_duckdb 和 pg_mooncake 存在冲突
用法
创建扩展
安装 duckdb_fdw yum 软件包后,可以在 PostgreSQL 数据库中创建该扩展:
-- 创建扩展
CREATE EXTENSION duckdb_fdw;
-- 创建 duckdb_fdw 外部服务器
CREATE SERVER duckdb_server FOREIGN DATA WRAPPER duckdb_fdw OPTIONS (database '/tmp/duck.db');
-- 创建用户映射 [可选]
-- GRANT USAGE ON FOREIGN SERVER duckdb_server TO PUBLIC;
SELECT duckdb_fdw_version();
-- 可以使用 `duckdb_execute` 执行 duckdb 命令,例如在 duckdb 中创建一张表:
-- 在 duckdb 中创建表
SELECT duckdb_execute('duckdb_server', 'CREATE TABLE t1 (a integer,b varchar);');
-- 创建映射到 duckdb 表的外部表
CREATE FOREIGN TABLE t1 (
a integer,
b text
) SERVER duckdb_server OPTIONS (
table 't1'
);
-- 写入数据并读取
INSERT INTO t1 SELECT i AS a,i::text AS b FROM generate_series(1,10) i;
SELECT * FROM t1;
也可以从 duckdb 服务器导入外部模式,例如,先使用 duckdb 命令行工具创建一张表:
duckdb /tmp/duck.db
CREATE TABLE t1 (
a integer,
b text
);
INSERT INTO t1 VALUES (1, 'a'), (2 , 'b'), (3, 'c');
SELECT * FROM t1;
然后将该模式导入 PostgreSQL:
IMPORT FOREIGN SCHEMA public FROM SERVER duckdb_server INTO public;