PostgreSQL9.3 開発と運用を支える新機能

EnterpriseZine / 2014年2月28日 0時0分

図22:フェイルオーバ時間の比較(9.2 vs 9.3)

 前回は、PostgreSQL 最新バージョン 9.3の新機能の中からエンタープライズ領域の注目すべき機能について紹介しました。今回も引き続き、開発・運用面において、注目すべき機能をさらに詳しくお届けします。

■PostgreSQLデータベース間のスムーズなデータ連携を実現するpostgres_fdw

 開発面で注目すべき機能としてpostgres_fdwをご紹介します。

 PostgreSQL 下位バージョンではデータベース間のデータ連携機能としてdblinkモジュールが提供されていましたが、postgres_fdwはその後継機能にあたり、PostgreSQL 9.3ではcontrib配下に含まれる形式で提供されています。

 postgres_fdwでリモートデータを連携するステップは以下の通りです。1度設定してしまえば、その後はローカル表と同じようにリモート表にアクセスできます。

  1.CREATE EXTENSIONコマンドでpostgres_fdwモジュールを読み込み
  2.CREATE SERVERコマンドで接続先のデータベース情報を定義
  3.CREATE USER MAPPINGコマンドで接続先のユーザ情報を定義
  4.CREATE FOREIGN TABLEコマンドでリモート表をローカル側に定義

 ※手順2および3がOracle DatabaseのCREATE DATABASE LINKコマンドに相当します。

 postgres_fdwはdblinkと比べてどのような特徴をもっているのでしょうか。ここでは主な特徴を2つご紹介します。

●1.SQLにローカル表と同じ形式でリモート表を記述できる

 例えば、リモートにあるsup_log表に対してpostgres_fdwとdblinkそれぞれを利用してSELECT文を実行する例を見てみましょう。

 dblinkを利用した場合、図8のようにSELECT文の中でdblink関数を呼び出す形で接続先のデータベース名などの情報を付加してリモートのsup_log表にアクセスする必要があります。

 一方、postgres_fdwを利用した場合、SQLにローカル表と同じ形式でリモート表を記述します。postgres_fdwでは特殊な構文を習得する必要がないため、アプリケーション開発の難易度を低減することができます。

●2.結合処理の際、データ転送量を抑制できる

  • 前のページ
    • 1
    • 2
  • 次のページ
EnterpriseZine

トピックスRSS

ランキング