PostgreSQLでODBC_FDWを使ってSQL Serverを参照する方法(pgAdmin4)

PostgreSQLは、外部データソースを参照するための多くの機能を提供しています。その中でも、odbc_fdw (ODBC Foreign Data Wrapper) は、ODBCドライバーを介して他のデータベース(例えばSQL Server)に接続するための便利なツールです。この記事では、PostgreSQLで odbc_fdw を使ってSQL Serverを参照する方法について説明します。

前提条件

  1. PostgreSQLがWindowsサーバインストールされていること
  2. SQL Serverがインストールされていること
  3. pgAdmin4がインストールされていること

PostgreSQLのodbc_fdw拡張をインストールします

  1. odbc_fdwをダウンロードする
    https://www.postgresonline.com/journal/index.php?/archives/405-PostgreSQL-15-64-bit-for-Windows-FDWs.html
  2. 解凍して、 PostgreSQLがインストールされたフォルダ(C:\Pgoram Files\PostgreSQL\15)に解凍した資材(lib,share)を上書きコピーする

ODBC Data Source (DSN) の設定

次に、SQL Serverへの接続を定義するODBC Data Sourceを設定します。

ODBC Data Source Administratorを使用して、新しいDSNを設定します。

  1. ODBC Data Source Administratorを開きます。
  2. “システム DSN” タブで “追加” をクリックします。
  3. “SQL Server” を選択して “完了” をクリックします。
  4. DSNの詳細を入力します(例:サーバー名、データベース名、認証情報)。

PostgreSQLでodbc_fdwをセットアップ

1. 拡張機能を有効化

まず、odbc_fdw 拡張機能を有効にします。

  1. pgAdmin4を起動して、PostgreSQLサーバを接続する
  2. 作成するDBを選択して右クリックメニューで、作成->拡張をクリックします
  3. 拡張作成画面で名前はodbc_fdwを選択して、保存する
2. 外部サーバーを作成

次に、ODBC DSNを使用して外部サーバーを作成します。

  1. DBのツリーから外部データラッパ->odbc_fdw->外部サーバを選択して右クリック、メニューから作成-> 外部サーバをクリックする
  2. 外部サーバ作成画面で名前を入力する
  3. オプションタブで先作成したdsnの情報を入力して保存する
3. ユーザー・マッピングの作成

外部サーバーへの接続に使用するユーザー・マッピングを作成します。

  1. 先作成した外部サーバー[sqlserverlink]を選択右クリックして、メニューから作成->ユーザマッピングをクリックする
  2. ユーザマッピング作成画面でマッピングするユーザ(postgres)を選択する
  3. オプションタブでリンク先のSQLServer接続情報(odbc_UID,odbc_PWD)を入力して保存する
4. 外部テーブルを作成

外部サーバー上のテーブルを参照するための外部テーブルを作成します。以下は、SQL Serverのテーブル yourtable を参照する例です。

  1. 作成するデータベースからスキーマ->public->外部テーブルを選択右クリックして、メニューから作成->外部テーブルをクリックする
  2. 外部テーブル作成画面で、名前(任意テーブル名、ここはyour_linktable)を入力する
  3. 定義タブで、外部サーバを先作成した外部サーバ(sqlserverlink)を選択する
  4. 列タブで、列情報を入力する
  5. オプションタブで、参照先のテーブル情報と列名のマッピング情報(列名同じ場合入力不要)を入力して保存する

まとめ

以上が、PostgreSQLで odbc_fdw を使ってSQL Serverを参照する方法です。この設定により、PostgreSQLから直接SQL Serverのデータをクエリすることができ、データ統合や分析が容易になります。ぜひ試してみてください。

コメント

タイトルとURLをコピーしました