2011年4月30日土曜日

第1回:業務データベースと分析データベース

皆さん、こんにちは。
今回は第1回ということで、予定どおり、業務データベースと分析データベースについて説明したいと思います。

業務データベースと分析データベース
データベースをデータの利用という観点から考えると、「業務データベース」と「分析データベース」という2種類のデータベースに分けることができます。

業務データベースはその名の通り、業務で利用するデータベースです。英語で、Operational databaseと言います。人事データベース、会計データベース、販売管理データベースなどが業務データベースにあたります。簡単に言ってしまえば、そのデータベースがないと業務自体成り立たないデータベースのことです。業務データベースのデータは業務が完結してしまえば、データが不要になりますので、データの保持期間は短くなります。データは挿入(Insert), 更新(Update), 削除(Delete)が中心となります。また、業務に利用するデータベースなので、明細の情報に素早くアクセスできる必要があります。

一方、分析データベースとは、分析に利用するデータベースです。英語でAnalytical databaseと言います。データウェアハウスはこの分析データベースにあたります。当然、分析がメインですので、データの保持期間が多く、大量のデータを保持します。データの変化にも着目しますので、変更履歴を保持することとなります。分析が目的ですので、データは挿入(Insert)が中心となります。また、分析に必要となるレポーティングを提供するので、データベースのレスポンスは業務データベースと比べて、レスポンスタイムの許容時間は大きくなります。

業務データベースと分析データベースは分ける必要があるか?
業務データベースと分析データベースは分離するのが、一般的です。これは上で説明したようにデータベースの利用目的が異なるためです。仮に業務データベースと分析データベースを一緒にした場合、分析に利用するクエリやプログラムはサーバに大きく負荷がかかるため業務データベースに支障をきたします。最悪の場合、業務が遅れるということもありえます。また、分析データベースは様々なデータの関連性を見るため、様々n業務データベースを1つの場所にまとめる目的もあります。
これによりキャンペーンと売上の関連性Webの利用と売上の関連性などの分析が可能になります。たまに業務システムで分析機能も網羅しようとし、肥大化してしまったシステムを見ることがありますが、システムメインテナンスが膨大になり、分析も満足にできない状態です。そのため、業務データベースと分析データベースは必ずわけましょう。

分析データベースには業務データベースと違ったアーキテクチャ、テクニックが必要となる
上記で説明したように分析データベース、つまりデータウェアハウスは大量データを保持し、大量データを分析処理する必要があります。そのため、その要件を満たすために業務データベースとは違ったアーキテクチャ、データモデリングテクニックが必要となります。たとえば、業務データベースに正規化のリレーショナルモデリングのテクニックがあるように、分析データベースにはスタースキーマと呼ばれるテクニックがあります。各ベンダーが販売しているデータウェアハウス、BI関連ツールもデータウェアハウス用のテクニックを前提に開発されています。そのため、これらのテクニックをすることはこれのツールを最大限に利用するための良いバックグランドとなります。

次回以降では、データウェアハウスのアーキテクチャ、モデリングテクニックなどを紹介していきます。

第0回:自己紹介とコラム紹介

皆さん、こんにちは。SHIMOと申します。
これから21回にわたって、「データウェアハウス/BI技術を学ぼう!」と題して、データウェアハウス/BI技術についてのコラムを掲載していきたいと思います。今回は、コラム掲載の最初ということで、第0回と称して、自己紹介と掲載するコラムの全体像について記載したいと思います。

自己紹介
では、最初に自己紹介。改めまして、名前はSHIMOともうします。
経歴ですが、大学を卒業後、システムインテグレータに勤務して、Webシステムを中心に、システムエンジニアとして勤務していました。その後、アメリカのソフトウェアを日本市場に販売するソフトウェアの代理店会社に転職し、そこでマーケティング部門のITスペシャリストして勤務しました。その後、さらに転職し、現在某外資系消費財メーカーのシステム部門でシステムアナリストして勤務しています。長らく、マーケティングシステムのプロジェクトを担当しておりましたが、現在はセールシステムのデータウェアハウス/BIを担当しています。

日本語で読めるデータウェアハウス/BI技術の情報が少ない
現在の会社に勤務してから、データウェアハウス/BIについての知識が必要になり、勉強し始めました。大学を卒業して以来、システムの勉強は書籍などを利用して独学を中心に勉強してきましたので、早速書籍を購入して独学でデータウェアハウス、BIの勉強を始めることとしました。しかし、日本語で読めるデータウェアハウス/BI技術情報が非常に少ないことに気づきました。また、日本語で読めるものは、概要を扱ったものが多く、実際に設計をしてデータウェアハウスを構築するレベルが勉強できるものはほとんどありませんでした。Webサイトで情報を探してみましたが、それぞれの製品に特化した情報が多く、私が臨んでいた情報を提供するサイトはありませんでした。そんな中で、アメリカでは非常に優れたデータウェアハウス/BI技術に関する書籍が多く出版されているのに気づきました。早速、その多くを購入し、すこしずつ読み進めていくとデータウェアハウス/BIには昔から優れた設計技術などが考案されており、各会社が販売している製品もそれらの設計思想をもとに開発されており、それらを学ぶことによりより生産性が高まることがわかりました。

優れたデータウェアハウス/BI技術を広げたい
しかし、それらの優れた設計技術などは日本ではあまり広まっていないようです。何度がデータウェアハウス/BI技術を担当しているSEの方にお会いしましたが、業務システムのテクニックをそのまま、データウェアハウスに利用しており、各会社の製品ツールも使いこなしているレベルにほど遠いことがわかりました。
そこで、このコラムでは、21回にわたって、データウェアハウス/BIにおける主要トピックスについて、説明をしたいと思います。このコラムが皆様がデータウェアハウス/BIを構築するにあたって少し役に立てば幸いです。

コラムの全体像
このコラムでは、全21回にわたって、データウェアハウス/BI技術について解説します。これがすべてではありませんが、どうしても知ってほしいトピックスはある程度カバーしているのではないかと思います。
予定している内容は下記となります。

コラム内容:
データウェアハウス基礎
第1回:業務データベースと分析データベース
第2回:データウェアハウスアーキテクチャ(1):インモンのコーポレートインフォメーションファクトリー
第3回:データウェアハウスアーキテクチャ(2):キンボールディメンショナルデータウェアハウス
第4回:データウェアハウスアーキテクチャ(3):データボルトモデリング
データウェアハウスモデリング
第5回:ディメンショナルモデリング:スタースキーマ
第6回:ディメンショナルモデリング:階層とスノーフレーク
第7回:ディメンショナルモデリング:ディメンション設計:スローリーチェンジングディメンション
第8回:ディメンショナルモデリング:ファクト設計:トランザクション、スナップショット、アキュムレーションスナップショット
第9回:ディメンショナルモデリング:ファクト設計:ファクトレスファクトテーブル
ETL
第10回:ETL34サブシステム 1-10
第11回:ETL34サブシステム 11-22
第12回:ETL34サブシステム 23-34
第13回:ETLチェンジデータキャプチャ
OLAP
第14回:ROLAP,MOLAPの違い
第15回:MDX超入門
Data Warehouse/BI導入
第16回:Data warehouse/BI導入の勘どころ
製品紹介
第17回:マイクロソフト製品
第18回:SAP製品
第19回:Open souce Pentaho
データウェアハウス用語
第20回:データウェアハウス/BI用語解説
知識体系
第21回:DMBOKの紹介

最初にデータウェアハウスの基本的知識について解説し、データモデリング,ETL,OLAPについて解説します。これでひととおりカバーできますが、具体的な製品イメージがあったほうがよいと思いますので、主要な製品について解説したいと思います。最後に用語と知識体系についてちょこっと説明します。

あくまで予定ですので、書いていくうちに内容がどんどん膨らむかもしれません。内容が膨らんでしまった場合は、適宜内容をわけていきたいと思います。

それでは、次回より第1回を掲載します。

データウェアハウス/BI技術についてのコラムを掲載

このブログサイトで、データウェアハウス/BI技術について紹介、説明してきましたが、コラムというかたちで体系的にまとめたものを掲載していきたいとおもいます。
コラムタイトルは「データウェアハウス/BI技術を学ぼう!」です。
データウェアハウス、BIの主要トピックをメインに解説していきたいと思います。

2011年4月26日火曜日

マイクロソフトのデータウェアハウス、BIソリューション

マイクソフト、されど、マイクロソフト。
マイクソフトが嫌いな人は多いですが、会社で一番使われているはマイクロソフトです。
しかも、マイクロソフトの製品を既に使っているので、使い勝手などのなれについてはやっぱりマイクロソフトに軍配があがります。

というわけで、マイクロソフトの製品でデータウェアハウス、BIソリューションを実施した場合の製品構成について書いてみたいと思います。

まずはデータベース。これはなんといってもSQL Server 2008 R2です。しかし、今度の課題はパフォーマンスでしょうか。やっぱり、テラデータやネティーザなどの専用データベースにくらべるとちょっと感は否めません。しかし、パラレルデータベースなど新製品がどんどん出てきているので、今後に期待です。

次にETLツール。これは、SQL Server Integration Serviceという製品になります。通常SSISなんてよばれます。Slowly Changing Dimensionなど一通りの機能は備わっていますが、弱いのが、メタデータ管理。メタデータをXMLで出力できるのですが、インパクト分析などがブジュアルでみる機能がありません。XMLファイルを自分で検索して分析する必要があります。今後に期待です。

次はOLAPデータベース。これは、SQL Server Analysis Serviceとなります。これは非常にいいツールです。あと、Excelからピボットでアクセスできるので非常にユーザフレンドリーです。

次は定型レポート。これはSQL Server Reporting Serviceとなります。私は使用したことはありませんが、おそらく定型レポートを作成するには十分な機能がそろっているようです。

さて、最後にマイクロソフトの強みですが、なんといってもコピーがうまいことでしょう。
豊富な資金がありますし、ほかのベンダーのいい機能をどんどん取り込んでいますので、どんどん進化していくと思います。
マクロソフトはトータルで安いので、おすすめです。

データウェアハウス、BIの開発方法について

またもや、コメントをいただいていることがわからず、そのままとなっておりました。
たいへん失礼いたしました。
さきほど、コメントについて返信をしたのですが、データウェアハウス、BIの開発、導入方法についての質問をいただいていたのでここでちょっと経験と持論を展開させていただきたいと思います。

データウェアハウス、BIの導入方法ですが、基本的にはスパイラルやアジャイルなどの繰り返して、改良する方法がいいと思います。理由としては、ユーザもはっきりとした要件を示すことができませんし、具体的なイメージがないので、とにかく作って直していくという方法がよいと思います。
また、データウェアハウス、BIは投資効果がわからないので、最初から大きな投資をするリスクがあります。ということで、実際使ってみて効果があったら徐々に増やしていくのがセオリーですね。
ただ、問題があります。それは。。。非常に重要な仕事なのにマネージャにあまり目立たないことです。ユーザが欲しいデータをタイムリーに提供していくとユーザに非常に喜ばれるのですが、マネージャにはいまいち目立ちません。なので、いつも評価はいまいち。。。まあ、仕方ないですね。とにかく、ここはシステム部門の腕のみせどころです。世の中のデータウェアハウス、BI担当の皆様、がんばりましょう。

あと、既にエクセルやアクセスなどで会社のBI成熟度が高い場合は、フォーターフォール型も可能です。しかし、環境がどんどんかわっていくので、運用での見直しも必要ですね。

The Microsoft Data Warehouse Toolkitを読みました

早速、今年の3月に出たばかりの「The Microsoft Data Warehouse Toolkit」を読み終えました。
本書はData warehouseのコンサルティングで有名なキンボールグループが出版しているツールキットシリーズのマイクロソフト版です。
特徴はなんといっても、キンボールメソッドをマイクロソフト製品を利用してどう応用していけばよいかを説明しているところです。
キンボールメソッドを解説してそれからマイクロソフトの製品の利用法を説明しています。
ただ、中心はあくまでキンボールメソッドをマイクロソフト製品で実現するには?に焦点が絞られていますので、各マイクロソフト製品の
詳細な利用、開発方法を知りたい人は別の本を読んだほうがいいでしょう。
ただし、その際にまずこちらの本を読んでから、詳細を勉強することをお勧めします。

マイクロソフトを嫌いな人は多いですが、そうはいってもマイクロソフトです。
おそらく、手軽にBIを構築したい人は、コスト面から言って非常に有力な候補だと思います。

マイクロソフトのSQL Serverを利用して、BIを構築する予定の人、または、すでに構築している人はぜひ読みましょう。
また、他の製品を利用している人でもキンボールメソッドをどう製品に利用するかについて大いに参考になると思います。

英語のみで、日本語翻訳版は出版されていませんが、平易な英語ですので英語はできる人はぜひチャレンジを。。。


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などのツール選定の評価項目として利用できるなど、なにかと便利です。

ぜひ、利用しましょう。

2011年4月24日日曜日

SAP BW

現在の仕事はデータウェアハウス、BI関連の仕事をしておりますが、どうやら今度はSAP BWの仕事となる予定です。
私はいままでSAP BWの経験はまったくないので、早速現在勉強中です。
といっても社内にはSAP BWがわかるスペシャリストがいません。
ということでいつもの独習の始まりです。

早速、下記本を購入してSAP BWを勉強し始めました。
まだ、まだ勉強途中ですが、SAP BWの情報もやっぱり少ないと思うので、このブログでじゃんじゃん紹介していきたいと思います。また、キンボールメソッドがどのようにSAP BWに適用できるかどうかも考えていきたいと思います。

キンボールグループのSQL Server 2008R2版を読み始めました。

ご無沙汰しておりました。
ブログが更新できずに申し訳ござません。
子供の入学準備やら地震やらでブログの更新がとどこっていました。

さて、早速ですが、データウェアハウスネタに入りたいと思います。
キンボールグループからSQL Server 2008 R2本が発売されました。

ということで早速読み始めました。全部で600ページくらいある大著ですが、少しずつ読み進めていきたいと思います。
既に100ページくらい読みましたが、非常に読みやすく、しかもキンボールメソッドにのっとって説明されているのでキンボール本を読んだことがある人にとってはすらすら読めると思います。

全部、読みおわったら感想を書きたいと思いますが、すでにおすすめですよ。