duckdb_fdw
DuckDB Foreign Data Wrapper
Module:
Categories:
Overview
PIGSTY 3rd Party Extension: duckdb_fdw
: DuckDB Foreign Data Wrapper
Information
- Extension ID: 2450
- Extension Name:
duckdb_fdw
- Package Name:
duckdb_fdw
- Category:
OLAP
- License: MIT
- Website: https://github.com/alitrack/duckdb_fdw
- Language: C
- Extra Tags:
duckdb
- Comment:
Metadata
- Latest Version: 1.1.2
- Postgres Support:
17
,16
,15
,14
,13
- Need Load: Shared library do not need explicit loading
- Need DDL: Need
CREATE EXTENSION
DDL - Relocatable: Can not install to arbitrary schema
- Trusted: Untrusted, Require Superuser to Create
- Schemas: N/A
- Requires: N/A
RPM / DEB
- RPM Repo: PIGSTY
- RPM Name:
duckdb_fdw_$v*
- RPM Ver :
1.1.2
- RPM Deps:
libduckdb
- DEB Repo: PIGSTY
- DEB Name:
postgresql-$v-duckdb-fdw
- DEB Ver :
1.1.2
- DEB Deps:
libduckdb
Packages
Installation
Install duckdb_fdw
via the pig
CLI tool:
pig ext install duckdb_fdw
Install duckdb_fdw
via Pigsty playbook:
./pgsql.yml -t pg_extension -e '{"pg_extensions": ["duckdb_fdw"]}' # -l <cls>
Install duckdb_fdw
RPM from YUM repo directly:
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*;
Install duckdb_fdw
DEB from APT repo directly:
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;
Enable duckdb_fdw
extension on PostgreSQL cluster:
CREATE EXTENSION duckdb_fdw;
Usage
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
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.