duckdb_fdw

DuckDB 外部数据源包装器

扩展总览

PIGSTY 第三方扩展: duckdb_fdw : DuckDB 外部数据源包装器

基本信息

  • 扩展编号: 2450
  • 扩展名称: duckdb_fdw
  • 标准包名: duckdb_fdw
  • 扩展类目: OLAP
  • 开源协议: MIT
  • 官方网站: https://github.com/alitrack/duckdb_fdw
  • 编程语言: C
  • 其他标签: duckdb
  • 备注信息:

元数据

  • 默认版本: 1.1.2
  • PG大版本: 17,16,15,14,13
  • 动态加载: 无需动态加载
  • 需要DDL: 需要执行 CREATE EXTENSION DDL
  • 可重定位: 无法安装至任意模式下
  • 信任程度: 未受信任,创建扩展需要超级用户权限
  • 所需模式: 无
  • 所需扩展: 无

软件包

  • RPM仓库:PIGSTY
  • RPM包名:duckdb_fdw_$v*
  • RPM版本:1.0.0
  • RPM依赖:libduckdb
  • DEB仓库:PIGSTY
  • DEB包名:postgresql-$v-duckdb-fdw
  • DEB版本:1.0.0
  • DEB依赖:libduckdb

最新版本

系统 架构 PG17 PG16 PG15 PG14 PG13
el8 x86_64 duckdb_fdw_17
PIGSTY 1.1.2
duckdb_fdw_16
PIGSTY 1.1.2
duckdb_fdw_15
PIGSTY 1.1.2
duckdb_fdw_14
PIGSTY 1.1.2
duckdb_fdw_13
PIGSTY 1.1.2
el8 aarch64 duckdb_fdw_17
PIGSTY 1.1.2
duckdb_fdw_16
PIGSTY 1.1.2
duckdb_fdw_15
PIGSTY 1.1.2
duckdb_fdw_14
PIGSTY 1.1.2
duckdb_fdw_13
PIGSTY 1.1.2
el9 x86_64 duckdb_fdw_17
PIGSTY 1.1.2
duckdb_fdw_16
PIGSTY 1.1.2
duckdb_fdw_15
PIGSTY 1.1.2
duckdb_fdw_14
PIGSTY 1.1.2
duckdb_fdw_13
PIGSTY 1.1.2
el9 aarch64 duckdb_fdw_17
PIGSTY 1.1.2
duckdb_fdw_16
PIGSTY 1.1.2
duckdb_fdw_15
PIGSTY 1.1.2
duckdb_fdw_14
PIGSTY 1.1.2
duckdb_fdw_13
PIGSTY 1.1.2
d12 x86_64 postgresql-17-duckdb-fdw
PIGSTY 1.1.2
postgresql-16-duckdb-fdw
PIGSTY 1.1.2
postgresql-15-duckdb-fdw
PIGSTY 1.1.2
postgresql-14-duckdb-fdw
PIGSTY 1.1.2
postgresql-13-duckdb-fdw
PIGSTY 1.1.2
d12 aarch64 postgresql-17-duckdb-fdw
PIGSTY 1.1.2
postgresql-16-duckdb-fdw
PIGSTY 1.1.2
postgresql-15-duckdb-fdw
PIGSTY 1.1.2
postgresql-14-duckdb-fdw
PIGSTY 1.1.2
postgresql-13-duckdb-fdw
PIGSTY 1.1.2
u22 x86_64 postgresql-17-duckdb-fdw
PIGSTY 1.1.2
postgresql-16-duckdb-fdw
PIGSTY 1.1.2
postgresql-15-duckdb-fdw
PIGSTY 1.1.2
postgresql-14-duckdb-fdw
PIGSTY 1.1.2
postgresql-13-duckdb-fdw
PIGSTY 1.1.2
u22 aarch64 postgresql-17-duckdb-fdw
PIGSTY 1.1.2
postgresql-16-duckdb-fdw
PIGSTY 1.1.2
postgresql-15-duckdb-fdw
PIGSTY 1.1.2
postgresql-14-duckdb-fdw
PIGSTY 1.1.2
postgresql-13-duckdb-fdw
PIGSTY 1.1.2
u24 x86_64 postgresql-17-duckdb-fdw
PIGSTY 1.1.2
postgresql-16-duckdb-fdw
PIGSTY 1.1.2
postgresql-15-duckdb-fdw
PIGSTY 1.1.2
postgresql-14-duckdb-fdw
PIGSTY 1.1.2
postgresql-13-duckdb-fdw
PIGSTY 1.1.2
u24 aarch64 postgresql-17-duckdb-fdw
PIGSTY 1.1.2
postgresql-16-duckdb-fdw
PIGSTY 1.1.2
postgresql-15-duckdb-fdw
PIGSTY 1.1.2
postgresql-14-duckdb-fdw
PIGSTY 1.1.2
postgresql-13-duckdb-fdw
PIGSTY 1.1.2

扩展安装

使用 pig 命令行工具安装 duckdb_fdw 扩展:

pig ext install duckdb_fdw

使用 Pigsty剧本 安装 duckdb_fdw 扩展:

./pgsql.yml -t pg_extension -e '{"pg_extensions": ["duckdb_fdw"]}' # -l <集群名>

YUM仓库 手工安装 duckdb_fdw RPM 包:

dnf install duckdb_fdw_17*;
dnf install duckdb_fdw_16*;
dnf install duckdb_fdw_15*;
dnf install duckdb_fdw_14*;
dnf install duckdb_fdw_13*;

APT仓库 手工安装 duckdb_fdw DEB 包:

apt install postgresql-17-duckdb-fdw;
apt install postgresql-16-duckdb-fdw;
apt install postgresql-15-duckdb-fdw;
apt install postgresql-14-duckdb-fdw;
apt install postgresql-13-duckdb-fdw;

使用以下 SQL 命令在已经安装此扩展插件的 PG 集群上 启用 duckdb_fdw 扩展:

CREATE EXTENSION duckdb_fdw;

使用方法

Create Extension

After install the duckdb_fdw yum package, you can create the extension inside PostgreSQL database:

-- create extension
CREATE EXTENSION duckdb_fdw;

-- create duckdb_fdw server
CREATE SERVER duckdb_server FOREIGN DATA WRAPPER duckdb_fdw OPTIONS (database '/tmp/duck.db');

-- create user mapping [OPTIONAL]
-- GRANT USAGE ON FOREIGN SERVER duckdb_server TO PUBLIC;

SELECT duckdb_fdw_version();

-- You can execute duckdb command with `duckdb_execute`, for example, to create a table inside duckdb:
-- create a table in duckdb
SELECT duckdb_execute('duckdb_server', 'CREATE TABLE t1 (a integer,b varchar);');

-- create duckdb foreign table mapping that duckdb table
CREATE FOREIGN TABLE t1 (
    a integer,
    b text
) SERVER duckdb_server OPTIONS (
    table 't1'
);

-- write some data and read it back
INSERT INTO t1 SELECT i AS a,i::text AS b FROM generate_series(1,10) i;
SELECT * FROM t1;

You can also import foreign schema from duckdb server, for example, create a table with duckdb cli:

duckdb /tmp/duck.db

CREATE TABLE t1 (
  a integer,
  b text
);
  
INSERT INTO t1 VALUES (1, 'a'), (2 , 'b'), (3, 'c');
SELECT * FROM t1;

Then import the schema into PostgreSQL:

IMPORT FOREIGN SCHEMA public FROM SERVER duckdb_server INTO public;

Other Resource





最后修改 2025-03-20: update extension version (52133a3)