~PostgreSQLのFDW~外部データベース接続モジュールについて
今月の気になるオープンソース情報(2016年2月号)
OSS研究室 倉田 隆規
今回は、PostgreSQLの外部データベース接続を行えるモジュールFDWについて紹介します。
データベースサーバの利用時に、外部データベースのテーブル上のデータと結合して利用したい、種類の違うデータベースと連携して使いたいということはないでしょうか。
PostgreSQLには、9.1のバージョンからFDW機能が利用できます。FDWとは、Foreign Data Wrapperの略称で、PostgreSQLのFDW機能とFDWモジュールを組み合わせて利用します。外部に存在するデータベースをあたかも内部のデータベースのように扱うことができます。例えば、外部に存在するデータベースのデータの検索や追加、削除といった操作を行うことが可能です。外部のデータベースと内部のデータベースのテーブルを結合することもできます。
また、9.3のバージョンからは、トランザクション管理も行われています。内部データベースのトランザクションがコミット、あるいはアボートした際、外部データベースサーバのトランザクションもコミット、あるいはアボートします。
FDW機能を利用することで、内部のPostgreSQLデータベースに対し、SQL文を発行するだけで整形したデータを取得でき、処理が容易になります。そのため、従来の内部データベースのデータ取得、外部データベースのデータ取得、データの整形と行っていた処理が軽減されます。
外部のデータベースは、PostgreSQLだけではなく、サードパーティのOSSモジュールも利用できます。MySQLやLDAP、oracleといったデータベースに接続し、FDW機能を利用することが可能です。CSV用のモジュールを利用すれば、CSVのデータの取得もできます。
デージーネットでは、FDWの機能を利用し、外部のデータベースと連携するデータベースサーバの構築も行っています。外部のデータベースと連携を行う際は、FDW機能も検討されてみてはいかがでしょうか。