なぜ今、データモデリングに注目すべきなのか
AIやBI、データドリブン、データ民主化、DX、デジタルサクセス。データ活用業界には様々なトレンドが渦巻いています。しかし、これらの根本を支える技術として、不変のものもあります。リレーショナルモデルとSQLです。
NoSQLやデータレイクの流行によって隅に追いやられていた時代もありましたが、データを分かりやすく扱う上で未だにリレーショナルモデルとSQLを超える技術は生まれておらず、近年SQL重視の傾向はますます強まっています。OLTP(オンライントランザクション処理)の世界ではNewSQLが流行を始めており、もともとはテーブル定義しないスキーマオンリードを得意としていた領域であるデータレイク領域でも、データをリレーショナルテーブル化してSQLでアクセスすることが一般的になってきています。
SnowflakeやBigQuery、Databricksといった最新のデータプラットフォームにおいても、データをどのように蓄積するか、つまりテーブルの構造や構成によって、データのわかりやすさや性能、コスト、全てが大きく変わってきます。
データの量が増え、価値が高まっていっている現代において、そのデータをリレーショナルモデルとしてどう蓄積し、どのようなSQLでアクセスするか。つまりどんなデータモデルを作るかという技術(データモデリング)は、その価値が再発見されつつある、今まさに重要な技術と言えるのではないでしょうか。
DWHの誕生と発展に貢献した二人の偉大なアーキテクト
DMBOK(データマネジメント知識体系ガイド)第一版の9章「データウェアハウジングとビジネスインテリジェンス管理」では、以下のような書き出しでデータウェアハウスについて説明を始めています。
データウェアハウスについて解説する場合、どうしても避けて通れないふたりの名前がある。それが、Bill InmonとRalph Kimballである。このふたりの著しい貢献により、データウェアハウスの実践的な技術が発達し、形成された。
― DAMA International『データマネジメント知識体系ガイド』(2010)p.200
Bill Inmon(ビル・インモン)とRalph Kimball(ラルフ・キンボール)、二人の偉大なアーキテクトの存在がDWHやBI、ひいてはデータアナリティクス分野の現在の隆盛にとって絶大な影響力をもたらしたことは疑いようもありません。
まずは、この二人のDWHに対する考え方とデータモデリングの技法について紹介します。
DWHの父 Bill Inmonのアプローチ
Bill Inmonは1990年代初頭にデータウェアハウスの概念を提唱し、その定義を生み出したその人で、現代においても「DWHの父」と呼ばれ続けています。
InmonはDWHを「企業の意思決定プロセスを支える、サブジェクト(主題)別に統合化された、時系列な不変データの集合」と定義しました。これはオペレーショナルシステムとDWHの違いを端的に示しており、DWHの特徴として現在も一般的な定義となっています。
データモデリングについては、きれいに正規化された全社的なハイレベルデータモデルを設計し、それをもとにミドルレベル、物理レベルのデータモデルを作っていくというトップダウン的なアプローチを提唱しました。1 Fact 1 Placeの原則や正規化はオペレーショナルシステムを含むリレーショナルモデルの基本的な設計思想ですが、全社レベルで行うことは理想的ではあるものの非常に難しい作業です。Inmon自身は後述のディメンショナルモデリングやData Vaultにも肯定的で、適材適所と考えていることは注記しておきます。
図1:トップダウン的なデータモデリングのイメージ
Inmonはまた、コーポレートインフォメーションファクトリー(CIF)と呼ばれるデータプラットフォームの全体概念を提唱しました。CIFの概要を表す図(下図参照)は、今から20年以上前に描かれたにも関わらず、現代のデータプラットフォームを説明する図(例えばNTTデータのビッグデータリファレンスアーキテクチャ※関連記事リンク参照)とも非常に似通っており、データプラットフォームの全体像を把握するのに役立ちます。
図2:コーポレートインフォメーションファクトリー(CIF)概要図
Ralph Kimballのディメンショナルモデリング
Ralph Kimballは世界中に熱狂的なファンが存在するアーキテクトです。1996年にディメンショナルモデリングについての教科書とも呼べる書籍『The Data Warehouse Toolkit』の初版を出版して以来、この本はDWHの構築を行う者にとってのバイブルとなりました。
Kimballのディメンショナルデータモデルは、業務プロセスの積み重ねであるファクトテーブルと、分析軸を表現するディメンションテーブルによって構成される、「スタースキーマ」と呼ばれるデータモデルです。これは、データ利用者がデータを理解しやすく、性能が出るように設計されており、正規化などの「あるべき」を重視していないことが特徴です。データの利用や分析を出発点としたボトムアップ的なアプローチであり、ビジネス的な要求やクエリパフォーマンスに焦点を当てた現実的なアプローチと言えます。
図3:スタースキーマの例
KimballアプローチによるDWH/BIアーキテクチャ(下図)では、ステージング領域とプレゼンテーション領域が定義されています。ステージング領域の役割は比較的小さく、プレゼンテーション領域のデータマートが主体です。DWバスとも呼ばれる共有ディメンション(複数のスタースキーマが共有するディメンション)によってそれぞれのDMを全社レベルで統合することによって、エンタープライズデータモデルが形作られます。データプラットフォームの全体アーキテクチャとデータモデルが一体となって考えられていることがわかるのではないでしょうか。
図4:KimballのDWH/BIアーキテクチャ概要図
クラウドDWH時代の最新データモデリング
長年DWH業界でデファクトスタンダードとして語られてきたInmonとKimballのデータモデリング技法は今も大きな価値があり、実際の設計にその技法を生かすことは非常に有効です。一方、クラウドDWHを中心とするモダンなデータプラットフォームにおいては、その特性を生かした他のデータモデリング技法も語られるようになってきています。
大福帳モデリング
テーブルが分割され、参照時に必ず結合が発生するディメンショナルモデリングは、列指向でストレージが安価なクラウドDWHにとっては、コスト対パフォーマンスが良くない、という意見があります。その代わり、すべてのカラムが一つのテーブルにまとまっている横長のテーブル、いわゆる「大福帳」型のテーブルを提供するべき、という意見です。
図5:ディメンショナルモデルと大福帳
これは性能を高めるためだけでなく、セルフBIの普及等によりデータリテラシーの比較的低いユーザが増加している現代において、可視性を高めるという意味でも有効なテクニックとして注目すべき技法です。
ただし、InmonやKimballのアプローチは、最終的にユーザに提供するデータモデルの形を定義しているだけではないことを忘れてはなりません。そのデータをどのように作るのか、どうやって拡張・メンテナンスしていくのか、DWH全体のモデルとしてどのように整合性をとっていくのか。こういったことを考えたうえで、大福帳は最終的にエンドユーザに提供するデータモデルのうちの一つとしてとらえるべきではないでしょうか。
Data Vault
複数のデータソースからの統合と、アジャイルなデータマート開発に主眼をおいたエンタープライズデータモデルの技法として、ここ2、3年でにわかに注目を浴びているのがData Vaultです。米国SnowflakeのユーザコミュニティではData Vault分科会が結成されており、ユーザ企業の間で導入が進んでいます。
Data Vaultは、Kimballアプローチでいうステージング領域とプレゼンテーション領域の間にHub、Satellite、Linkと呼ばれる3種類のテーブルで作られたエンタープライズデータモデルの領域を作るという手法です。きれいに正規化することを重視するのではなく、元データソースの情報を維持しつつ、いかに柔軟に統合し、データマートを作りやすくするか、ということを主眼としています。
図6:Data VaultによるDWHアーキテクチャ概要図
実質的に無制限のデータ容量をもつクラウドDWHの登場により、データレイクとDWHの境界があいまいになった現代において、どのようなデータも最低限の加工をしたうえで一旦DWHに蓄積しておき、必要に応じて柔軟にデータマートを提供するというData Vaultの考え方は、時代に合っていてスマートです。また、大量の時系列データを様々なソースシステムから集めて利用する上で、必ずぶち当たるような問題に対し丁寧に対応が考えられており、実践的なモデリング技法でもあります。
Data Vaultは日本でも急速に理解が広がっており、今後導入が進んでいくと考えられます。
DX時代にデータを使いこなすために
一口にデータモデリングと言っても、歴史とともに様々な技法が考えられ、DWH全体の設計方針と密接に関わってきているということをご理解いただけましたでしょうか。
DXを目指したデータ活用において、データプラットフォームの全体アーキテクチャ設計や製品選定だけでなく、ぜひデータモデリングにも注目して、どのような形でデータを蓄積するかを考えるようにしてみてください。一見地味な世界ですが、データを使いこなすための一番の近道になるかもしれません。