Foreign Data Wrappers
In 2003, a new specification called SQL/MED ("SQL Management of External Data") was added to the SQL standard. It is a standardized way of handling access to remote objects from SQL databases. In 2011, PostgreSQL 9.1 was released with read-only support of this standard, and in 2013 write support was added with PostgreSQL 9.3.
There are now a variety of Foreign Data Wrappers (FDW) available which enable PostgreSQL Server to different remote data stores, ranging from other SQL databases through to flat file. This page list some of the wrappers currently available. Another fdw list can be found at the PGXN website.
Please keep in mind that most of these wrappers are not officially supported by the PostgreSQL Global Development Group (PGDG) and that some of these projects are still in Beta version. Use carefully!
Generic SQL Database Wrappers
Data Source
|
Type
|
License
|
Code
|
Install
|
Doc
|
Notes
|
ODBC
|
Native
|
|
github
|
|
|
CartoDB took over active development of the ODBC FDW for PG 9.5+
|
JDBC
|
Native
|
|
github
|
|
|
Not maintained?
|
JDBC2
|
Native
|
|
github
|
|
|
|
JDBC
|
Native
|
|
github
|
|
README
|
More recent than the above, advertises write support.
|
SQL_Alchemy
|
Multicorn
|
PostgreSQL
|
GitHub
|
PGXN
|
documentation
|
Can be used to access data stored in any database supported by the sqlalchemy python toolkit.
|
GDAL/OGR
|
Native
|
MIT
|
GitHub
|
yum.postgresql.org, apt.postgresql.org, and part of PostGIS windows bundle (application stackbuilder)
|
|
Can access many kinds of data sources (Relational databases, spreadsheets, CSV files, web feature services, etc). Uses the GDAL library which supports hundreds of formats to access the data. Exposes vector data as PostGIS geometry columns if you have PostGIS installed. Works great with both spatial and non-spatial data.
|
VirtDB
|
Native
|
GPL
|
GitHub
|
|
|
A generic FDW to access VirtDB data sources (SAP ERP, Oracle RDBMS)
|
|
APIs (via Steampipe plugins)
|
Native
|
CLI and FDW extension: AGPL 3.0, Plugins: Apache 2.0
|
CLI on GitHub, FDW extension on GitHub
|
Steampipe downloads
|
Steampipe docs, Postgres FDW docs
|
Steampipe bundles Postgres with an FDW extension that supports a growing ecosystem of plugins. The plugins consume APIs, map them to tables, and enable queries within and across APIs.
The plugins are also available as unbundled FDWs for use in any Postgres database.
|
Specific SQL Database Wrappers
NoSQL Database Wrappers
File Wrappers
Data Source
|
Type
|
License
|
Code
|
Install
|
Doc
|
Notes
|
CSV
|
Native
|
PostgreSQL
|
git.postgresql.org
|
|
documentation
|
Delivered as an official extension of PostgreSQL 9.1 / example / Another example
|
CSV
|
Multicorn
|
PostgreSQL
|
GitHub
|
PGXN
|
documentation
|
Each column defined in the table will be mapped, in order, against columns in the CSV file.
|
CSV / Text Array
|
Native
|
|
GitHub
|
|
How to
|
Another CSV wrapper
|
CSV / Fixed-length
|
Native
|
|
GitHub
|
|
|
|
CSV / gzipped
|
Multicorn
|
|
GitHub
|
|
|
PostgreSQL Foreign Data Wrapper for gzipped cvs file
|
Compressed File
|
Native
|
|
GitHub
|
|
|
|
Document Collection
|
Native
|
PostgreSQL
|
GitHub
|
|
wiki
|
|
JSON
|
Native
|
GPL3
|
GitHub
|
|
Example
|
|
Multi-File
|
Multicorn
|
PostgreSQL
|
GitHub
|
PGXN
|
doc
|
Access data stored in various files in a filesystem. The files are looked up based on a pattern, and parts of the file's path are mapped to various columns, as well as the file's content itself.
|
Multi CDR
|
Native
|
PostgreSQL
|
GitHub
|
PGXN
|
|
|
Parquet
|
Native
|
PostgreSQL
|
GitHub
|
|
|
Foreign data wrapper for reading Parquet files using libarrow/libparquet
|
pg_dump
|
Native
|
New BSD
|
GitHub
|
|
|
Allows querying of data directly against Postgres custom format files created by pg_dump
|
TAR Files
|
Native
|
|
GitHub
|
|
|
|
XLSX
|
Native
|
MIT
|
GitHub
|
|
README
|
PG_Sheet allows reading XLSX Sheets via SheetReader, a fast Excel Sheet reader.
|
XML
|
Multicorn
|
PostgreSQL
|
GitHub
|
PGXN
|
|
|
ZIP Files
|
Native
|
|
GitHub
|
|
|
|
Geo Wrappers
Data Source
|
Type
|
License
|
Code
|
Install
|
Doc
|
Notes
|
GDAL/OGR
|
Native
|
MIT
|
GitHub
|
|
|
A wrapper for data sources with a GDAL/OGR driver, including databases like Oracle, Informix, SQLite, SQL Server, ODBC as well as file formats like Shape, FGDB, MapInfo, CSV, Excel, OpenOffice, OpenStreetMap PBF and XML, OGC WebServices, and more Spatial columns are linked in as PostGIS geometry if PostGIS is installed.
|
Geocode / GeoJSON
|
Multicorn
|
GPL
|
GitHub
|
|
|
a collection of PostGIS-related foreign data wrappers
|
Open Street Map PBF
|
Native
|
PostgreSQL
|
GitHub
|
|
|
|
LDAP Wrappers
Data Source
|
Type
|
License
|
Code
|
Install
|
Doc
|
Notes
|
LDAP
|
Native
|
|
GitHub
|
PGXN
|
|
Allows to query an LDAP server and retrieve data from some pre-configured Organizational Unit
|
LDAP
|
Multicorn
|
PostgreSQL
|
GitHub
|
PGXN
|
documentation
|
|
Generic Web Wrappers
Specific Web Wrappers
Big Data Wrappers
Data Source
|
Type
|
License
|
Code
|
Install
|
Doc
|
Notes
|
Elasticsearch
|
Multicorn
|
MIT
|
GitHub
|
|
|
Supports up to PG 15, ES 8.
|
Google BigQuery
|
Multicorn
|
MIT
|
GitHub
|
|
Documentation
|
bigquery_fdw is a BigQuery FDW compatible with PostgreSQL >= 9.5
|
Google BigQuery
|
Wrappers
|
Apache
|
GitHub
|
|
documentation
|
A foreign data wrapper for BigQuery
|
file_fdw-gds (Hadoop)
|
Native
|
|
GitHub
|
|
|
Hadoop file_fdw is a slightly modified version of PostgreSQL 9.3's file_fdw module.
|
Hadoop
|
Native
|
PostgreSQL
|
Bitbucket
|
|
|
Allows read and write access to HBase as well as to HDFS via Hive.
|
HDFS
|
Native
|
Apache
|
GitHub
|
|
|
|
Hive
|
Multicorn
|
|
GitHub
|
|
|
Used to access Apache Hive tables.
|
Hive / ORC File
|
Native
|
|
GitHub
|
|
|
|
Impala
|
Native
|
BSD
|
GitHub
|
|
|
|
Apache Arrow
|
Native
|
GPLv2
|
GitHub
|
|
|
A part of PG-Strom feature; as a columnar data source with support of SSD-to-GPU Direct SQL
|
Column-Oriented Wrappers
Data Source
|
Type
|
License
|
Code
|
Install
|
Doc
|
Notes
|
Columnar Store
|
Native
|
|
github
|
example
|
|
A Columnar Store for PostgreSQL.
|
MonetDB
|
Native
|
|
github
|
|
|
|
GPU Memory Store
|
Native
|
GPL v2
|
github
|
|
|
FDW to GPU device memory; a part of PG-Strom feature for PL/CUDA
|
Scientific Wrappers
Operating System Wrappers
Data Source
|
Type
|
License
|
Code
|
Install
|
Doc
|
Notes
|
Docker
|
Multicorn
|
Expat
|
GitHub
|
|
|
|
Log files
|
Multicorn
|
PostgreSQL
|
GitHub
|
|
|
|
OpenStack / Telemetry
|
Multicorn
|
PostgreSQL
|
GitHub
|
|
|
|
OS Query
|
Multicorn
|
PostgreSQL
|
GitHub
|
|
|
Like Facebook's OSQuery, but for Postgres
|
Passwd
|
Native
|
PostgreSQL
|
GitHub
|
|
|
reads linux/unix password and group files.
|
Process
|
Multicorn
|
PostgreSQL
|
GitHub
|
|
|
A foreign datawrapper for querying system stats based on statgrab
|
Environment Variables
|
Multicorn
|
MIT
|
GitHub
|
|
|
envFDW is a forign data wrapper for processing environment variables
|
Exotic Wrappers
Data Source
|
Type
|
License
|
Code
|
Install
|
Doc
|
Notes
|
faker_fdw
|
Multicorn
|
PostgreSQL
|
GitHub
|
|
|
faker_fdw is a foreign data wrapper for PostgreSQL that generates fake data.
|
fdw_fdw
|
Multicorn
|
PostgreSQL
|
GitHub
|
|
|
the Meta FDW ! reads this page and returns the list of all the FDW
|
PPG
|
Native
|
|
GitHub
|
|
|
distributed parallel query engine, based on fdw and hooks of PG
|
Open Civic Data
|
Multicorn
|
Expat
|
GitHub
|
|
|
|
Phillips Hue Lighting Systems
|
Multicorn
|
MIT
|
GitHub
|
|
|
|
Random Number
|
Multicorn
|
PostgreSQL
|
GitHub
|
|
|
A random number generator foreign data wrapper for postgres
|
Rotfang
|
Native
|
PostgreSQL
|
BitBucket
|
|
slides
|
Advanced random number generator
|
Template Tables
|
Native
|
BSD
|
GitHub
|
|
|
PostgreSQL data wrapper for template tables - any DML and SELECT operations are disallowed
|
VMware vSphere
|
Multicorn
|
MIT
|
GitHub
|
|
|
A PostgreSQL FDW to query your VMware vSphere service
|
Example Wrappers
Data Source
|
Type
|
License
|
Code
|
Install
|
Doc
|
Notes
|
Dummy
|
Native
|
BSD
|
GitHub
|
|
|
Readable null FDW for testing
|
Hello World
|
|
|
GitHub
|
|
|
|
Hello World
|
Wrappers
|
Apache
|
GitHub
|
|
README
|
A demo foreign data wrapper
|
Black Hole
|
|
|
bitbucket
|
|
|
a skeleton FDW pre-populated with relevant excerpts from the documentation
|
Writing Foreign Database Wrappers