インサイトテクノロジー 宮地です。
データベース、データインテグレーション等について、コンサルティング、 トラブルシュートをメイン業務としております。
今年からCTOを拝命し、現場に出る機会は減ってしまいましたが、 やはり、現場でしか学べないこともあるので、なるべく現場にはでようとしている今日この頃です。(火消しは勘弁ですが・・・)
このブログでは、DX推進の前段となる、分析基盤へのデータインテグレーション手法や、各種データベースの内部動作等について定期的(不定期?)に紹介します。
それでは、本題に入ります!
今回から数回は、分析基盤へのデータインテグレーション手法について説明します。
データインテグレーション手法は大まかに4つあります。
データインテグレーション手法
- 全件/条件指定でデータ抽出/連携
- 差分のみ連携(トリガー方式)
- 差分のみ連携(ログベースの方式)
- 2フェーズコミットで連携
どの手法を採用するかは、
- 分析処理等で求められるデータの鮮度
- 費用 (安ければ安いほどいいですよね)
- 運用/変更の容易さ
といった要素を加味して決定することになります。
手法を1つずつ見ていく際に、上記要素についても適宜コメントしていきます。
それでは、それぞれのデータインテグレーションの手法について、見ていきましょう!
1.全件/条件指定でデータ抽出/連携
読んで字のごとし。 SELECTやCOPYでデータを抽出します。
- 連携元データベースから対象テーブルのデータをcsvファイル等に抽出
- (バッチサーバに送信)
- 分析基盤にロード
といったやり方となります。
基本的に、デリミタを指定してファイルに吐き出すだけ、なので、 実装は簡単です。
・データの鮮度
抽出タイミング時点のデータとなってしまうため、鮮度は悪い。 また、データの件数が増えるに伴い、抽出、ロード共に時間が掛かるようになってしまいます。 1億レコードが当たり前になってきているような環境では、処理の所要時間がネックになります。 なら、当日更新されたものだけ抽出、とすればよいのですが、 これをすると、ロードの際にマージ処理が必要となります。
・費用
基本的な仕組みを作ってさえしまえば、あとは同じやり方をするだけなので、費用はそれほど掛かりません。 テーブルの数にもよりますが、1~2ヶ月もあれば、実装・テストまで完了するのではないでしょうか。
・運用/変更の容易さ
仕組み自体が単純な為、運用/変更はそれほど手間がかかりません。 データ量が増えて想定した時間内に処理が終わらなくなる、連携元のテーブル定義が変更される場合に事前確認/個別対応が必要なことが ネックとなります。
総評
データの鮮度にこだわりが無い(例えば、前日のXX時時点でよい等)、 日中の更新はそれほどないテーブルであれば、この方式で事足ります。 データコネクタ/API製品も比較的安価で多数出ているので製品を使うことも検討しましょう。 次回は、その他の方式について説明します。