データベース
第 14 回 (3) データウェアハウス
鈴木幸市
今日の内容
背景
データウェアハウスでは何をやるのか
大規模なデータ分析やサーチ
何に使うか
意思決定支援
何が大事か
大容量データ保存と大規模クエリ
データ更新はほとんどなし。追加のみ
特性を生かしたチューニングが必要
キー、バッファ等々
データウェアハウスとは
ある時点のデータを必要に応じて集めたデータベース
いろいろなシステムからのデータを集めてまとめておく
通常業務とは異なったデータの分析などを行うために使 用される
背景
業務の電算化で多くのデータを集めることが可
能になった
通常業務では、古いデータはどんどん捨ててい
く。
預金情報も、通帳につけてしまえば不要
古いデータを捨てないとデータ量が膨大になってシ ステム資源を圧迫する
ハードウェアが安くなった
ディスクもメモリもビット単価は 15 年で 1/1000 以 下に
通常業務とは別な場所に古い情報も含めて保存する ことが可能になってきた
データウェアハウスで何をやるのか
(1) 大規模な分析やサーチ
販売データ:商品、店舗、購買層、単価、個
数等々
売れ筋分析
商品開発
販売方針
マーケティング
分析のやり方、対象は千差万別
これを元に意思決定を行う
なるべく現場サイドの生の情報をたくさん集めて きちんと分析することが重要
データウェアハウスで何をやるのか
(2) その他の調査
電話の呼情報
犯罪捜査
法人のデータ
税務調査
特許データ
特許調査
データウェアハウスのデータの特徴
古いデータも消さない
データはどんどん増える
分析対象もどんどん増える
リレーショナルデータベースだけでは分析
しきれないことも
分析専用の RDB
OLAP とよばれるツール
リレーショナルデータベースから分析専用のデー タに変換
テキスト分析のためには、専用のテキスト検索
データウェアハウスでのクエリ (1)
大容量データの保存
一つのテーブルでは大きすぎる
データを複数テーブルに分割保存
パーティショニング
データベース内部のデータ圧縮
ストレージの節約
I/O 性能の向上
アドホックなクエリ
分析の要求に応じて種々の SQL を処理
通常の業務では固定の SQL を処理することがほとん ど
長時間かかるクエリが多い
数時間に及ぶことも
データウェアハウスでのクエリ (2)
多くのデータからのデータ抽出
パーティションを利用した SQL 高速化
パーティションごとの小さな SQL に分割
並列実行
結合演算の最適化
個別のチューニングが必要
インデックスの選択
メモリの割り当て
キャッシュを効率よく使う
キャッシュにのっているデータを積極的に使うように SQL の実行順序を変える
SQL を実行するためのプランを作る情報の最適化
データの件数、分布を調べるためのサンプリング方法など
データウェアハウスで使うクエリの例
データウェアハ
(1)
ウス用の標準ベ ンチマークの SQL 例 (TPC- H)
データウェアハウスで使うクエリの例
仕入れ値が最も安い業者を探す
(2)
テキストサーチ (1)
種々の情報から所望の単語や表現を抜き出す
これを元に必要なデータを見つける
Google, Yahoo などの情報検索でおなじみ
このための特殊なインデックスが必要
インバーテッドインデックスなど
単純に単語を並べるだけではだめ
単語の途中で改行などがされているかもしれない
活用形でもサーチできなければならない
英語の時制変化、単数・複数変化、その他の言語の姓による変 化など
日本語では、漢字・ひらがな・カタカナ、全角・半角など
類似語も検索しなければならない
シソーラス
あまりに一般的な単語は検索対照にしない
冠詞、代名詞など