データ分析を⽀える技術 DWH再⼊⾨
データアナリティクス事業本部
2020/06/19
⽯川 覚
2⾃⼰紹介
• ⽒名
- ⽯川 覚 (いしかわ さとる)
• 所属
- データアナリティクス事業本部 (DA事業本部)
- インテグレーション部
- 札幌オフィス勤務
• 略歴
- メーカー系SIer、ITベンチャー企業、現在に⾄る
• 担当業務
- データ分析基盤の設計・開発、コンサルティング
• 好きなサービス
- Amazon Redshift/Athena、Snowflake 、Google BigQuery
2020 APN AWS Top Engineers 選出
3アジェンダ
• DWH再⼊⾨
• DWHの特性
• ディメンジョナルデータモデル
• 分析データの利⽤
• ⼀般的なDBとDWHの相違点
• DWHのアーキテクチャ
4
DWH再⼊⾨
5DWHとは
DWHはデータウェアハウスの略(データの倉庫)
分析しやすく検索できるように蓄積したデータベース
6DWHとは
DWHはデータウェアハウスの略(データの倉庫)
分析しやすく検索できるように蓄積したデータベース
• 部⾨のデータをDWHに集め
• そのデータを分析しやすく変換
• 分析の⽬的ごとにデータを作成・蓄積
7DWH導⼊の背景
⼀つの企業の中でさまざまな部⾨のDBに、データが分散して
いることをサイロ化と呼びます。
eコマース 店舗
8DWH導⼊の背景
⼀つの企業の中でさまざまな部⾨のDBに、データが分散して
いることをサイロ化と呼びます。
eコマース 店舗
もう〜サイロ化した貴重なデータを
企業の意思決定⽀援に活かすには、
データを集めて、分析しやすく検索
できるように蓄積したDBが必要〜
9DWH導⼊の背景
部⾨のDBは、トランザクションの実⾏に最適化されており、
分析クエリの実⾏には不向きです。
DWH(データの倉庫)
そこで登場したのが、データ分析に
最適化されたDBであるDWHです
10
DWHの特性
11DWHの特性
ビル・インモンさんが提唱するDWHの4つ特性
1. 統合化(integrated)
2. サブジェクト指向(subject oriented)
3. 時系列(time variant)
4. 恒常性(nonvolatile)
12DWHの特性
ビル・インモンさんが提唱するDWHの6つ特性
1. 統合化(integrated)
2. サブジェクト指向(subject oriented)
• 詳細データ(detail data)
• 要約データ(summary data)
3. 時系列(time variant)
4. 恒常性(nonvolatile)
13DWHの特性
まずは部⾨のデータをDWHに集める
部⾨のデータを⼀箇所に集めるには、部⾨のDBからエクス
ポートしたファイルをDWHにインポートするのが⼀般的で
す。
• 部⾨のDBからエクスポートしたファイルはオブジェクトス
トレージにアップロードする
• 補⾜︓Amazon Redshiftの場合、S3(オブジェクトスト
レージ)に集めたデータファイルは、データファイルに対し
て直接クエリを実⾏できる「データレイク」のストレージと
しても活⽤できる
14DWHの特性
1. 統合化(integrated)
各部⾨のデータの表記揺れや意味を統⼀します。データを利⽤
するアナリストが個々のデータの違いを意識せずに利⽤できる
ように整理する。
例.
• ⽇付︓和暦から⻄暦変換、JSTからUTC変換
• ⽂字列︓⼤⽂字⼩⽂字、整数・少数、表記揺れ
• 値︓Nullや空⽂字、コード体系の取り扱い
15DWHの特性
1. 統合化(integrated)
補⾜︓データの変換⽅法
• ETL(Extract Transform Load)
• ETLツールでデータを変換してロードする⽅式
• ELT(Extract Load Transform)
• ステージングエリアにデータをロードした後、SQLでデータを変
換する⽅式
16DWHの特性
2. サブジェクト指向(subject oriented)
• 「商品」や「顧客」のように分析の軸(次元)ごとに集計し
て蓄積したデータである「データマート」を作成する
• 複数ディメンジョンのデータマート︓データ探索⽤途
• 単⼀ディメンジョンのデータマート︓パフォーマンス重
視のためダッシュボード⽤途
※グラニュラリティ(要約の粒度)は要件やデータの規模に
よって調整する
17DWHの特性
2. サブジェクト指向(subject oriented)
• 詳細データ(detail data)︓分析しやすく変換したデータ
をそのまま保存
• 要約データ(summary data)︓複数の詳細データを結合
したり、集計した結果を保存
18DWHの特性
3. 時系列(time variant)
⽇々⽣成されるデータ、その時点のデータ状態を保存します。
過去に遡ってデータ分析ができることが⽬的です。
19DWHの特性
4. 恒常性(nonvolatile)
蓄積されたデータは、変更せずに参照可能な状態で保存します。
いつでもデータ発⽣時の値を参照出来ることが⽬的です。
クラウドのオブジェクトストレージは堅牢かつイミュータブル
でありDWHのデータの保存に適しています。
20DWHの特性
データの流れ
BIシステム利⽤者
アナリスト
POSデータ
基幹システム
ステージング層 DWH層 データマート層
eコマース売上
RedshiftS3
データ分析基盤
データレイク層
21DWHの特性
データの流れ
BIシステム利⽤者
アナリスト
POSデータ
基幹システム
ステージング層 DWH層 データマート層
eコマース売上
RedshiftS3
データ分析基盤
データレイク層
部⾨のDBからデータをエクスポートする
22DWHの特性
データの流れ
BIシステム利⽤者
アナリスト
POSデータ
基幹システム
ステージング層 DWH層 データマート層
eコマース売上
RedshiftS3
データ分析基盤
データレイク層
エクスポートしたファイルをS3にアップロード
23DWHの特性
データの流れ
BIシステム利⽤者
アナリスト
POSデータ
基幹システム
ステージング層 DWH層 データマート層
eコマース売上
RedshiftS3
データ分析基盤
データレイク層
S3のデータをDWHのステージング層にロードする
24DWHの特性
データの流れ
BIシステム利⽤者
アナリスト
POSデータ
基幹システム
ステージング層 DWH層 データマート層
eコマース売上
RedshiftS3
データ分析基盤
データレイク層
ステージング層のデータを統合化(integrated)してDWH層インポートする
25DWHの特性
データの流れ
BIシステム利⽤者
アナリスト
POSデータ
基幹システム
ステージング層 DWH層 データマート層
eコマース売上
RedshiftS3
データ分析基盤
データレイク層
DWH層のデータを⽤いてデータマートを作成する
26DWHの特性
データの流れ
BIシステム利⽤者
アナリスト
POSデータ
基幹システム
ステージング層 DWH層 データマート層
eコマース売上
RedshiftS3
データ分析基盤
データレイク層
データマートを⽤いて分析する
27DWHの特性
データの流れ
BIシステム利⽤者
アナリスト
POSデータ
基幹システム
ステージング層 DWH層 データマート層
eコマース売上
RedshiftS3
データ分析基盤
データレイク層
28
ディメンジョナルデータモデル
29ディメンジョナルデータモデル
ディメンジョナルデータモデルとは
• ラルフ・キンボールさんが提唱するディメンジョナルモデル
とは、スタースキーマでDWHを構築すること
• 分析したい値を持つファクトテーブルと、分析の軸(次元)
となる値を持つディメンジョンテーブルから構成される
• ERモデル(第3正規形)は分析データのモデリングに最適
ではない
30ディメンジョナルデータモデル
スタースキーマとは
テーブル同⼠の関係性を可視化
すると、ファクトテーブルを中
⼼にその周りをディメンション
テーブルが取り囲む形になる。
売上
時間ID
店舗ID
商品ID
顧客ID
担当者ID
売上⾦額
時間
時間ID
年⽉⽇
時間
休⽇
店舗
店舗ID
店舗名
地域
顧客
顧客ID
顧客名
顧客分類
商品
商品ID
商品名
カテゴリ
担当者
担当者ID
担当者名
部⾨
31ディメンジョナルデータモデル
売上
時間ID
店舗ID
商品ID
顧客ID
担当者ID
売上⾦額
時間
時間ID
年⽉⽇
時間
休⽇
店舗
店舗ID
店舗名
地域
顧客
顧客ID
顧客名
顧客分類
商品
商品ID
商品名
カテゴリ
担当者
担当者ID
担当者名
部⾨名
スタースキーマとは
テーブル同⼠の関係性を可視化
すると、ファクトテーブルを中
⼼にその周りをディメンション
テーブルが取り囲む形になる。
32ディメンジョナルデータモデル
売上
時間ID
店舗ID
商品ID
顧客ID
担当者ID
売上⾦額
時間
時間ID
年⽉⽇
時間
休⽇
店舗
店舗ID
店舗名
地域
顧客
顧客ID
顧客名
顧客分類
商品
商品ID
商品名
カテゴリ
担当者
担当者ID
担当者名
部⾨
ファクト
ファクトテーブル
ファクトテーブルは、分析した
い値の列と、その周りのテーブ
ル(ディメンジョンテーブル)
を参照する外部キーの列がある
33ディメンジョナルデータモデル
売上
時間ID
店舗ID
商品ID
顧客ID
担当者ID
売上⾦額
時間
時間ID
年⽉⽇
時間
休⽇
店舗
店舗ID
店舗名
地域
顧客
顧客ID
顧客名
顧客分類
商品
商品ID
商品名
カテゴリ
担当者
担当者ID
担当者名
部⾨
ディメンジョン
ディメンジョンテーブル
ディメンジョンテーブルは分析
の軸(次元)を持つテーブル
34ディメンジョナルデータモデル
ファクトとディメンジョンの関係
• ディメンジョンテーブルに対し
てファクトテーブルは圧倒的に
レコード数が多い傾向がある
• あえて第3正規形まで正規化せ
ず、第2正規形で留めておくこ
とでテーブルの結合するコスト
を抑える
売上
時間ID
店舗ID
商品ID
顧客ID
担当者ID
売上⾦額
時間
時間ID
年⽉⽇
時間
休⽇
店舗
店舗ID
店舗名
地域
顧客
顧客ID
顧客名
顧客分類
商品
商品ID
商品名
カテゴリ
担当者
担当者ID
担当者名
部⾨
35
分析データの利⽤
36分析データの利⽤
代表的なデータ分析の⼿法
• ダイス
• スライス
• ドリルアップ・ドリルダウン
BIツールを使い始める前に
理解することをおすすめします。
37分析データの利⽤
ダイス(ダイシング)
データ分析の軸(次元)を変更して、分析の視点を変える。
• 例.商品ごとに分析していたものを、店舗ごとに切り替えて
別の視点で分析する
• ダイスするには、統合化したそのままのデータか、複数ディ
メンジョンのデータマートを事前に作成する
38分析データの利⽤
スライス(スライシング)
多次元の表を2次元の表に切り取る操作。
• 例.商品別年⽉⽇別売上表などを切り出し、季節による商品
の売り上げ推移を分析する
• 統合化(integrated)後のデータからデータマートを作成す
る過程でも実施する
39分析データの利⽤
ドリルアップ・ドリルダウン
分析の深さを詳細にしたり、まとめたりして変更する操作。
• 例1.年⽉ごとに⾏っていた分析を、粒度をあげて年単位に
することをドリルアップという
• 例2.逆に粒度を下げて⽇単位にすることをドリルダウンと
いう
• 年⽉⽇のドリルアップ・ドリルダウンはBIツールを⽤いる
と簡単にできる
40分析データの利⽤
BIツールによる可視化
• ダイス、スライス、ドリルダウン・アップの操作が容易
• データを2次元的なクロス集計表だけでなく、様々な表⽰形
式(グラフなど)でデータを表現できる
• 定型分析
• ダッシューボードなど、常に表⽰する情報は、パフォー
マンス重視の単⼀ディメンジョンデータマートを⽤いる
• データ探索(データディスカバリ)
• 統合化(integrated)後のデータや既存の複合ディメン
ジョンデータマートを⽤いて、新たな洞察を得る
41
⼀般的なDBとDWHの相違点
42相違点は…
トランザクション処理と分析処理では、
データに対するアクセスパターンが異なる
43相違点
アクセスパターン
• オンライントランザクション処理(OLTP)︓⼀般的なDB
• インデックスのキーから少数のレコードを取得・更新
• インタラクティブであり、素早く応答が必要
• オンライン分析処理(OLAP)︓DWH
• ⼤量のレコード中の少数の列だけを読み出しが多い
• 要約統計 (レコード数、合計、平均など)を計算した結果
をユーザーに返したり、テーブルに保存する
44相違点
データアクセスの⽐較
特性 オンライントランザクション処理
(OLTP: OnLine Transaction Processing)
オンライン分析処理
(OLAP: OnLine Analytic Processing)
データの規模 数GBから数TB 数百GBから数PB
読み込みの
パターン
インデックスのキーを⽤いた少数
のレコードの低レイテンシ読み込
み
⼤量のレコード中の少数の列だ
けを読み込み
書き込みの
パターン
ランダムアクセスと低レイテンシ
書き込み
レコード中の更新した列の追加
書き込み、もしくは⼤量データ
の⼀括インポート
45
DWHのアーキテクチャ
46列指向ストレージ
分析クエリを効率よく実⾏できる「列指向ストレージ」
分析クエリが⼀度にアクセスするのは、そのうちの4ないし5
列程度という特徴があります。
DWHではテーブルのデータを⾏ごとではなく、列ごとに保存
します。
• ⾏指向︓データを⾏ごとに保存する⽅式
• 列指向︓列ごとにデータを保存する⽅式
47列指向ストレージ
データスキャンの削減
分析対象となる列のデー
タだけにしかアクセスし
ないため、データスキャ
ンが最⼩化できる
引⽤︓https://www.slideshare.net/AmazonWebServicesJapan/20181205-aws-black-belt-online-seminar-amazon-athena-20190510update/26
48列指向ストレージ
I/O効率や圧縮率の向上
• 列ごとにデータを格納
して連続的にデータを
読み出すことでI/O効
率が向上する
• 同じ列に含まれるデー
タは類似性が⾼く、圧
縮率が⾼くなる
引⽤︓https://www.slideshare.net/AmazonWebServicesJapan/20181205-aws-black-belt-online-seminar-amazon-athena-20190510update/26
49DWHのシステム構成
複数のノードを⽤いた並列分散処理
⼤量のデータの分析を想定した並列分散アーキテクチャを採⽤
している。
• シェアードナッシング
• ストレージをノードごとに割り当て、複数ノードで並列
分散処理する
• シェアードストレージ
• データを共有ストレージに保存し、複数ノードで並列分
散処理する
• ストレージとコンピューティングを分離
50DWHのシステム構成
DWHの例
• シェアードナッシングを採⽤しているDWH
• Amazon Redshift(RA3はハイブリッド)
• Teradata
• Vertica
• シェアードストレージを採⽤しているDWH
• Google BigQuery
• Snowflake
51DWHのアーキテクチャ
例. Amazon Redshift(RA3)
ホットデータはシェアー
ドナッシング、コールド
データは、シェアードス
トレージ
双⽅の⻑所を活かし、ス
トレージとコンピュー
ティングを分離したアー
キテクチャを採⽤してい
る
52
まとめ
53まとめ
DWHのデータ設計
• アナリストが個々のデータの違いを意識せずに利⽤できるよ
うにデータを統合化(integrated)する
• 分析⽤途応じて、結合・集計されたデータマートが時系列か
つ永続的に保存する
• 分析⽤途のテーブルはディメンジョナルデータモデル(ス
タースキーマ)を採⽤し、第2正規化までとする
54まとめ
DWHのデータ活⽤
• データの可視化にはデータマートとBIツールが有効
• 複数ディメンジョンのデータマート︓データ探索⽤途
• 単⼀ディメンジョンのデータマート︓パフォーマンス重
視のダッシュボードなど
55まとめ
DWHのアーキテクチャ
• ⼤量レコード中の少数の列の読み込みを想定して列指向スト
レージを採⽤している
• ⼤量のデータを処理できるように伸縮⾃在で並列分散処理が
可能なシステム構成を採⽤する
• 特に「ビッグデータの分析」であれば上記は必須です
56
わかるようでわからないDWH
違いをご理解いただけたら幸いです。
データ分析を支える技術 DWH再入門

データ分析を支える技術 DWH再入門