Foreign Data Wrapper(FDW)の機能強化


Foreign Data Wrapper(FDW)は外部データにアクセスするためのしくみです。OS上のファイルに直接アクセスする「file_fdw」と外部のPostgreSQLのテーブルにアクセスする「postgresql_fdw」が標準で提供されています。

非公式ですがOracleやMySQL、MongoDBなどのFDWもあり、それらもPostgreSQLのテーブルのようにアクセスできます。

👽 FDWの利用手順

外部サーバの定義

CREATE SERVERコマンドでアクセス先の外部サーバを定義します。

次の例はサーバpg_svr、ポート5432でアクセスできるPostgreSQLのDBdatabase_aに対してremote_serverという外部サーバを定義する例です。

CREATE SERVER remote_server FOREIGN DATA WRAPPER postgresql_fdw OPTIONS (host 'pg_svr', port '5432', dbname 'postgres');

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

CREATE USER MAPPINGコマンドでローカルユーザーと外部サーバのユーザーを紐付けます。

さきほど定義した外部サーバremote_serverのリモートユーザーpostgres、パスワード****を設定する例です。

CREATE USER MAPPING FOR public SERVER remote_server option (user 'postgres', password '****')

外部テーブルの作成

外部データにアクセスするためには、PostgreSQL上に外部テーブル(Foreign Table)を作成する必要があります。この外部テーブルの作成はIMPORT FOREIGN SCHEMAコマンドを使います。

あらかじめ定義した外部サーバremote_servertable_aをスキーマ情報を取得して、外部テーブルとして定義する例は次のとおりです。

IMPORT FOREIGN SCHEMA table_a FROM SERVER remote_server INTO table_a;

😎 参考リンク

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍