2011年4月25日月曜日

ETLに必要な34の機能とは?

データウェアハウスの構築に欠かせないのがなんと言ってもETLツールです。
ETLツールとは、Extract, Transfer, Loadの略で、簡単にいってしまえば、
データウェアハウスの元データとなるソースシステムからデータを取ってきて、きれいにしてデータウェアハウスに
いれるという機能です。
と、言われてもピンとこないですよね。
では、具体的にETLツールにはどのような機能があるのでしょうか。

実は、データウェアハウスのコンサルティングで有名なキンボールグループでETLに必要なサブシステムについて
情報を提供しています。
今回はそのキンボールリストにならって各サブシステムについて解説していきたいと思います。
サブシステムが34もあるので、ちょっと長くなりますがお付き合いください。

1.データプロファイリング (Data Profiling)
データプロファイリングとは、データウェアハウスの構築となるソースデータの現状データを調査することです。
この調査をすることにより、ETLツールでどのようなクレンジングが必要になるかを計画することができます。
SQLなどで個々のテーブルを調査していくこともできますが、主要なETLツールはデータプロファイリングの機能をもっている場合が多いです。
たとえば、MicrosoftのSQL Sever Integration Service (SSIS)もデータプロファイリングの機能を持っています。

また、オープンソースでいえば、「DataCleaner」というツールがあります。
http://datacleaner
.eobjects.org

2.チェンジデータキャプチャ(Change Data Capture)
チェンジデータキャプチャとは、ソースシステムでどのデータが追加、変更、削除されたどうかを把握する仕組みです。
データウェアハウスにデータを反映する際は、ETLの負荷を減らすため、差分のみ反映する必要があります。
チェンジデータキャプチャには、さまざまな方法がありますが、最近は主要なデータベースがチェンジデータキャプチャの機能を
取り込んでいますので、確認してみるといいと思います。

3.データ抽出システム(Extract System)
これはソースシステムからデータを抽出し、ステージングエリアへ移動させるシステムです。
ソース元のデータベースへの接続方法や文字コードなど考慮する必要があります。

4.データクレンジングシステム(Data Cleansing System)
ソースデータが来るデータがいつも正しいとは限りません。というかたいていはエラーデータが含まれています。
データをチェックして、クレンジングまたは不正データをつかめることはETLの大事な機能ですね。

5.エラーイベントトラッキング(Error Event Tracking)
エラーを含んだデータを見つけたらそれがトラッキングできるようにする機能です。
どのデータにエラーが起きたのか後で確認できる必要があります。

6.監査ディメンション作成 (Audit Dimension Creation)
監査は現在重要な機能です。ということで、ETLプロセスを後で監査できるようにデータを記録する必要があります。

7.重複処理(Deduplication )
データウェアハウスは複数のデータベースから情報を取得するため、顧客や製品情報が重複しています。
これを統合して処理する必要があります。
ただ、最近はマスターデータマネジメント機能などがありますので、そちらでデータを統合したほうがよいかと思います。

8.データ共有化(Data Conformance)
これはConform dimensionなどを作ったり、あとでドリルアクロスができるようにディメンションを共有化しておく機能です。
インモンアプローチをとる場合はいらないかもしれません。

9.除々に変化するディメンション管理(Slowly Changing Dimension (SCD) Manager)
スタースキーマの要のSlowly Changing Dimension。これのロジックを管理する機能です。
最近のETLは基本的なSlowly changing Dimensionは簡単に構築できるようになっています。

10.サロゲートキー生成 (Surrogate Key Generator)
ぞれぞれのディメンションで必要となるサロゲートキーを生成する機能。

11.階層管理(Hierarchy Manager)
ディメンションの階層管理機能。

12.スペシャルディメンション管理(Special Dimensions Manager)
ジャンクディメンションやミニディメンション、日付ディメンションなどの特殊ディメンションの管理機能。

13.ファクトテーブル構築
主要な下記3つのファクトテーブルの構築を行う機能。
・トランザクション
・ピリオディックスナップショット
・アキュムレーションスナップショット

14.サロゲートキーパイプライン(Surrogate Key Pipeline)
オペレーションで使用するナチュラルキーを適切なサロゲートキーに変える機能。

15.マルチバリュードブリッチテーブル作成
ブリッチテーブルを作成する機能。

16.遅延データ処理(Late Arriving Data Handler)
データをデータウェアハウスに格納するときは、ディメンションを更新してから、ファクトを格納する必要がある。
しかし、ファクトがもうあるのにディメンションのほうはデータが更新されないということはよくある。
その場合に対応する機能です。基本的には一旦仮のディメンションに紐づけておいて、ディメンションが更新されてから
ファクトの紐づきを更新するのが基本のようです。
SSISでは「 Inferred Member Support」いうのがあってサポートされています。

17.ディメンション管理 (Dimension Manager)
共通ディメンション(conformed dimensions)を管理する機能。

18.ファクトテーブルプロバイダー
ファクトテーブルのアドミン管理、作成、維持、使用の管理機能。

19.サマリービルダー
サマリーを管理する機能。
データをサマリーするのは性能を向上する重要な機能ですが、管理、維持が大変なのでシステムである程度カバーする必要があります。

20. OLAP cubeビルダー
OLAP Cbueのデータロードおよび管理。
ETLというよりはOLAPの機能ですよね。

21.データ統合管理(Data Propagation Manager)
他のシステムとのデータ統合を管理する機能。

22.ジョブスケジューリング機能
ETLジョブの管理。

23.バックアップ機能(Backup System)
ETL環境のバックアップとリストア。

24.リカバリーと再スタート(Recovery and Restart)
ETL環境のリカバリーと失敗したジョブの再実行機能。

25.バージョン管理(Version Control)
ETLのバージョン管理。

26.バージョン移行(Version Migration)
開発環境からテスト、本番環境へETLを移行する機能。

27.ワークフロー監視(Workflow Monitor)
ETLワークフローの監視機能。

28.ソート
ETLでソートは重要な機能です。
データのクレンジングなどにもまずソートします。

29.リンクと依存管理(Lineage and Dependency)
ETLの修正で困るのがインパクト分析です。
データベースの項目がわかった場合にどのETLを直すべきか、この機能は非常に重要です。

30.問題エスカレーション
ETLは人的作業を介さずに自動で行うのが基本です。そして問題が発生したときに適切に処理して
通知する。それがこの機能です。

31.並列処理とパイプライング(Paralleling and Pipelining)
これはETLがマルチコアやグリッドコンピューティングを利用して効率よく処理する機能です。

32.セキュリティ
セキュリティはますます重要です。アクセスすべき人にのみアクセスさせる機能です。

33.コンプライアンス管理
コンプライアンス管理機能。

34.メタデータリポジトリ
メタデータの格納と管理。

これで以上になります。
このリストはながいですが、RFPなどのツール選定の評価項目として利用できるなど、なにかと便利です。

ぜひ、利用しましょう。

0 件のコメント:

コメントを投稿