5 minute read

こんにちは。風音屋(@Kazaneya_PR)データエンジニアの妹尾です。この度、『アジャイルデータモデリング 組織にデータ分析を広めるためのテーブル設計ガイド』(原著名 Agile Data Warehouse Design)という翻訳書を出版することができました。

この本では、ディメンショナルモデリングという手法を用いて、データ分析用のデータベースを設計する方法とその設計プロセスについて解説しています。

出版に際し、eaさん(@0610Esa)と、土川さん(@tvtg_24)が振り返りを書いてくださいました。

私もディメンショナルモデリングに深く感銘を受けたエンジニアとして、また本書の愛読者として、その魅力を少しでも多くの方に伝えられればと思います。 今回は、本書に興味を持ってくださった人に向けて、「読む意義を感じてもらう」「学んだ内容を実際に活用できるようにする」ことを目的とした内容をお届けします。

本記事では、以下の2点をご紹介したいと思います。

  • 組織にデータ分析を広めるための「ディメンショナルモデリング」の説明
  • 私がおすすめするこの本の読み方と使い方

ディメンショナルモデリングとは

ディメンショナルモデリングとは、データ分析用のデータベースにおける、テーブル設計の手法です。

ディメンショナルモデリングを、すごく単純化して説明すると、以下になると思います。

  • ビジネスは、「顧客による商品購入」「在庫担当者による商品発注」など、誰かが何かアクションを起こすことで成り立っている
  • こういったアクションをビジネスイベントと呼ぶ(業務プロセスという言葉に聞き馴染みがある方もいるかもしれません。業務プロセスを構成する1つ1つのタスクもビジネスイベントに該当します。)
  • このビジネスイベントを、「金額や個数などの、集計に使用する数値データ(ファクト)」と「顧客や商品などの、ビジネスイベントに関連する補足情報(ディメンション)」に分けてテーブルで管理する手法である

ディメンショナルモデリングは、「ビジネスは、たくさんのビジネスイベントによって成り立っている」という普遍的な構造をうまくモデル化した、時代に左右されない手法だと思います。導入後すぐに陳腐化して使えなくなるリスクは低いです。そのため、今から導入しても遅くはありません。

ディメンショナルモデリングがもたらす組織全体への恩恵

ディメンショナルモデリングの優れた点のひとつは、データ利用者の使いやすさが最大限に考慮されていることです。 ディメンショナルモデリングを導入してしっかり運用していけば、「今回したいのはこの分析だから、対象のビジネスイベントはこれだね。なので、このテーブルとこのテーブルを使えば見たいデータが見られるね。」といった要領で、データ利用者は容易に必要なテーブルを見つけられるようになります。

さらに、ディメンショナルモデリングに則って設計された顧客や商品などのテーブル(ディメンションテーブル)は、複数のビジネスイベントの分析で使用できます。例えば、「顧客の会員登録」を分析する時も、「顧客の商品購入」を分析をする時も、1つの顧客テーブルを見れば、顧客のデータを扱うことができます。これにより、分析の度に毎回1からデータを用意する必要はなくなり、今までの分析で集めたデータを用いてより多角的な分析ができるようになります。

私はモニタリングや分析に使用するクエリを書く際、ディメンショナルモデリングの設計手法を意識しています。 モニタリングや分析が継続的に行われるようになった場合は、クエリを分解し、Viewやテーブルとして再利用できる形にすることを検討します。 これにより、今まで作成しては使用後に放置され、負債化していたクエリも、使い捨てにならずに済みます。

そして、そういった活動の積み重ねが、以下のような好循環をもたらすものだと考えています。

  • ステークホルダーは、見たい数字をすぐに見られるので、迅速に意思決定ができる
  • データアナリストは、データの用意に苦心せず本職の分析に集中できる
  • データエンジニアは、クエリやテーブルの棚卸しなどの時間をシステム改善に充てられる
  • 組織には、負債ではなくナレッジが積まれていく

本書は「ビジネスを改善するために、みんなで一丸となって設計しよう!」という内容も含んでいます。 本書を読んで、データ整備担当者以外の方にも「こういった恩恵が待っているなら、ちょっと付き合ってやってもいいかな」と思っていただけると非常に嬉しいなと思います。

『アジャイルデータモデリング』のおすすめの読み方と使い方

ここからは、私がおすすめするこの本の読み方、使い方をご紹介します。

「30分でわかる 『アジャイルデータモデリング』」を先に読む

30分でわかる 『アジャイルデータモデリング』」は、訳者である打出さん(@hanon52_)が作成した『アジャイルデータモデリング』の解説資料です。

スライドごとに書籍の該当ページが記載されており、本書の全体像を把握しながら、必要に応じて深掘りできる内容になっています。本書の要点がまとめられているので、まずこちらを読んでから、書籍を読み進めていただけると理解が深まりやすいかと思います。

資料は無料公開されていますので、本書の購入をご検討いただいている方も是非ご覧ください。

メリハリをつけて2回通読する

1周目は、理解できなかったところは読み飛ばしながら最後まで読んでしまいましょう。まずは、ディメンショナルモデリングという設計手法の大まかなイメージと設計プロセスを掴むことが大事です。 1つの章を読み終わったら自分の言葉で、「この章は何の話をしているか」を数行でまとめることをおすすめします。自分の言葉で説明することで、理解が十分でない部分に気づき、2周目で重点的に読むポイントが明確になります。

1周読み終わったら、もう一度読み直します。次は単語の意味をインプットしながら、1周目で理解しきれなかった部分を意識しながら読んでいきます。すでに全体の流れを把握しているため、各部分のつながりが理解しやすくなり、より深く内容を吸収できます。

2周目を読んだら、必要に応じて該当箇所だけピックアップするようなハンドブック的な使い方に変えていきましょう。

読みながら実際に手を動かす

設計に関する手法は、本を読むだけだとなかなか理解が深まりません。 実際に手を動かしながら学んでいくことが非常に重要です。

最初から完璧な設計を行う必要はありません。実務でテーブルやクエリの設計に困ったら、目次や索引、自分のメモ、前述した「30分でわかる 『アジャイルデータモデリング』」を参考にあたりをつけながら、自分の困りごとについて解説されているページがないかを探しましょう。

本書の設計手法を、複数ある選択肢の1つとして捉える

テーブル設計に絶対解はないように思います。 状況によっては、本書で紹介されている設計手法をそのまま採用することが最適ではない場合もあるかもしれません。 例えば、原著が書かれた2011年には存在しなかったより良い選択肢が、データウェアハウスツールの性能向上などによって、今だと採択できるという可能性もあります。

「『アジャイルデータモデリング』の説明に則るとこうなる」「他にはこういう選択肢がある」を並べて検討しましょう。並べた選択肢のメリット・デメリットを洗い出して、最適解がどれかを考えることが重要です。

まとめ

前述した通り、ディメンショナルモデリングはビジネスの普遍的な構造をうまくモデル化した設計手法だと思います。一方で、データ利用者のニーズに応え続けるためには、導入したら終わりではなく、アジャイル開発のアプローチに則って、継続的に改善しながら運用することが大事です。

変化の激しいビジネス環境では、データ利用者のニーズも急速に変化します。こうした不確実性に対応するための有効な手段の1つがディメンショナルモデリングです。 その実践のための指南書として、本書『アジャイルデータモデリング』をぜひ手元に置き、日々の業務で活用していただけますと幸いです。

最後に

本書を無事に世に送り出すことができたのは、多くの方々のご協力とご支援のおかげです。本プロジェクトに携わってくださったすべての皆様、そして本書を手に取ってくださった読者の皆様に、深く御礼申し上げます。