jdbc_fdw
访问JDBC可访问的任何外部数据源
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
jdbc_fdw | 0.4.0 | FDW | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 8530 | jdbc_fdw | 否 | 是 | 否 | 是 | 否 | 是 | - |
| 相关扩展 | wrappers multicorn odbc_fdw oracle_fdw mysql_fdw tds_fdw db2_fdw postgres_fdw |
|---|
missing el.aarch64
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PGDG | 0.4.0 | 1817161514 | jdbc_fdw | - |
| RPM | PGDG | 0.4.0 | 1817161514 | jdbc_fdw_$v | java-11-openjdk-headless |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PGDG MISS | PGDG MISS | PGDG 0.4.0 el8.x86_64.pg16 : jdbc_fdw_16 jdbc_fdw_16-0.4.0-1PGDG.rhel8.x86_64.rpm
| PGDG 0.4.0 el8.x86_64.pg15 : jdbc_fdw_15 jdbc_fdw_15-0.4.0-1PGDG.rhel8.x86_64.rpm
| PGDG 0.4.0 el8.x86_64.pg14 : jdbc_fdw_14 jdbc_fdw_14-0.4.0-1PGDG.rhel8.x86_64.rpm
|
| el8.aarch64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| el9.x86_64 | PGDG MISS | PGDG MISS | PGDG 0.4.0 el9.x86_64.pg16 : jdbc_fdw_16 jdbc_fdw_16-0.4.0-1PGDG.rhel9.x86_64.rpm
| PGDG 0.4.0 el9.x86_64.pg15 : jdbc_fdw_15 jdbc_fdw_15-0.4.0-1PGDG.rhel9.x86_64.rpm
| PGDG 0.4.0 el9.x86_64.pg14 : jdbc_fdw_14 jdbc_fdw_14-0.4.0-1PGDG.rhel9.x86_64.rpm
|
| el9.aarch64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| el10.x86_64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| el10.aarch64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| d12.x86_64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| d12.aarch64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| d13.x86_64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| d13.aarch64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| u22.x86_64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| u22.aarch64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| u24.x86_64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
| u24.aarch64 | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS | PGDG MISS |
安装
您可以直接安装 jdbc_fdw 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:
pig repo add pgdg -u # 添加 PGDG 仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install jdbc_fdw; # 当前活跃 PG 版本安装
pig ext install -y jdbc_fdw -v 16 # PG 16
pig ext install -y jdbc_fdw -v 15 # PG 15
pig ext install -y jdbc_fdw -v 14 # PG 14
dnf install -y jdbc_fdw_16 # PG 16
dnf install -y jdbc_fdw_15 # PG 15
dnf install -y jdbc_fdw_14 # PG 14
创建扩展:
CREATE EXTENSION jdbc_fdw;
用法
创建服务器
CREATE EXTENSION jdbc_fdw;
CREATE SERVER jdbc_server FOREIGN DATA WRAPPER jdbc_fdw
OPTIONS (
drivername 'org.postgresql.Driver',
url 'jdbc:postgresql://remotehost:5432/mydb',
jarfile '/usr/share/java/postgresql.jar',
maxheapsize '256'
);
服务器选项: drivername(必填,JDBC 驱动类)、url(必填,JDBC 连接 URL)、jarfile(必填,JDBC 驱动 JAR 的绝对路径)、querytimeout(查询超时秒数)、maxheapsize(JVM 堆大小 MB,最小 1)。
创建用户映射
CREATE USER MAPPING FOR CURRENT_USER SERVER jdbc_server
OPTIONS (username 'dbuser', password 'dbpass');
创建外部表
CREATE FOREIGN TABLE remote_table (
id integer OPTIONS (key 'true'),
name text,
value numeric
)
SERVER jdbc_server
OPTIONS (table_name 'schema.tablename');
在主键列上设置 key 'true' 以启用 UPDATE 和 DELETE 操作。
查询远程数据
SELECT * FROM remote_table WHERE id > 100;
使用 jdbc_exec 执行任意 SQL
jdbc_exec 函数在远程数据库上执行 SQL 并返回结果集:
SELECT * FROM jdbc_exec('jdbc_server', 'SELECT id, name FROM remote_schema.remote_table WHERE status = 1')
AS t(id integer, name text);
这对于执行超出外部表定义范围的查询很有用,包括在远程服务器上执行 DDL 或复杂查询。