In Silico

データ基盤

データウェアハウスは、何をそろえて数字を一つに近づけるか

2026/10/4 (更新: 2026/10/4) シリーズ「データ基盤はなぜ作り直されてきたか」 第2回 / 全3回

  • データウェアハウス
  • データ基盤
  • データベース
  • ETL
  • スタースキーマ
  • Inmon
  • Kimball
  • TPC-DS
  • データマート
  • ファクトテーブル
  • ディメンションテーブル
  • 適合ディメンション
  • SCD
  • 正規化
  • データクレンジング
  • 指標
  • 業務システム
  • 履歴
  • Uber
  • Airbnb
  • Gartner
目次
背景・問い・要点
背景

注文の登録のような業務の処理と、売上の集計のような分析は、同じデータベースで動かすと互いに邪魔をする。そのため多くの会社は、業務システムとは別に、分析専用のデータベースを持つ。データウェアハウスは、この分析専用のデータベースの代表的な形である。業務システムはデータウェアハウスにとってデータの出どころであり、データウェアハウス自身は業務の処理を担わない。

分析専用のデータベースを持つと決めても、そこへ何をどう入れるかという問題が残る。会社には販売、会員、在庫、経理といった業務システムが並び、それぞれが自分の目的に合わせてデータを持っている。分析の担当者は、知りたいことがあるたびに、関係するシステムからデータを抜き出して集計する。

ところが、部門ごとに抜き出し方が違うと、同じ問いに別々の数字が返る。あるシステムでは顧客を番号で、別のシステムでは会員番号で数え、性別や地域の書き方もシステムごとに違う。業務システムは現在の状態だけを持つことが多く、先月の時点で顧客がどの地域にいたかは、後から分からなくなる。会議で二つの部門が違う売上の数字を持ち寄ると、議論はどちらの数字が正しいかの確認から始まる。

データウェアハウスは、この問題に対する早い時期の体系的な答えの一つだった。本稿は、データウェアハウスの最も早い論文の一つ、二つの設計の流派がそれぞれ書いた文書、データの不整合を整理した研究、業界の性能測定の仕様、二つの企業が公開した事例を例に取る。

問い

業務システムに散らばったデータから一つの数字を出すために、データウェアハウスは何をそろえ、どこまでそろえられるのか。

要点

データウェアハウスは、業務システムから写すときに名前・コード・キーの食い違いをそろえ、過去の状態も行として残すことで、部門ごとに割れていた数字を一つにしようとする仕組みである。 業務システムが一つなら、分析用には単純な複製で足りる。業務システムが複数あり、表し方がばらばらで過去も残らないから、写すときにそろえて履歴を残す分析専用のデータベースが要る。そろえる作業は構築の手間の大きな部分を占め、そろえる場所をめぐって Inmon と Kimball の二つの流派が分かれた。ただし、倉庫を作っても、指標を計算する規則が部門ごとに食い違えば、数字はまた割れる。

モデル・例示

二つのシステムから「今月の購入者数」を数える

※ この節の数値は説明のための仮定で、測定値ではありません。

ある小売店が、店舗のレジのシステムと通販のシステムを別々に持っているとする。二つのシステムは、それぞれ独自の顧客番号で顧客を管理している。今月、店舗で買った顧客は 60 人、通販で買った顧客は 50 人だった。このうち 15 人は両方で買っているが、二つのシステムでは別々の番号を持つので、そのままでは同じ人だと分からない。

「今月の購入者数」を三つの部門が数える。店舗の部門は自分のシステムだけを数えて 60 人と答える。販促の部門は二つのシステムの人数を足して 110 人と答える。経理の部門は、名前と電話番号で二つのシステムの顧客を突き合わせ、重複する 15 人を引いて 95 人と答える。

さらに、ある顧客が今月、東京から大阪へ引っ越したとする。顧客の住所を上書きすると、先月の地域別の売上を今月集計し直したとき、この顧客の先月の買い物は大阪の売上に入る。先月の時点で東京にいたことは、どこにも残らない。

この例から、次の三点が分かる。

  1. 同じ問いに対して、どのシステムをどう数えるかで、60・110・95 の三つの答えが出る。
  2. 答えを一つにするには、二つのシステムの顧客を同じ人として結び付ける規則を一か所で決め、全部門がその結果を使う必要がある。
  3. 過去の集計を変えないためには、住所を上書きせず、変更の前と後を別々の行として持つ必要がある。

業務システムごとに抜き出すと、同じ問いに別々の数字が返る

データウェアハウスの考え方を示した最も早い論文の一つとしてよく挙げられるのが、IBM の Devlin と Murphy が 1988 年に発表した論文である1。二人は当時の企業の状態を、特定の情報が必要になるたびに、業務システムからデータを取り出す独立した手順が作られ、その手順どうしがしばしば食い違っていた、と書いている。データがあっても問い合わせに向かない形なら、情報システム部門は依頼のたびに取り出しの手順を作らなければならず、依頼が積み重なって大きな遅れが生じた。二人の提案は、会社のデータを一つに統合した倉庫を関係データベースの上に作ることだった。二人は、この倉庫を業務システムと分ける理由の最初に、思いつきの問い合わせや分析で本番の業務システムの性能を乱さないことを挙げている。

Chaudhuri と Dayal は 1997 年の解説論文で、性能のほかにも業務システムのデータがそのままでは分析に使えない理由を挙げた2。推移を見るための過去のデータが業務用のデータベースには無く、さらにデータの出どころごとに品質が違い、表し方・コード・書式が食い違うので、それらをそろえる必要がある。同じ論文は、Inmon の定義を引いて、データウェアハウスを「主題別に整理され、統合され、時間とともに変化を記録し、書き換えられない」データの集まりで、主に組織の意思決定に使うものと説明している。

食い違いの具体的な形は、Rahm と Do が 2000 年の論文で整理している3。同じものを別の名前で呼ぶ(顧客を Customer と Client で呼ぶ)、同じ値を別のコードで書く(性別を “0”/“1” と “F”/“M” で書く)、同じ量を別の単位で持つ(ドルとユーロ)。さらに、同じ人が二つの番号を持つこともあれば、別々の人が同じ番号を持つこともある。二人は、データクレンジング(食い違いや誤りを見つけて直す作業)がデータウェアハウスの最大の問題の一つとみなされている、と書いている。

取り出してそろえる ETL が、データウェアハウスを作る手間の大きな部分を占める

業務システムのデータを取り出し、そろえ、データウェアハウスに入れる一連の処理を ETL(抽出・変換・ロード)と呼ぶ。Vassiliadis は 2009 年の解説論文で、ETL の仕事を、出どころからの取り出し、作業用の領域への転送、共通の形への変換と新しい値の計算、問題のある行の切り分けと修正、データウェアハウスへのロードの五つに分けている4。

ETL がどれだけ手間を食うかについて、Kimball は 2004 年の記事で、構築の時間と労力の 70% を占めるとしばしば見積もられる、と書いた5。この数字に出典や測り方は示されていない。Kimball Group の現在のページは、割合を挙げずに「不釣り合いに大きな部分」とだけ書いている6。

業界団体の TPC がデータウェアハウスの性能を比べるために定めた TPC-DS の仕様は、そろえる作業を前提として組み込んでいる7。仕様は、販売の三つの経路(店舗・カタログ・通販)のシステムが、異なる時期に異なる要件で別々の集団によって設計され、顧客や住所の情報を重複して持つ、と想定している。そのうえでデータウェアハウスの側を、7 つのファクトテーブル(売上 1 件のような出来事を 1 行ずつ記録する表)と 17 のディメンションテーブル(日付・商品・顧客のように出来事を見る切り口の表)で組む。

過去の状態の残し方にも、決まった手法がある。Kimball の流派は、ディメンションテーブルの値が変わるときの扱いを SCD(Slowly Changing Dimension、緩やかに変化するディメンション)と呼び、型に分けている8。型 1 は古い値を新しい値で上書きし、履歴を失う9。型 2 は変更後の値を新しい行として加え、各行に有効期間の開始と終了の日付を持たせる。TPC-DS の仕様は、ディメンションを、変わらないもの(日付)、出来事が起きた時点の値に結び付けて「歴史上の真実」を保つもの(商品)、上書きして前の値を失うもの(顧客)の三つに分けている7。

Inmon と Kimball は、どこでそろえるかで分かれた

データウェアハウスの設計には、二つの代表的な流派がある。どちらも、部門ごとに業務システムから別々に抜き出す形が数字の食い違いを生むという点では一致している。Kimball の流派の Ross は 2004 年の記事で、同じ業務システムからの調整されない複数の抜き出しは、名前の付け方や業務の規則が少しずつ違う版を生み、混乱とやり直しと突き合わせを招くと書いた10。二つの流派が分かれたのは、どこでそろえるかである。

正規化は、同じ事実を一か所にだけ持つように表を分ける設計の手法である。Inmon は、全社のデータを正規化した表の形で一つの倉庫に集め、部門向けのデータマート(特定の部門や用途向けに切り出した小さなデータの集まり)は、その倉庫だけを出どころにする形を説いた11。Inmon によれば、この倉庫は、どのデータが正しいかについての「最後の言葉」を持つ場所になる。Inmon は同じ文書で、古い業務システムのデータの統合は複雑で時間がかかり、この形の倉庫を作るのは簡単でも速くもないと認めている。

Kimball は、スタースキーマを中心に置いた。スタースキーマは、ファクトテーブルを中心に置き、その周りにディメンションテーブルを星形につなぐ表の組み方である。Kimball は 1997 年の記事で、業務の処理に向けて設計した表の構造は利用者が理解も記憶もできず、問い合わせられないデータベースになったと批判した12。統合の要には、部門をまたいで同じ列名と同じ値の範囲を持つディメンションテーブル、つまり適合ディメンション(conformed dimension)を置く。Kimball の流派は、適合ディメンションを「統合の本質」と呼ぶ13。Ross は、正規化した表はデータの関係を表すが、統合に要る共通のキーやラベルをそろえる圧力は生まない、と Inmon の形を批判した10。

Inmon は Kimball の初期の形を、業務システムから直接作った部門ごとのデータマートの寄せ集めとして描き、適合ディメンションについても、会社の属性の一部しかそろえず、残りは統合されないと批判する11。これに対して Ross は 2004 年の別の記事で、適合ディメンションなしに部門ごとに作ったデータマートは統合が難しく、だから自分たちはその形を勧めないと書いた14。前者は相手の流派を外から見た説明であり、後者は当事者の自己説明である。ただし Kimball 自身は 1997 年の記事ですでに、全社のデータウェアハウスを業務の過程ごとのスタースキーマで組み、適合ディメンションで結び付けることを求めていた12。

Chaudhuri と Dayal は、全社のデータウェアハウスの構築は長く複雑な過程で成功までに何年もかかりうるとし、部門ごとのデータマートは速く作れるが、全体の業務のモデルが無いと後で統合が難しくなると書いた2。調査会社の Gartner は 2005 年の発表で、2007 年までにデータウェアハウスの事業の半分以上が限られた利用にとどまるか失敗するとし、原因をデータの品質への注意不足に求めた15。これは予測であり、発表は測り方を示していない。

倉庫を作っても、指標の計算の規則が割れると数字は割れる

データウェアハウスを作った後でも、数字が一つになるとは限らない。Kimball の流派も、数値の列を同じ業務規則で計算する適合ファクトを説き、規則が違う数値には別の名前を付けるとしていた10。Ross は別の記事で、全社で定義と業務規則をそろえるときに組織と文化の障害は避けられず、技術は易しい部分だとも書いていた14。それでも数字は割れた。Uber の技術ブログは 2021 年に、同じ指標についてチームごとに自分のデータの流れを作り、別々の道具に出すと、数字が食い違いうると書いた16。その例として、同じ都市・同じ期間の同じ指標が、社内の二つの道具で 653 万と 620 万に分かれた。原因は、一方の道具の問い合わせに、乗客の状態の最新の一覧を反映していない古い絞り込みの条件が残っていたことだった。Uber はこの問題に、一つの指標に一つの計算の規則を対応させ、全社で共有する仕組みで対応した。

Airbnb の発表資料も、データ基盤を作った後に指標の数字が割れた例を挙げている17。2015 年には、チームごとに違う数字を報告する問題が残り、修正が下流に伝わらず、意思決定をする人の信頼が下がった。Airbnb はその後、指標の定義を一か所で管理する仕組みを作り、資料の時点で 3 万を超える指標をそこで管理していると報告している。同じ資料は、その仕組みの最初の版の課題として、絞り込みの条件だけが違う指標の変種が生まれたことと、あらかじめ計算されていない指標が要る利用者は、過去分の再計算を待つか、一元管理を迂回して自分で書き直すしかなかったことを挙げている17。

二つの会社では、チームごとの問い合わせや派生した表に書かれた計算の規則が食い違い、数字が割れた。倉庫の表をそろえても、そこから指標を計算する規則が食い違えば、数字は割れる。データが一か所に集まると、次は、その大きな表をどう速く読むかが問題になる。

出典17件
  1. Devlin, Murphy「An architecture for a business and information system」IBM Systems Journal 27(1), 1988. http://altaplana.com/ibmsj2701G.pdf — 独立した抽出手順の食い違いと、統合した倉庫の提案。 ↩

  2. Chaudhuri, Dayal「An Overview of Data Warehousing and OLAP Technology」ACM SIGMOD Record 26(1), 1997. https://doi.org/10.1145/248603.248616 — 過去の欠落・表し方の食い違い・Inmon の定義・構築の長さ。 ↩ ↩2

  3. Rahm, Do「Data Cleaning: Problems and Current Approaches」IEEE Data Engineering Bulletin 23(4), 2000. https://dbs.uni-leipzig.de/files/research/publications/2000-1/pdf/TBDE2000.pdf — 名前・コード・単位・番号の食い違いの例(§2.2, Fig. 3)。 ↩

  4. Vassiliadis「A Survey of Extract–Transform–Load Technology」IJDWM 5(3), 2009. https://www.cse.uoi.gr/~pvassil/downloads/ETL/SHORT_DESCR/09IJDWM_proof.pdf — ETL の五つの仕事の定義。 ↩

  5. Kimball「The 38 Subsystems of ETL」Intelligent Enterprise, 2004. http://web.archive.org/web/20081009110254/http://www.intelligententerprise.com:80/showArticle.jhtml?articleID=54200319 — ETL が手間の70%という出典のない見積もり。 ↩

  6. Kimball Group「ETL Architecture’s 34 Subsystems」. https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/etl-architecture-34-subsystems/ — 割合を挙げずに ETL の手間を述べる現在の版。 ↩

  7. TPC「TPC Benchmark DS Standard Specification, Version 4.0.0」2024. https://www.tpc.org/TPC_Documents_Current_Versions/pdf/TPC-DS_v4.0.0.pdf — 別々に設計された出どころの想定、7ファクト・17ディメンション、ディメンションの3型(§1.2, §1.3.3, §2.1)。 ↩ ↩2

  8. Kimball Group「Type 2: Add New Row」. https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/type-2/ — 型2は新しい行を加え、有効期間の列を持つ。 ↩

  9. Kimball Group「Type 1: Overwrite」. https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/type-1/ — 型1の上書きは履歴を失う。 ↩

  10. Ross「Differences of Opinion」Intelligent Enterprise, 2004. https://www.kimballgroup.com/2004/03/differences-of-opinion/ — 調整されない抜き出しの害、正規化は統合を生まないという主張、適合ファクト。 ↩ ↩2 ↩3

  11. Inmon「A Tale of Two Architectures – Kimball vs Inmon」2025(2010年頃の文書の再掲). https://williaminmon.substack.com/p/a-tale-of-two-architectures-kimball — 正規化した全社の倉庫と「最後の言葉」、構築の遅さ。 ↩ ↩2

  12. Kimball「A Dimensional Modeling Manifesto」DBMS, 1997. https://www.kimballgroup.com/1997/08/a-dimensional-modeling-manifesto/ — 業務向けの表の構造は利用者に理解できないという批判とスタースキーマ、全社の設計を適合ディメンションで結ぶ要件。 ↩ ↩2

  13. Kimball Group「Conformed Dimensions」. https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/conformed-dimension/ — 適合ディメンションを統合の本質と呼ぶ定義。 ↩

  14. Ross「Fables and Facts」Intelligent Enterprise, 2004. https://www.kimballgroup.com/2004/10/fables-and-facts/ — 適合ディメンションなしの部門別データマートを勧めないという Kimball 側の説明と、定義と業務規則の合意こそが難所で技術は易しい部分だという記述。 ↩ ↩2

  15. Gartner「Gartner says more than 50 Percent of data warehouse projects will have limited acceptance or will be failures through 2007」2005. http://dssresources.com/news/628.php — 測り方の示されない予測(第三者サイトの転載)。 ↩

  16. Wang ほか「The Journey Towards Metric Standardization」Uber Engineering Blog, 2021. https://www.uber.com/en-NO/blog/umetric/ — 同じ指標が二つの道具で 6.53M と 6.20M に分かれた例と原因。 ↩

  17. Xie, Mao「Democratizing Metrics at Airbnb: Minerva 2.0 and Beyond」Data+AI Summit, 2022. https://microsites.databricks.com/sites/default/files/2022-07/Democratizing-Metrics-at-Airbnb.pdf — 2010年と2015年の問題と、指標の一元管理とその最初の版の課題(自社報告)。 ↩ ↩2

この記事はAIが執筆しています。内容には誤りが含まれる可能性があります。ご注意ください。