このページでは、データウェアハウスとETL、OLAPの操作とスタースキーマ、データマイニング、NoSQLとBASE特性、データレイクなどのデータ活用の仕組みがわかります。
- 一言で言うと:
- ためたデータを分析して役立てるための仕組みの話
- 分析用の倉庫(データウェアハウス)と、そこでの多次元分析(OLAP)、データから法則を掘り出すデータマイニング、ビッグデータ向けのNoSQL、データをそのままためるデータレイクが出てくる
分析用の倉庫(データウェアハウス、ETL、データマート、多次元データベース、OLAP、スタースキーマ)→ 法則を掘り出す(データマイニング、CEP)→ ビッグデータ(NoSQL、BASE特性、データレイク、データサイエンティスト)
覚え方の軸
- データウェアハウスは「集めて(ETL)、ためて、切り出す(データマート)」
- 基幹系(毎日の業務、更新が多い)からデータを抽出・変換・ロード(ETL)して、情報系(分析、参照のみ)にためる
- OLAPは「切る・掘る・まとめる・回す」
- スライス(切る)、ドリルダウン(詳しく掘る)、ロールアップ(まとめる)、ダイス(回す)
- OLAPは「見る」まで。法則や因果関係を見つけるのはデータマイニング
- NoSQLは4種類、合言葉は「キー・カラム・ドキュメント・グラフ」
- 一貫性はBASE特性(結果整合性)。ACIDの「いつも厳密」に対して、「最後に合えばよい」
- ビッグデータは「3V」
- Variety(多様)・Volume(大量)・Velocity(速い)。さらにValue・Veracityで5V
データウェアハウス:分析用の倉庫(★)
① データウェアハウスとは
- データウェアハウス:
- 企業のいろいろな活動で得られた大量のデータを整理・統合して蓄積しておき、意思決定支援などに使うデータベース、あるいはその管理システム
- ETL(Extract/Transform/Load):
- データウェアハウスは、「基幹系データベースからのデータ抽出、変換、データウェアハウスへのロード(書出し)」という一連の処理を経て作られる。この一連の処理
- データクレンジング:
- 業務システムごとに違っているデータ属性やコード体系を統一する処理
- ETLツールは、このクレンジング機能を持つ
- データリネージ:
- データがどこから取得され、どのようなETLを経て、今の形になったのかを示す情報
- これを活用したデータマネジメントが、近年注目されている
- データマート:
- データウェアハウスに入っているデータの一部を、特定の用途や部門用に切り出したデータベース
基幹系とデータウェアハウスの違い
| 基幹系システム | 情報系システム(データウェアハウス) | |
|---|---|---|
| データ | リアルタイムデータ。一定期間保存 | 時系列/履歴データ、大規模/大容量 |
| 重視すること | 処理効率重視 | 1回の分析で多量のデータを扱う |
| 更新 | 多い | 少ない(参照のみ) |
- データの流れ:
- 基幹系データベース・外部データベース → 統合 → データウェアハウス → 目的別・部門単位にダウンロード → データマート
- データウェアハウスの例え:
- 各店のレジの記録(基幹系)を毎晩本部の大倉庫(データウェアハウス)に集め、形をそろえて(クレンジング)年単位でためておく。営業部用、仕入部用に、必要な分だけ小分けした棚(データマート)も作る
② 多次元データベース
- 多次元データベース(MDB:multi-dimensional database):
- 複数の属性項目(次元)でデータを集約したデータベース
- 2つの属性項目を選んで表形式で見るなら2次元、3つ選んで立体的に見るなら3次元で集約する
- 多次元データベースが使われる理由:
- ユーザは、データウェアハウスのデータを、例えば“時間”“地域”“製品”など、いろいろな視点から多次元的に分析する
- だから、複数の属性項目を軸(次元)にして、いろいろな分析が簡単にできる多次元データベースが使われる
- 多次元データベースの構成:
- 分析の対象となるデータ(集約データ)と、分析の軸となる属性項目(次元)でできた、キューブ(立方体)型のデータベース
- キューブの例え:
- ルービックキューブの縦が「製品」、横が「地域」、奥行きが「時間」。1つ1つの小さな立方体に「売上」が入っている
③ OLAP
- OLAP(Online Analytical Processing:オンライン分析処理):
- 多次元データを、いろいろな視点から対話的に分析する処理形態、あるいはその技術
- OLAPツール:
- OLAPを行うツール
OLAPの機能(★)
| 機能 | 中身 | 例 |
|---|---|---|
| スライス | 1つの属性項目の特定の値を指定して、データを水平面で切り出す | 「近畿」だけの製品×時間の表を取り出す |
| ドリルダウン | 任意の切り口で取り出したデータを、より深いレベルのデータに詳細化する | 「九州」→「福岡・熊本・鹿児島」、「2025年」→「第1〜第4四半期」 |
| ロールアップ | ドリルダウンの逆(集約する) | 「福岡・熊本・鹿児島」→「九州」 |
| ダイス | 「時間別/地域別/製品別」「地域別/製品別/時間別」のように、立方体の面を回転させる | 見る軸を入れ替える |
- OLAPでわかること:
- ユーザは、現状分析や今後の動向など、いろいろな分析ができる
- OLAPの限界:
- OLAPはデータ分析には適しているが、データの法則性や因果関係までは発見できない
- データの法則性や因果関係の発見には、データマイニングを使う
- OLAPの例え:
- スライスは、キューブを包丁で1枚切り取る
- ドリルダウンは、地図を拡大する(都道府県 → 市区町村)
- ロールアップは、地図を縮小する
- ダイスは、キューブをくるっと回して別の面から見る
- 注意(用語の使い方):
- 一般のOLAPの解説では、「ダイス」を「複数の軸で範囲を絞って小さな立方体を切り出す操作」、面の回転を「ピボット」と呼ぶこともある
- 試験では「ダイス(ダイシング)=立方体を回転させて見る視点を変える」と覚えておけばよい
④ MOLAPとROLAP
- 多次元データベースの2つの形:
- データを多次元そのままの形(独自形式)で管理する専用のデータベース
- 関係データベースを利用して、スタースキーマ構造で管理するデータベース
- MOLAP(Multi-dimensional OLAP):
- 多次元そのままの形(専用データベース)に対応したOLAP
- ROLAP(Relational OLAP):
- 関係データベース(スタースキーマ)に対応したOLAP
⑤ スタースキーマ
- スタースキーマ:
- 多次元構造に適合したリレーショナルスキーマ
- 中央に分析の対象となるデータを入れるファクトテーブル(事実テーブル)を置き、その周りに分析の切り口となるディメンションテーブル(次元テーブル)を配置する
- ファクトテーブルとディメンションテーブルは、外部キーで関連付けられている
- スタースキーマの例:
- 中央のファクトテーブル(製品、地域、時間、売上…)の周りに、製品・地域・時間のディメンションテーブルが星形に並ぶ
- スタースキーマの例え:
- 中央に「売上明細」、周りに「商品マスタ」「店舗マスタ」「カレンダー」を置いた星形。売上明細には、それぞれのマスタの番号が書いてある
データマイニング:データから法則を掘り出す(★)
- データマイニング:
- 蓄積された膨大なデータの有効活用の1つ
- 大量のデータから、統計的・数学的手法を使って、データの法則性や因果関係を見つけ出す手法
- マイニングは「採掘」という意味
代表的なデータマイニングの手法(★)
| 手法 | 中身 |
|---|---|
| マーケットバスケット分析 | POSデータやeコマースの取引ログなどを分析して、顧客が一緒に購入している商品の組合せを発見する。1人の顧客の1回の購入データをマーケットバスケットデータといい、これを週や月単位に集計したデータベースを基にマイニングする |
| 決定木分析(デシジョンツリー、意思決定ツリー) | ツリー(樹形図)でデータを分析する。予測やデータ分類、データの持つルールの抽出・生成などに使う。例えば、顧客を性別・年齢層・年収など複数の属性で段階的にセグメント化し、購買履歴に照らして、商品の購入可能性が最も高いセグメントを予測する |
| ニューラルネットワーク | 人間の脳や神経系の仕組みをモデル化した数学モデル。データマイニングでは数値予測に使われる |
| クラスタ分析 | 異質なものが混ざった調査対象の中から、互いに似たものを集めた集団(クラスタ)を作り、調査対象を分類する |
- 手法の例え:
- マーケットバスケット分析は、「おむつを買う人はビールも買う」のような、買い物かごの中身の組合せを見つける
- 決定木分析は、「男性?→30代?→年収○○以上?→買う確率80%」と、質問を分かれ道にして分類する
- クラスタ分析は、正解のないまま、似た客どうしをグループに分ける
リアルタイム分析を行うCEP
- データマイニングの弱点:
- 発生したデータをデータベースに蓄積した後に集計・分析するので、リアルタイム性に欠ける
- CEP(Complex Event Processing:複合イベント処理):
- 刻々と発生する膨大なデータを、リアルタイムで分析し処理する技術
- データの処理条件や分析シナリオを、あらかじめCEPエンジンに設定しておく
- メモリ上に取り込んだデータが条件に合ったら、対応するアクションを即座に実行する
- CEPの例え:
- 監視カメラの映像をあとで録画を見直すのではなく、「不審な動きがあったら即アラーム」と決めておき、その場で鳴らす
NoSQL:SQLだけにしばられないデータベース(★)
① NoSQL
- NoSQL(Not only SQL):
- ビッグデータの中心的な技術基盤
- データへのアクセス方法をSQLに限定しないデータベースの総称
- NoSQLが使われる理由:
- 従来のSQLを使った表形式のデータ操作では、大規模データや、頻繁に発生するトランザクションデータの処理、分散データベース環境のデータの処理で、性能が落ちる可能性がある
- そこで、スキーマレスで柔軟性が高く、大量のデータを扱うのに適したNoSQLデータベースを使うことが多くなっている
- ビッグデータの3つのV(特徴):
- Variety:
- データの種類が多様
- Volume:
- データ量が膨大
- Velocity:
- データの発生速度、発生頻度が高い
- 3Vに「Value:価値」と「Veracity:正確さ・信頼性」を加えて5Vとすることもある
- Variety:
- 非構造化データ:
- ビッグデータの8割は非構造化データ
- 今、非構造化データを構造化データに変えるパターン認識やデータマイニングの技術が注目されている
② NoSQLデータベース
NoSQLデータベース(★)
| 種類 | 中身 |
|---|---|
| キーバリューDB | 1つのデータを1つのキーに対応付けて管理する。キーバリューストア(KVS:Key-Value Store)とも呼ばれる |
| カラム指向DB(列指向DB) | キーバリューDBにカラム(列)の概念を持たせたもの。キーに対して、動的に追加できる複数のカラム(データ)を対応付けて管理できる |
| ドキュメント指向DB | キーバリューDBの考え方を拡張したもの。データを“ドキュメント”単位で管理する。個々のドキュメントのデータ構造(XMLやJSONなど)は自由 |
| グラフ指向DB | グラフ理論に基づき、ノードと、ノード間のエッジ(データ間のリレーションシップ)、ノードとエッジの属性(プロパティ)で、全体を構造化して管理する |
- 4つの例え:
- キーバリューDBは、ロッカー。番号(キー)を言えば中身(バリュー)が出てくる
- カラム指向DBは、ロッカーの中に、あとから仕切り(列)をいくつでも足せる
- ドキュメント指向DBは、1人分の情報を1枚の自由形式の書類(JSON)にまとめてファイルする
- グラフ指向DBは、SNSの友だち関係図。人(ノード)と「友だち」の線(エッジ)でつながりをたどる
③ BASE特性
- 結果整合性:
- NoSQLでは、ビッグデータなど膨大なデータを高速に処理する必要がある
- そのため、一時的なデータの不整合を許容して、整合性保証のための処理負担を減らし、最終的に一貫性が保たれていればよいという考えを採っている
- BASE特性:
- 結果整合性を保証する特性
BASE特性(3つの特性)(★)
-
Basically Available:
- 高可用性で、基本的にいつでも利用可能
-
Soft state:
- 厳密な状態を要求しない(常に整合性を保つ必要はない)
-
Eventually consistent:
- 最終的には一貫性が保たれる(結果整合性)
-
ACIDとBASEの例え:
- ACIDは、銀行の通帳。どの瞬間に見ても、残高は1円も狂わない
- BASEは、SNSの「いいね」の数。見る人によって一瞬ずれていても、しばらくすれば同じ数に落ち着く
-
覚え方:
- 化学の「ACID(酸)」と「BASE(塩基)」で対になっている
④ ビッグデータに関連する用語
データレイク
- データレイク:
- ビッグデータのデータ貯蔵場所
- あらゆるデータを必要に応じて加工できるように、発生した元のままの形式や構造で格納できるリポジトリ
- データレイクが必要な理由:
- ビジネスで活用すべきデータには、業務システムデータやIoTデータ、オープンデータ、SNSのログなど、いろいろなものがあり、形式や構造も多様
- データレイクは、このような多種多様なデータを管理し、活用するためのデータマネジメント基盤
- データレイクとデータウェアハウスの例え:
- データウェアハウスは、きれいに加工して棚に並べた「倉庫」
- データレイクは、川から流れ込む水をそのままためる「湖」。使うときに必要な分をくんで加工する
オープンデータ
- オープンデータ:
- 国、地方公共団体及び事業者が持つ官民データのうち、国民の誰もがインターネットなどを通じて加工、編集、再配布できるように、二次利用や機械判読に適した形で無償公開されたデータ
- オープンデータバイデザイン:
- 行政が持つデータをオープンデータ化することを前提に、情報システムや業務プロセスの企画、整備及び運用を行うという考え方
データサイエンティスト
- データサイエンティスト:
- ビッグデータを有効活用し、事業価値を生み出す役割を担う専門人材、あるいはその職種
- 情報科学の知識を持ち、ビジネス課題を解決するためにビッグデータを意味ある形で使えるように、分析システムを実装・運用し、ビジネス上の課題の解決を支援する
データサイエンティストに求められるスキルセット(★)
| スキル | 中身 | 例 |
|---|---|---|
| ビジネス力 | 課題の背景を理解したうえで、ビジネス課題を整理・分析し、解決する力 | 事業モデル、バリューチェーンなどの特徴や事業の主な課題を、自力で構造的に理解でき、問題の大枠を整理できる |
| データサイエンス力 | 人工知能や統計学などの情報科学の知識を使って、予測、検定、関係性の把握、データ加工・可視化をする力 | 分析要件に応じて、決定木分析、ニューラルネットワークなどのモデリング手法の選択、パラメタの設定、分析結果の評価ができる |
| データエンジニアリング力 | データ分析で作ったモデルを使えるように、分析システムを実装、運用する力 | 扱うデータの規模や機密性を理解したうえで、分析システムをオンプレミスで作るかクラウドサービスで作るかを判断し、設計できる |
- 3つのスキルの例え:
- ビジネス力は「何を解くべきか決める力」、データサイエンス力は「解き方を考える力」、データエンジニアリング力は「解き方を実際に動く仕組みにする力」
- Jupyter Lab:
- データサイエンティストが使っている、ビッグデータ分析や機械学習に欠かせないツール
- ブラウザ上で動く対話型のPythonプログラム実行環境
- 実行結果を逐次確認しながら、データ分析を進められる
混同しやすいペア
- 基幹系システム / 情報系システム
- 基幹系は、日々の業務。リアルタイムデータ、処理効率重視、更新が多い
- 情報系(データウェアハウス)は、分析・意思決定支援。履歴データ、大容量、参照のみ
- データウェアハウス / データマート
- データウェアハウスは、全社のデータを統合して蓄積したもの
- データマートは、その一部を特定の用途や部門用に切り出したもの
- ETL / データクレンジング
- ETLは、抽出・変換・ロードの一連の処理
- データクレンジングは、その中で、データ属性やコード体系を統一する処理
- データクレンジング / データリネージ
- データクレンジングは、データの形をそろえる処理
- データリネージは、データの出どころと、どんなETLを経たかを示す情報
- スライス / ダイス
- スライスは、特定の値でデータを水平面で切り出す
- ダイスは、立方体の面を回転させて、見る軸を入れ替える
- ドリルダウン / ロールアップ
- ドリルダウンは、より深いレベルに詳細化する(九州 → 福岡・熊本・鹿児島)
- ロールアップは、その逆で集約する
- MOLAP / ROLAP
- MOLAPは、多次元そのままの形(専用データベース)で管理するOLAP
- ROLAPは、関係データベース(スタースキーマ)で管理するOLAP
- ファクトテーブル / ディメンションテーブル
- ファクトテーブル(事実テーブル)は、中央に置く、分析の対象データ(売上など)
- ディメンションテーブル(次元テーブル)は、周りに置く、分析の切り口(製品、地域、時間)
- OLAP / データマイニング
- OLAPは、多次元データを対話的に分析する(法則や因果関係までは見つけられない)
- データマイニングは、統計的・数学的手法で法則性や因果関係を見つける
- マーケットバスケット分析 / 決定木分析
- マーケットバスケット分析は、一緒に買われる商品の組合せを見つける
- 決定木分析は、ツリーで段階的に分類・予測する
- ニューラルネットワーク / クラスタ分析
- ニューラルネットワークは、脳の仕組みをまねたモデル。数値予測に使う
- クラスタ分析は、似たもの同士を集めて分類する
- データマイニング / CEP
- データマイニングは、蓄積した後に分析する(リアルタイム性に欠ける)
- CEPは、メモリ上で、発生したデータをリアルタイムに分析・処理する
- キーバリューDB / カラム指向DB
- キーバリューDBは、1つのキーに1つのデータ(KVS)
- カラム指向DBは、1つのキーに、動的に追加できる複数のカラム
- ドキュメント指向DB / グラフ指向DB
- ドキュメント指向DBは、ドキュメント単位(XML、JSON)で自由な構造
- グラフ指向DBは、ノード、エッジ、プロパティで関係を管理する
- ACID特性 / BASE特性
- ACID特性は、厳密な一貫性(RDB)
- BASE特性は、結果整合性(NoSQL。Basically Available、Soft state、Eventually consistent)
- 3V / 5V
- 3Vは、Variety、Volume、Velocity
- 5Vは、3VにValue、Veracityを加えたもの
- データウェアハウス / データレイク
- データウェアハウスは、整理・統合・加工して蓄積する
- データレイクは、元のままの形式や構造で蓄積する
- オープンデータ / オープンデータバイデザイン
- オープンデータは、誰もが二次利用できるよう無償公開されたデータ
- オープンデータバイデザインは、オープンデータ化を前提にシステムや業務を作る考え方
- ビジネス力 / データサイエンス力 / データエンジニアリング力
- ビジネス力は、ビジネス課題を整理・分析し、解決する力
- データサイエンス力は、AIや統計学で予測・検定・可視化する力
- データエンジニアリング力は、分析システムを実装・運用する力