my opinion is my own

PostgreSQLのpostgres_fdw拡張機能の実行

postgres_fdwの実行

拡張機能の有効化

CREATE EXTENSION postgres_fdw;

外部サーバの定義

test1データベースに対しての外部サーバを作成する

CREATE SERVER fdw_app FOREIGN DATA WRAPPER postgres_fdw OPTIONS (dbname 'test1');

外部サーバのユーザーマップ定義

CREATE USER MAPPING FOR public SERVER fdw_app OPTIONS (user 'postgres', password 'postgres');

外部テーブルの作成

fdw_app外部サーバを使用してt2テーブルを外部テーブルとして作成する

CREATE FOREIGN TABLE t2 (a integer, b text,c text, d timestamp with time zone) SERVER fdw_app;

外部テーブルの場合はtypeがforeign tableになる模様

postgres=> \d
                List of relations
 Schema |    Name     |     Type      |  Owner   
--------+-------------+---------------+----------
 public | t1          | table         | postgres
 public | t2          | foreign table | postgres
 public | v_dblink_t1 | view          | postgres

IMPORT FOREIGN SCHEMAを使用して外部テーブルの作成も可能。

検索

postgres=> select count(*) from t2;
   count   
-----------
 100000000
(1 row)

postgres_fdwの特徴

postgres_fdwの注意点

参考

F.33. postgres_fdw https://www.postgresql.jp/document/13/html/postgres-fdw.html

PostgreSQL 9.6 の postgres_fdw について検証してみた | SIOS Tech. Lab https://tech-lab.sios.jp/archives/8641#i

外部データとの連携 ~FDWで様々なデータソースとつなぐ~|PostgreSQLインサイド : 富士通 https://www.fujitsu.com/jp/products/software/resources/feature-stories/postgres/article-index/fdw-overview/

---

関連しているかもしれない記事


#PostgreSQL