fdw.md 997 字节
Newer Older
M
Mars Liu 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
# 外部数据源

RDVD 公司有一个 Oracle 数据库和一个PG数据库,现在需要每天汇总一次 PG 中的订单表和 oracle 中的客户信息表,从中生成一份
报表。现在你想在尽量不增加冗余数据的前提下,在PG服务上每天执行一次简单的查询任务来生成报表,那么应该:

## 答案

* 在 PG 数据库建立一个 fdw 数据源,连接 Oracle 数据库
* 在 PG 服务器中建立一个视图, 对客户信息表进行的查询变成一个 PG 查询
* 基于客户信息视图和订单表生成每日报表

## 选项

### 异构平台无法直接复制,且复制节点会影响功能

* 设置 PG 为 Oracle 的复制节点
* 订阅 Oracle 的变更流

### 不可靠的方法

* 用一个定时任务复制 Oracle 中的客户信息变更
* 写入 PG 数据库

### 低效且占用空间

* 在 PG 服务器上建一个同构的客户表
* 在 Oracle 服务器上写一个触发器
* 将客户信息写入 PostgreSQL 数据库