2015年6月2日火曜日

異なるOracle DB間でデータ参照する

システムを構築していると、システムAで保持している情報Xを、システムBで必要とする場合がよくあります。
ベンダーが違うと、インターフェースを設けてデータ連携、なんていう対応方法が定石ですが、これだと、

  • データ連携に(多少なりとも)タイムラグが発生する
  • 同じデータを複数のシステムで管理することになる

というので、あまり好きではありません。アーキテクチャーとしては、もっとシンプルにしたい。オブジェクト指向みたいに、データをラッピングする、的な。

横道に逸れましたが、異なるDB間でデータを共有する方法はいくつかあるようです。
Oracleだとデータベースリンクがあるとのこと。
異なるサーバのDBデータ同士を結合するには?

OracleのHPを探すと、ありました。
分散データベースの概念

「同機種間分散データベース・システム」というのがOracle DB同士のデータ連携らしい。バージョンとか文字コードの問題とかが解決できれば、技術的には普通のレベルのようです。
「異機種間分散データベース・システム」 は、少なくとも一方がOracleだと良い(当たり前か)ようです。これだと、SQL Serverとかとも連携できるよう。


分散データベースなんて昔からの技術なので、 インターフェースを設けずにデータを直接参照する、ということは十分考えられますが、異なるベンダー間だと、

  • 他ベンダーから変な負荷をかけられるのは嫌(責務が不明瞭になる)
  • 契約時に相手ベンダーとバージョンチェックとか余計な手間がかかる(相互に依存するシステムになってしまう)

といった背景で、疎結合のままにしているというのが現実解のようです(というか、自分が担当しているシステムでもそう)。

0 件のコメント:

コメントを投稿