db2_fdw
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
db2_fdw | 18.2.0 | FDW | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 8630 | db2_fdw | 否 | 是 | 否 | 是 | 否 | 否 | - |
| 相关扩展 | db_migrator db2fce pg_statement_rollback mysql_fdw orafce postgres_fdw tds_fdw oracle_fdw sqlite_fdw informix_fdw |
|---|
Latest PGDG RPM/catalog version is 18.2.0; Pigsty source remains 18.1.1; no DEB package is available.
版本
安装
您可以直接安装 db2_fdw 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:
使用 pig 或者是 apt/yum/dnf 安装扩展:
创建扩展:
用法
来源:README, current upstream README
db2_fdw 是一个 PostgreSQL foreign data wrapper,可从 PostgreSQL 查询和修改 IBM Db2 表。它会尽可能下推所需列和 WHERE 条件,并提供连接清理和诊断辅助函数。
创建服务器
服务器选项: dbserver(必填的 Db2 连接字符串)、batch_size(当前保留给未来批处理行为)、no_encoding_error(ON、OFF、YES、NO、TRUE 或 FALSE)。
创建用户映射
将 user 和 password 设为空字符串,可通过 Db2 客户端环境启用外部认证。
创建外部表
表选项: table(必填,Db2 表名或简单查询,区分大小写,通常为大写)、schema(表所有者)、readonly(默认 false)、sample_percent(ANALYZE 采样)、prefetch(每次往返获取的行数,默认 100,范围 0-1024)、fetch_size(可接受但当前固定为 1)、batch_size、no_encoding_error。上游文档将 max_long 标为 deprecated,且不再使用。
列选项: key(所有主键列都要设为 true,UPDATE 和 DELETE 必需),以及导入表上的 Db2 元数据选项,例如 db2type、db2size、db2bytes、db2chars、db2scale、db2null、db2ccsid。
导入外部模式
导入选项: case(keep、lower 或 smart,默认 smart)、readonly。
CRUD 操作
连接辅助函数
db2_close_connections() 会关闭当前会话中缓存的 Db2 连接。db2_diag() 会报告 db2_fdw、PostgreSQL、Db2 client,以及可选远端服务器的诊断详情。
数据类型映射
| Db2 类型 | PostgreSQL 类型 |
|---|---|
| CHAR | char |
| VARCHAR | varchar |
| CLOB | text |
| VARGRAPHIC, GRAPHIC | text |
| BLOB | bytea |
| SMALLINT, INTEGER, BIGINT | smallint, integer, bigint |
| DOUBLE | numeric, float |
| DATE | date |
| TIMESTAMP | timestamp |
| TIME | time |
WHERE 条件和列投影会下推到 DB2,以减少数据传输。