TOPサーバ構築・運用> オープンソースのデータベースと商用データベース
異種DB/データ連携
本当は難しい異種データベース連携〜DataCoordinatorで解決〜

第3回:DataCoordinatorでデータ連携を試す
著者:日本電気  白馬 智博   2007/3/30
1   2  3  4  次のページ
オープンソースのデータベースと商用データベース

   オープンソースのデータベースと商用のデータベースを連携する状況としては、「第1回:データ連携の必要性を再確認」で紹介したデータ連携の目的のうちデータ活用がもっともあてはまります。

   例題とするのは、基幹システムの在庫データを全社員が直接参照し、その負荷によって業務全体の処理遅延が発生するケースとします。

   処理遅延による顧客満足度の低下や直接的な売上減少を防止するため、負荷分散の目的で10の支店へ基幹システムのデータを分散して参照するシステムを構築するとしましょう。このケースでは、それぞれの支店へ基幹システムと同じ商用のデータベースを入れることがもっとも多い解決策だと思いますが、ライセンス料を抑えたいという要望があるはずです。

   ライセンスのコストをダウンするために、10の支店に導入する参照システムはオープンソースのデータベースを使用して構築することが考えられます。なお、最近では商用のデータベース製品に無償版が提供されているケースもありますが、エンタープライズ分野で利用実績があるオープンソースをとりあげます。

   どちらのデータベースを使用してシステムを構築してもSI費をほぼ同等とした場合、商用データベースを支店に導入するのに比べ、基幹データベースとオープンソースのデータベース間をDataCoordinatorのようなデータ連携ツールを使った方が全体の初期投資費用は安価となります。

表の準備

   では、DataCoordinatorを使用して、商用データベースを「Oracle Database 10g Release 10.2.0.1.0」、オープンソースを「PostgreSQL 8.1.5」と想定したデータを連携する方法を解説します。

   商用データベース側では以下のように表を準備します。

create table master_table
 (goods_code    char(6) primary key,
  goods_name    char(7),
  price         integer);

   オープンソースのデータベース側では、以下のように作業を行います。

create table low_price_table
 (goods_code    char(6) primary key,
  goods_name    char(7),
  price         integer);
create table high_price_table
 (goods_code    char(6) primary key,
  goods_name    char(7),
  price         integer);

   テストに使用するデータは、商用データベースのみに挿入しておきます。

insert into master_table values ('A-7001',’goods_a’,100,000);
insert into master_table values ('B-3001',’goods_x’,37,000);
insert into master_table values ('A-8001',’goods_g’,280,000);
insert into master_table values ('A-7002',’goods_b’,120,000);
insert into master_table values ('B-3003',’goods_y’,25,000);

   今回のデータ連携では、master_tableからlow_price_table、high_price_tableへデータを送ります。その際、low_price_tableへは価格が10万円未満の商品だけ、high_price_tableへは価格が10万円以上の商品だけを送ります。

   上記のデータをそれぞれのデータベースに送った場合、以下のように振り分けられることになります。

low_price_table
‘B-3001’,’goods_x’,37,000
‘B-3003’,’goods_y’,25,000
high_price_table
‘A-7001’,’goods_a’,100,000
‘A-8001’,’goods_g’,280,000
‘A-7002’,’goods_b’,120,000

   なお文中で、データを抽出する元になる表(今回の例では、master_table)を「マスタ表」、データを反映する先の表(今回の例では、low_price_tableとhigh_price_table)を、それぞれ「レプリカ表」と呼びます。

   DataCoordinatorでデータ連携定義を作成する場合、あらかじめ反映する先となるレプリカ表を登録しておく必要があります。

1   2  3  4  次のページ



著者プロフィール
日本電気株式会社  白馬 智博
入社当初はMFのデータベース開発に携わりました。その後、大規模案件のSE(インフラ構築、運用)を経験。現在は、データ連携製品のプリセールを担当して、日々奮闘しています。


INDEX
第3回:DataCoordinatorでデータ連携を試す
オープンソースのデータベースと商用データベース
  レプリカ表の登録
  アイコンをつなぐ
  スケジュールの設定