jdbc_fdw
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
jdbc_fdw | 1.2 | FDW | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 8530 | jdbc_fdw | 否 | 是 | 否 | 是 | 否 | 是 | - |
Package/source version 0.5.0; SQL extension version 1.2. PIGSTY RPM and DEB packages cover PostgreSQL 14-18 on x86_64 and aarch64; PGDG RPM 0.4.0 is a legacy alternative for PostgreSQL 14-16. Live queries require a JDBC driver and remote database.
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | MIXED | 1.2 | 1817161514 | jdbc_fdw | - |
| RPM | PIGSTY | 0.5.0 | 1817161514 | jdbc_fdw_$v | java-11-openjdk-headless |
| DEB | PIGSTY | 0.5.0 | 1817161514 | postgresql-$v-jdbc-fdw | default-jre-headless, libpq5 |
构建
您可以使用 pig build 命令构建 jdbc_fdw 扩展的 DEB 包:
安装
您可以直接安装 jdbc_fdw 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
使用 pig 或者是 apt/yum/dnf 安装扩展:
创建扩展:
用法
来源:
jdbc_fdw 将 JDBC 数据源暴露为 PostgreSQL 外部表,并可通过辅助函数执行远程 SQL。当存在合适的 JDBC 驱动但没有更专业的 FDW 时使用它;JVM、驱动 JAR、凭据和远程查询行为都在一个 PostgreSQL 后端进程中运行。
核心工作流程
v0.5.0 中没有表级选项。外部列按名称映射。当 UPDATE 或 DELETE 需要行标识时,请用 OPTIONS (key 'true') 标记远程主键列。
导入和直接 SQL
上游 README 中提到,IMPORT FOREIGN SCHEMA 当前仅适用于 GridDB。jdbc_exec 返回 record,因此返回多列的查询需要定义列列表。
重要选项与限制
- 服务器选项:必需的
drivername和url,绝对路径的jarfile,以及querytimeout和 JVM 的maxheapsize。 - 用户映射选项:
username和password。 - 列选项:
key = true标识可写操作中的主键列。 jdbc_exec(connname, sql)执行特定于驱动的 SQL 语句,并可以返回定义的记录集。
0.5.0 版本支持上游项目的谓词、列和聚合下推,但不支持远程 RETURNING、GROUP BY、ORDER BY、类型转换或事务控制语句。数组和外部表 TRUNCATE 未实现。请使用选定驱动程序测试数据类型的转换和写入语义。
保护 JAR 路径和服务器定义免受不可信用户的影响,将密码保存在用户映射中,并限制 JVM 堆大小和远程查询时间。源/包发行版为 0.5.0,而 jdbc_fdw.control 继续声明 SQL 扩展版本 1.2;请使用 pg_extension.extversion 而不是假设这些版本空间是相同的。