外部数据包装器

来自 PostgreSQL 维基
跳转到导航跳转到搜索

外部数据包装器

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

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

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


通用 SQL 数据库包装器

数据源 类型 许可证 代码 安装 文档 说明
ODBC 原生 github CartoDB 接管了 PG 9.5+ 的 ODBC FDW 的主动开发
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 一个通用的 FDW,用于访问 VirtDB 数据源(SAP ERP、Oracle RDBMS)
API(通过 Steampipe 插件 原生 CLI 和 FDW 扩展:AGPL 3.0,插件:Apache 2.0 GitHub 上的 CLIGitHub 上的 FDW 扩展 Steampipe 下载 Steampipe 文档Postgres FDW 文档 Steampipe 将 Postgres 与一个 FDW 扩展捆绑在一起,该扩展支持不断增长的 插件 生态系统。插件使用 API,将它们映射到表,并启用在 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 维基
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 维基 允许查询不同的 Web 服务
pgsql-http 原生 PostgreSQL GitHub 编译 允许使用 CURL 库查询任何 http 资源。作者:Paul Ramsey

特定 Web 包装器

数据源 类型 许可证 代码 安装 文档 说明
OAI-PMH 原生 MIT GitHub README 用于访问 OAI-PMH 存储库(开放档案倡议协议,用于元数据收集)的 PostgreSQL 外部数据包装器。此包装器支持 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 测试版
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 一个使用 Rust 库在内部用于 Treasure Data 的 FDW
Treasure Data Multicorn Apache GitHub
Google Spreadsheets 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 到 GPU 的直接 SQL 的列式数据源

列式包装器

数据源 类型 许可证 代码 安装 文档 说明
列式存储 原生 github 示例 PostgreSQL 的列式存储。
MonetDB 原生 github
GPU 内存存储 原生 GPL v2 github FDW 到 GPU 设备内存;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 PostgreSQL 随机数生成器外部数据包装器
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

编写外部数据库包装器