社内(イントラネット)とクラウド間で、データを双方向に連携します。
テーブル単位でDB間の連携を実施します。
連携するテーブルによっては、条件づけが必要な場合もあります。
クライアント側、サービス側のモジュールを整備し、クライアント側から送信/受信を制御しています。 通信には、SSLを利用しています。
思想の話題
連携テーブルとシステムで利用する業務テーブルは、用途が異なるため区別するべきです。
「連携テーブル」とは、外部のシステムや他のデータベースから情報を受け取るためのテーブルで、一方の「業務テーブル」とは、実際の業務処理やアプリケーションで使用されるテーブルです。
連携するデータは、常に正しいとは限りません。そのため、業務システムから連携テーブルを直接利用すると、想定できないトラブルの温床となってしまいます。
事前に仕様書が提供されていても、カラム名が違う、型が違うなど、現地で発覚することがあります。
また、システム稼働後、連携元のルールが変更されることもあります。
下流側へ通知されず、意図した連携ができずに問い合わせがあり、問題に気付くこともあります。
取り組み方の話題
連携テーブルから業務テーブルへデータを移行する際に、単にデータを転送するだけではなく、データのクレンジング(不要なデータを削除すること)や加工(データを業務に適した形に整えること)ができる余地を残しておくこともポイントです。
「連携テーブル」と「業務テーブル」の二つに分けることにより、データベースには多くのテーブルが存在することになります。
しかしながら、この構成で構築することで、データの品質を高め、より有効に業務で使用することが可能になると考えています。
扱うデータ量やリアルタイム性(同期性)など考慮する点も多々ありますが、データの防波堤を準備しておくイメージがよいと考えています。
まとめ
データを整理しやすくするために、データを受け取るテーブルと実際に業務で使用するテーブルを明確に分け、データを取り込む過程で調整・改善の余地を設けることがポイントです。
インターネットと社内(イントラネット)間のデータ連携がテーマですが、この考え方はシステム間のデータ連携全般に適応可能と考えています。
技術:SSL、データ交換のための「永続化」、DB制御のための「SQL」
範囲:企画、設計、開発、保守