外部数据包装器

来自 PostgreSQL wiki
(从 Fdw 重定向)
跳转到导航跳转到搜索

外部数据包装器

在 2003 年,一个名为 SQL/MED(“SQL 外部数据管理”)的新规范被添加到 SQL 标准中。它是一种标准化方式,用于处理从 SQL 数据库访问远程对象。在 2011 年,PostgreSQL 9.1 版本发布,支持该标准的只读功能,并在 2013 年 PostgreSQL 9.3 版本中添加了写支持。

现在,有多种外部数据包装器 (FDW) 可用,它们使 PostgreSQL 服务器能够访问不同的远程数据存储,范围从其他 SQL 数据库到平面文件。本页面列出了目前可用的部分包装器。另一个 fdw 列表 可以在 PGXN 网站 上找到。

请记住,大多数这些包装器不受 PostgreSQL 全球开发组 (PGDG) 的官方支持,并且其中一些项目仍处于 Beta 版本。谨慎使用!


通用 SQL 数据库包装器

数据源 类型 许可证 代码 安装 文档 注释
ODBC 原生 github CartoDB 接管了 ODBC FDW 针对 PG 9.5+ 的主动开发。
JDBC 原生 github 未维护?
JDBC2 原生 github
JDBC 原生 github README 比上面更新,宣传了写支持。
SQL_Alchemy Multicorn PostgreSQL GitHub PGXN 文档 可用于访问 sqlalchemy python 工具包支持的任何数据库中的存储数据。
GDAL/OGR 原生 MIT GitHub yum.postgresql.org、apt.postgresql.org 和 PostGIS windows 包的一部分(应用程序堆栈构建器) 可以访问多种数据源(关系数据库、电子表格、CSV 文件、Web 特征服务等)。使用支持数百种格式的 GDAL 库 来访问数据。如果您安装了 PostGIS,则将矢量数据公开为 PostGIS 几何列。非常适合空间和非空间数据。
VirtDB 原生 GPL GitHub 一个用于访问 VirtDB 数据源(SAP ERP、Oracle RDBMS)的通用 FDW。
API(通过 Steampipe 插件 原生 CLI 和 FDW 扩展:AGPL 3.0,插件:Apache 2.0 GitHub 上的 CLIGitHub 上的 FDW 扩展 Steampipe 下载 Steampipe 文档Postgres FDW 文档 Steampipe 将 Postgres 与一个 FDW 扩展捆绑在一起,该扩展支持不断增长的 插件 生态系统。这些插件使用 API,将它们映射到表,并在 API 内部和之间启用查询。

这些插件也可以作为 未捆绑的 FDW 在任何 Postgres 数据库中使用。

特定 SQL 数据库包装器

数据源 类型 许可证 代码 安装 文档 注释
PostgreSQL 原生 PostgreSQL git.postgresql.org 文档
Oracle 原生 PostgreSQL github PGXN 网站
MySQL 原生 github PGXN 示例 针对 MySQL 的 FDW
Informix 原生 PostgreSQL github
DB2 原生 github
Firebird 原生 PostgreSQL github PGXN README 版本 1.3.0 已发布(2022-12)
SQLite 原生 PostgreSQL github PGXN README 一个针对 SQLite3 的 FDW(支持写操作和一些下推优化)
Sybase / MS SQL Server 原生 github PGXN 一个针对 Sybase 和 Microsoft SQL Server 的 FDW
MonetDB 原生 github

NoSQL 数据库包装器

数据源 类型 许可证 代码 安装 文档 注释
BigTable 或 HBase 原生 Rust 绑定(RPGFFI) MIT Github
Cassandra Multicorn MIT Github Rankactive
Cassandra2 原生 MIT Github
Cassandra Multicorn PostgreSQL Github
ClickHouse Multicorn BSD Github README
ClickHouse 原生 Apache Github README
ClickHouse 原生 Github README
ClickHouse 包装器 Apache GitHub 文档 一个针对 ClickHouse 的外部数据包装器
CouchDB 原生 PostgreSQL Github PGXN 原始版本
CouchDB 原生 PostgreSQL Github golgauth 版本(9.1 - 9.2+ 兼容)
GridDB 原生 PostgreSQL Github README
InfluxDB 原生 PostgreSQL Github README
Kafka 原生 PostgreSQL GitHub README
Kyoto Tycoon 原生 MIT Github
MongoDB 原生 GPL3+ Github PGXN README EDB 版本
MongoDB Multicorn MIT Github
MongoDB Multicorn Github 另一个针对 MongoDB 的 Postgres FDW
Neo4j Multicorn GPLv3 Github README 针对 Neo4j 的 FWD,还会向 Pg 添加 Cypher 函数
Neo4j 原生 ? Github
Quasar 原生 Apache Github
Redis 原生 PostgreSQL Github
Redis 原生 BSD Github
RethinkDB Multicorn MIT Github 博客
Riak Multicorn PostgreSQL Github
RocksDB 原生 Apache Github README 针对 RocksDB 的 FDW
SPARQL Multicorn2 PostgreSQL Github
WhiteDB 原生 MIT Github
RDF 三元组存储(SPARQL 端点) 原生 MIT Github 一个外部数据包装器,可通过 SPARQL 轻松访问 RDF 三元组存储,包括下推一些 SQL 查询子句。

文件包装器

数据源 类型 许可证 代码 安装 文档 注释
CSV 原生 PostgreSQL git.postgresql.org 文档 作为 PostgreSQL 9.1 的官方扩展提供 / 示例 / 另一个示例
CSV Multicorn PostgreSQL GitHub PGXN 文档 表中定义的每个列都将按顺序映射到 CSV 文件中的列。
CSV / 文本数组 原生 GitHub 如何 另一个 CSV 包装器
CSV / 定长 原生 GitHub
CSV / 压缩 Multicorn GitHub 针对压缩 cvs 文件的 PostgreSQL 外部数据包装器
压缩文件 原生 GitHub
文档集合 原生 PostgreSQL GitHub wiki
JSON 原生 GPL3 GitHub 示例
多文件 Multicorn PostgreSQL GitHub PGXN 文档 访问文件系统中存储在各种文件中的数据。这些文件是根据模式查找的,文件路径的各个部分将映射到各个列,以及文件本身的内容。
多 CDR 原生 PostgreSQL GitHub PGXN
Parquet 原生 PostgreSQL GitHub 用于使用 libarrow/libparquet 读取 Parquet 文件的外部数据包装器
pg_dump 原生 新 BSD GitHub 允许直接针对 pg_dump 创建的 Postgres 自定义格式文件查询数据
TAR 文件 原生 GitHub
XML Multicorn PostgreSQL GitHub PGXN
ZIP 文件 原生 GitHub

地理包装器

数据源 类型 许可证 代码 安装 文档 注释
GDAL/OGR 原生 MIT GitHub 一个针对具有 GDAL/OGR 驱动程序的数据源的包装器,包括 Oracle、Informix、SQLite、SQL Server、ODBC 等数据库,以及 Shape、FGDB、MapInfo、CSV、Excel、OpenOffice、OpenStreetMap PBF 和 XML、OGC WebServices 等文件格式,等等 如果安装了 PostGIS,则空间列将链接为 PostGIS 几何。
地理编码 / GeoJSON Multicorn GPL GitHub 一个 PostGIS 相关的外部数据包装器集合
Open Street Map PBF 原生 PostgreSQL GitHub

LDAP 包装器

数据源 类型 许可证 代码 安装 文档 注释
LDAP 原生 GitHub PGXN 允许查询 LDAP 服务器并从一些预先配置的组织单元中检索数据
LDAP Multicorn PostgreSQL GitHub PGXN 文档

通用 Web 包装器

数据源 类型 许可证 代码 安装 文档 注释
Git Multicorn PostgreSQL GitHub PGXN
Git 原生 MIT GitHub
ICAL Multicorn PostgreSQL GitHub pdf
IMAP Multicorn PostgreSQL GitHub PGXN 文档
RSS Multicorn PostgreSQL GitHub PGXN 文档 此 fdw 可用于访问 rss 源中的项目。
www 原生 PostgreSQL GitHub PGXN wiki 允许查询不同的 Web 服务
pgsql-http 原生 PostgreSQL GitHub 编译 允许使用 CURL 库查询任何 http 资源。作者为 Paul Ramsey。

特定 Web 包装器

数据源 类型 许可证 代码 安装 文档 注释
OAI-PMH 原生 MIT GitHub README 一个 PostgreSQL 外部数据包装器,用于访问 OAI-PMH 存储库(开放档案倡议元数据收集协议)。此包装器支持 OAI-PMH 2.0 协议。
Cloudsmith.io Multicorn PostgreSQL GitHub
Database.com Multicorn BSD GitHub
Dun & Badstreet Multicorn PostgreSQL GitHub 访问 数据通用编号系统 (DUNS)
DynamoDB Multicorn GPL GitHub
DynamoDB 原生 PostgreSQL GitHub
Facebook Multicorn GitHub
Fixer.io 基于 www_fdw GitHub
Google Multicorn PostgreSQL GitHub PGXN
Heroku dataclips 原生 PostgreSQL GitHub
Keycloak Multicorn MIT GitHub PGXN README Keycloak 开源身份/访问管理解决方案的直接数据库集成。
Mailchimp Multicorn PostgreSQL GitHub Beta
Parse Multicorn MIT GitHub
S3 原生 PostgreSQL GitHub PGXN
S3 包装器 Apache GitHub 文档 一个针对 S3 的外部数据包装器,支持 CVS、JSONL、Parquet 文件以及 gzip、bzip2、xz、zlib 压缩。
S3CSV Multicorn GPL 3 GitHub 旨在取代 s3_fdw,s3_fdw 在 PostgreSQL 9.2+ 版本中不受支持。
ParquetS3 原生 PostgreSQL GitHub 用于在 Amazon S3 / Minio 上使用 libarrow/libparquet 读取 Parquet 文件的外部数据包装器
Telegram Multicorn PostgreSQL GitHub telegram_fdw 是一个使用 PostgreSQL 外部数据包装器接口实现的 Telegram BOT。
Twitter 原生 PostgreSQL GitHub PGXN 一个包装器,从 Twitter 获取文本消息并返回一个表
Treasure Data 原生 Apache GitHub PGXN 一个针对 Treasure Data 的 FDW,在内部使用 Rust 库
Treasure Data Multicorn Apache GitHub
Google 电子表格 Multicorn MIT GitHub
Open Weather Map Multicorn MIT GitHub 一个针对 Open Weather Map(单个城市)的 FDW
Airtable 包装器 Apache GitHub 文档 一个针对 Airtable 的外部数据包装器
Firebase 包装器 Apache GitHub 文档 一个针对 Firebase 的外部数据包装器
Logflare 包装器 Apache GitHub 文档 一个针对 Logflare 的外部数据包装器
Stripe 包装器 Apache GitHub 文档 一个针对 Stripe 的外部数据包装器

大数据包装器

数据源 类型 许可证 代码 安装 文档 注释
Elasticsearch Multicorn MIT GitHub 支持最高 PG 15、ES 8。
Google BigQuery Multicorn MIT GitHub 文档 bigquery_fdw 是一个与 PostgreSQL >= 9.5 兼容的 BigQuery FDW。
Google BigQuery 包装器 Apache GitHub 文档 一个针对 BigQuery 的外部数据包装器
file_fdw-gds(Hadoop) 原生 GitHub Hadoop file_fdw 是 PostgreSQL 9.3 的 file_fdw 模块的一个略微修改版本。
Hadoop 原生 PostgreSQL Bitbucket 允许读写访问 HBase 以及通过 Hive 访问 HDFS。
HDFS 原生 Apache GitHub
Hive Multicorn GitHub 用于访问 Apache Hive 表。
Hive / ORC 文件 原生 GitHub
Impala 原生 BSD GitHub
Apache Arrow 原生 GPLv2 GitHub PG-Strom 功能的一部分;作为支持 SSD-to-GPU 直接 SQL 的面向列的数据源。

面向列的包装器

数据源 类型 许可证 代码 安装 文档 注释
面向列的存储 原生 github 示例 PostgreSQL 的面向列的存储。
MonetDB 原生 github
GPU 内存存储 原生 GPL v2 github 针对 GPU 设备内存的 FDW;PG-Strom 功能的一部分,用于 PL/CUDA。

科学包装器

数据源 类型 许可证 代码 安装 文档 注释
Ambry Multicorn GitHub
ROOT 文件 原生 GitHub https://root.cern.ch
VCF 文件(基因型) Multicorn GitHub https://en.wikipedia.org/wiki/Variant_Call_Format

操作系统包装器

数据源 类型 许可证 代码 安装 文档 注释
Docker Multicorn Expat GitHub
日志文件 Multicorn PostgreSQL GitHub
OpenStack / Telemetry Multicorn PostgreSQL GitHub
OS 查询 Multicorn PostgreSQL GitHub 类似 Facebook 的 OSQuery,但针对 Postgres
Passwd 原生 PostgreSQL GitHub 读取 linux/unix 密码和组文件。
进程 Multicorn PostgreSQL GitHub 一个外部数据包装器,用于基于 statgrab 查询系统统计信息。
环境变量 Multicorn MIT GitHub envFDW 是一个用于处理环境变量的外部数据包装器。

奇特包装器

数据源 类型 许可证 代码 安装 文档 注释
faker_fdw Multicorn PostgreSQL GitHub faker_fdw 是一个用于 PostgreSQL 的外部数据包装器,它生成虚假数据。
fdw_fdw Multicorn PostgreSQL GitHub 元 FDW!读取此页面并返回所有 FDW 的列表。
PPG 原生 GitHub 基于 fdw 和 PG 的钩子的分布式并行查询引擎。
开放公民数据 Multicorn Expat GitHub
飞利浦 Hue 照明系统 Multicorn MIT GitHub
随机数 Multicorn PostgreSQL GitHub 用于 postgres 的随机数生成器外部数据包装器
Rotfang 原生 PostgreSQL BitBucket 幻灯片 高级随机数生成器
模板表 原生 BSD GitHub 用于模板表的 PostgreSQL 数据包装器 - 禁止任何 DML 和 SELECT 操作
VMware vSphere Multicorn MIT GitHub 用于查询 VMware vSphere 服务的 PostgreSQL FDW

示例包装器

数据源 类型 许可证 代码 安装 文档 注释
虚拟 原生 BSD GitHub 用于测试的可读空 FDW
你好世界 GitHub
你好世界 包装器 Apache GitHub README 一个演示外部数据包装器
黑洞 bitbucket 一个预先填充了文档相关摘录的骨架 FDW

编写外部数据库包装器