概要
情報技術の基礎として理解しておきたいデータベースの応用について、データウェアハウス、OLAP、分散データベース、CAP定理、ビッグデータを整理する。
この分野では、業務データを分析に使う仕組みや、複数サーバーでデータを扱う仕組みを理解する。
OLTPとOLAP、データウェアハウスとデータレイク、分散DBとCAP定理を対比すると整理しやすい。
この記事の構成
- データウェアハウスとOLAP
日々の取引を扱うOLTPとの違いと、分析基盤としての役割を整理。 - データウェアハウスの構成と基本操作
ファクト・ディメンションの関係と、代表的なOLAP操作を整理。 - 分散データベース
分散DBの透過性、2相コミット、CAP定理の関係を整理。 - ビッグデータ
データレイク、NoSQL、分散処理など、大量データを扱う技術を整理。
データウェアハウスとOLAP
応用情報技術 -
データベース管理:トランザクション・排他制御・障害回復で扱ったトランザクション管理を利用し、注文、決済、予約など多数の短い取引処理をオンラインで実行する処理形態を、OLTP(Online Transaction Processing)という。
OLTPは、リアルタイムのデータ管理に適しているが、複雑で分析的な問い合わせに向いておらず、利用者の動向など統計的なデータ分析が難しい。
分析処理では、以下に示すデータウェアハウスやOLAPが利用される。
-
データウェアハウス
経営的な意思決定や分析を目的として、複数の業務システムからデータを統合し、時系列で蓄積・管理する仕組みを指す。
分析しやすいようデータの形式やコード体系をそろえ、用途に応じてスタースキーマなどの多次元的なモデルで構成する場合がある。
※ データウェアハウスの構成や操作については、次項を参照。 -
OLAP(Online Analytical Processing)
OLAPとは、蓄積したデータを複数の分析軸から集計し、対話的に分析する処理や操作を指す。OLTPのデータを別の分析基盤へ取り込む構成は代表例だが、スナップショットや別データベースの利用が定義上必須なわけではない。
データウェアハウスの構成と基本操作
スタースキーマなどのディメンショナルモデルでは、売上、数量、金額など分析対象となる事実や測定値を記録したテーブルをファクトテーブルという。
※ 複数のデータベースから統合する場合は、事前にデータクレンジングを行い、データ形式やコード体系を統一する。
また、商品、顧客、日付などの分析軸と説明属性を持つテーブルをディメンションテーブルという。一般に、多数のファクト行が外部キーによって各ディメンション行を参照する。\(E-R\) 図で表すと中心にくるファクトテーブルの周りをディメンションテーブルが囲む形になることから、このデータ構成は、スタースキーマと呼ばれる。
以下は、データウェアハウスの基本操作。
-
スライシング
一つの次元について特定の値を選び、多次元データから部分集合を取り出す操作。例えば、時間次元を「2026年」に固定して売上を表示。 -
ダイシング
複数の次元について値や範囲を選び、元のデータからより小さなサブキューブを取り出す操作。分析軸の表示方向を入れ替える操作はピボットと呼ばれる。 -
ドリリング
以下の方法で分析・集計結果をさらに分析または、集計する操作。- ドリルダウン(または、ロールダウン)
分析結果を更に深堀りし、詳細データに分ける操作。
例えば、年月単位の分析結果を日単位の詳細データに分ける。 - ドリルアップ(または、ロールアップ)
分析結果を集計し、データをまとめる操作。
例えば、年月単位の分析結果を年単位のデータに集計する。
- ドリルダウン(または、ロールダウン)
分散データベース
分散データベースとは、データベース障害耐性や通信負荷の軽減、パフォーマンス向上を目的に複数のサーバーを立て、\(DBMS\)(データベース管理システム)を分散配置したデータベースで、利用者にデータ分散を意識させない透過性の仕組みを持つデータベースシステムを指す。
※ 2相コミットは、複数のデータベースや資源にまたがる一つのトランザクションを、すべてコミットするか、すべてロールバックするかにそろえるための原子的コミット手順である。分散トランザクションで利用されるが、分散データベースの透過性全般に必須な仕組みではない。
分散システムでネットワーク分断が発生している間は、下記の一貫性と可用性を同時に保証できない。この関係をCAP定理(または、ブリュワーの定理)という。単純に常時「3つのうち2つを選ぶ」という意味ではなく、分断発生時のトレードオフを示す点に注意する。
-
特性 \(1\): \([C]\) 一貫性(Consistency)
すべての読取りが、直近に完了した書込みを反映した単一のデータとして観測できること。 -
特性 \(2\): \([A]\) 可用性(Availability)
障害が発生していないノードへ届いたすべての要求が、有限時間内に応答を受け取れること。応答内容が常に最新であることまでは意味しない。 -
特性 \(3\): \([P]\) ネットワーク分断耐性(Partition-tolerance)
ネットワークの分断によって、 \(2\) つ以上のノード群が互いに通信できない状態になっても正常に動作すること。 -
ネットワーク分断がない場合
ノード間で通信できる前提では、一貫性と可用性の両方を満たす設計が可能となる。ただし、分断が発生した場合の動作を説明するCAP定理上の選択肢とは分けて考える。 -
分断時に \([C]\) 一貫性を優先する場合
矛盾した応答を避けるため、一部の要求を拒否または待機させる。このため、分断中は\([A]\) 可用性を保証できない。 -
分断時に \([A]\) 可用性を優先する場合
各ノードが要求への応答を継続するため、古い値や一時的に競合する値を返す可能性があり、\([C]\) 一貫性を保証できない。分断解消後にデータを収束させる設計が必要となる。
ビッグデータ
ビッグデータとは、\(DBMS\)(データベース管理システム)で取り扱うことが困難なデータ群や従来の技術による処理量を超えた大量のデータ群を指し、画像、音声、ログ、位置情報などの非構造化データや定型的でないデータも含まれる。
ビッグデータを保存・分析する基盤の一つにデータレイクがある。データレイクは、構造化データ、半構造化データ、非構造化データを、加工前の形式を含めて保持できるストレージリポジトリである。すべてのビッグデータ処理でデータレイクが必須なわけではない。
ビッグデータを取り扱うために必要な代表的な技術として、以下の仕組みがある。
-
グリッドコンピューティング
分散コンピューティングの一形態で、ネットワーク上に分散した複数のコンピューター資源を連携させ、大量データの分析など大きなタスクを共同で処理する仕組みを指す。 -
データマイニング
大量データを統計学やパターン認識、人工知能などの分析手法を駆使して、パターンや相関、異常値などの新しい知見を得るための技術、またはそのプロセスを指す。 -
超並列コンピュータ
多数のプロセッサーや計算ノードを結合し、大規模な並列処理によって高速化を図るコンピューターシステムを指す。プロセッサー数や構成はシステムによって異なる。 -
\(NoSQL\)(Not Only SQL)
キーバリュー型、ドキュメント型、カラム指向型、グラフ型など、主に関係モデル以外のデータモデルを採用するデータベースの総称。SQLを一切使わないという意味に限定されず、製品ごとにデータモデル、一貫性、問合せ方法が異なる。
まとめ
- OLTPは日々の取引処理、OLAPは蓄積データの分析処理に向く。
- データウェアハウスは整形・統合した分析データを扱い、ファクトテーブルとディメンションテーブルを組み合わせたスタースキーマなどで構成する。データレイクは多様な形式の生データを蓄積する。
- スライシングは一つの次元を固定し、ダイシングは複数の次元から範囲を切り出す。ドリルダウンは詳細化、ドリルアップは集計を行う。
- 分散データベースは利用者にデータ配置を意識させない透過性を備え、2相コミットは複数の資源にまたがる処理結果をそろえるために使われる。
- CAP定理では、ネットワーク分断中に一貫性と可用性を同時に保証できないため、システム要件に応じた選択が必要になる。
参考文献
- 瀬戸 美月 (\(2020\)) 『徹底攻略 応用情報技術者教科書』株式会社インプレス
- Microsoft Learn「スター スキーマと Power BI での重要性を理解する」(日本語・公式解説)
- AWS「データレイクとは何ですか?」(日本語・公式解説)
- PostgreSQL Documentation, Two-Phase Transactions(英語・公式仕様)
- Seth Gilbert, Nancy Lynch, Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services(英語・CAP定理の原論文)