PostgreSQLからInformix(両方の最新バージョン)への接続をセットアップするのを手伝ってください。PostgreSQLからInformixでクエリを実行できるようにしたいと思います。すべてのクエリに対して(Informixからの)データのエクスポートと(PostgreSQLへの)インポートを必要としないソリューションを探しています。
私はPostgreSQLを初めて使用するので、詳細な手順が必要です。
PostgreSQLからInformix(両方の最新バージョン)への接続をセットアップするのを手伝ってください。PostgreSQLからInformixでクエリを実行できるようにしたいと思います。すべてのクエリに対して(Informixからの)データのエクスポートと(PostgreSQLへの)インポートを必要としないソリューションを探しています。
私はPostgreSQLを初めて使用するので、詳細な手順が必要です。
Chris Travers が言ったように、やりたいことは簡単ではありません。
理論的には、Informix を使用していて PostgreSQL にアクセスする必要がある場合は、Enterprise Gateway Manager (EGM) を (購入して) 使用し、PostgreSQL 用の ODBC ドライバーを使用して、Informix が PostgreSQL に接続できるようにすることができます。EGM は、実際に PostgreSQL にアクセスしている間、別の Informix データベースに見えるように最大限の努力をします。(PostgreSQL がサポートされていることは確認していませんが、EGM が動作するには基本的に ODBC ドライバーが必要なので、問題はないはずです。おそらく「有名な最後の言葉」です。) これには、2PC のエミュレーション (2 フェーズ専念); 完全ではありませんが、適度に近いです。
逆の接続 (PostgreSQL との連携と Informix への接続) については、PostgreSQL ツール スイートまたはその他のソースを参照する必要があります。
使用しているバージョンについては言及していません。注意すべきいくつかの制限がありますが、幅広い選択肢があります。
これはインポート/エクスポートだとおっしゃっているので、読み取り専用オプションでは不十分だと思います。これは、PostgreSQL 9.1 の外部データ ラッパー システムを除外します。
バージョンによっては、David Fetter の DBI-Link がニーズに合う場合があります。これは、リモート テーブルでクエリを実行できるためです ( https://github.com/davidfetter/DBI-Linkを参照)。しばらく更新されていませんが、実装は非常に安定しており、バージョン間で使用できるはずです。それが失敗した場合は、信頼できない言語 (PL/PythonU、PL/PerlU など) でストアド プロシージャを記述して、Informix に接続し、そこでクエリを実行できます。この場合に実行されるトランザクション処理には制限があるため、遅延制約トリガーを使用して他のテーブルでクエリを実行し、すべてがコミット時に実行されるようにすることをお勧めします。
編集:よりクリーンな方法が思い浮かびました:インポートには外部データラッパーを使用し、エクスポートには別のクライアントアプリを使用します。
このアプローチでは、4 つの基本的なコンポーネントが必要になりますが、これらは疎結合であり、適切なトランザクション制御の対象となります。必要に応じて、2 フェーズ コミットを使用することもできます。4 つのコンポーネントは次のとおりです (ここでは完全に機能する例を提供していませんが、少なくとも 1 つのロードマップを提供しています)。
LISTEN export_informix;
NOTIFY export_informix
通知はコミット時にリアスされるため、基本的に次のようにトランザクションに 2 つの段階があります。