外部数据包装器
来自 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 上的 CLI,GitHub 上的 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 数据库包装器
文件包装器
数据源 | 类型 | 许可证 | 代码 | 安装 | 文档 | 注释 |
---|---|---|---|---|---|---|
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 | |||
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 | |||
Multicorn | GitHub | |||||
Fixer.io | 基于 www_fdw | GitHub | ||||
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。 | ||
原生 | 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 |
编写外部数据库包装器
- Multicorn 是一个允许您使用 Python 编写 FDW 的扩展
- Holycorn 是一个允许您使用 Ruby 编写 FDW 的扩展
- 文档:编写外部数据包装器
- Black Hole FDW - 一个预先填充了文档相关摘录的骨架 FDW
- Guillaume Lelarge 的 FDW 教程
- django-fdw 用于测试 Django 和 Postgres 外部数据包装器的示例项目
- Wrappers 是一个开发框架,允许您使用 Rust 编写 FDW