
データ ウェアハウスでは、ファクト テーブルはビジネス プロセスの測定値、メトリック、またはファクトで構成されます。ファクト テーブルは、ディメンション テーブルに囲まれたスター スキーマまたはスノーフレーク スキーマの中心に配置されます。複数のファクト テーブルが使用される場合、ファクト テーブルはファクト コンステレーション スキーマとして配置されます。ファクト テーブルには通常、ファクトを含む列とディメンション テーブルへの外部キーとなる列の 2 種類の列があります。ファクト テーブルの主キーは通常、すべての外部キーで構成される複合キーです。ファクト テーブルにはデータ ウェアハウスの内容が含まれ、加算的、非加算的、半加算的メジャーなどのさまざまな種類のメジャーが格納されます。
ファクト テーブルは、ディメンション属性を分析するための独立変数として機能する (通常は) 加算値を提供します。ファクト テーブルは、多くの場合、粒度によって定義されます。ファクト テーブルの粒度は、ファクトを定義できる最も原子的なレベルを表します。売上ファクト テーブルの粒度は、「日別、製品別、店舗別、売上量」と表現できます。したがって、このファクト テーブルの各レコードは、日、製品、店舗によって一意に定義されます。他のディメンションがこのファクト テーブルのメンバーになる場合もありますが (場所/地域など)、これらはファクト レコードの一意性に何も追加しません。これらの「関連ディメンション」により、独立したファクトの追加スライスが可能になりますが、通常は、より高いレベルの集約 (地域には多くの店舗が含まれます) で洞察が得られます。
例
ビジネス プロセスが販売の場合、対応するファクト テーブルには通常、次のような生のファクトと集計の両方を表す列が行に含まれます。
- 12,000 ドル、「2005 年 1 月 15 日のニューヨーク店の売上」。
- 34,000 ドル、「2005 年 1 月 15 日のロサンゼルス店の売上」
- 22,000 ドル、「2005 年 1 月 16 日のニューヨーク店の売上」
- 21,000ドル、「2005年1月のロサンゼルス店の平均日次売上」
- 65,000ドル、「2005年2月のロサンゼルス店の平均日次売上」
- 33,000ドル、「2005年のロサンゼルス店の平均日次売上」
「平均日次売上」は、ファクト テーブルに保存される測定値です。ファクト テーブルには、時系列(日付など) やその他のディメンション(店舗の場所、販売員、製品など) が格納されるディメンション テーブルからの外部キーも含まれています。
ファクト テーブルとディメンション テーブル間のすべての外部キーは、運用データからの再利用キーではなく、代理キーである必要があります。
測定タイプ
- 加算的 - 任意のディメンションに追加できるメジャー。
- 非加算的 - どのディメンションにも追加できないメジャー。
- 半加法 - いくつかのディメンションにわたって追加できるメジャー。
ファクト テーブルには、詳細レベルのファクトまたは集計されたファクトのいずれかが含まれます (集計されたファクトを含むファクト テーブルは、サマリー テーブルと呼ばれることもあります)。
比率やパーセンテージを扱う際には特別な注意が必要です。1 つの優れた設計ルール[1]は、パーセンテージや比率をファクト テーブルに保存せず、データ アクセス ツールでのみ計算することです。つまり、分子と分母のみをファクト テーブルに保存し、それらを集計して、集計された保存値を使用してデータ アクセス ツールで比率やパーセンテージを計算できます。
現実の世界では、メジャーやファクトを含まないファクト テーブルが存在する可能性があります。これらのテーブルは、「ファクトレス ファクト テーブル」または「ジャンクション テーブル」と呼ばれます。
ファクトレスファクトテーブルは、多対多の関係をモデル化したり、イベントのタイムスタンプを取得したりするために使用できます。 [1]
ファクトテーブルの種類
すべてのファクトテーブルを特徴付ける4つの基本的な測定イベントがあります。[2]
- トランザクション
- トランザクション テーブルは、最も基本的で根本的なテーブルです。トランザクション ファクト テーブルに関連付けられた粒度は、通常、「トランザクションの行ごとに 1 行」、たとえば領収書の各行として指定されます。通常、トランザクション ファクト テーブルには最も詳細なレベルのデータが保持されるため、多数のディメンションが関連付けられます。
- 定期的なスナップショット
- 定期スナップショットは、その名前が示すように、「瞬間の写真」を撮ります。ここでの瞬間とは、たとえば、前月の営業マンのパフォーマンスの概要など、任意の定義された期間です。定期スナップショット テーブルは、選択されたパフォーマンス出力を提供するために、トランザクション ファクト テーブルに保持されている詳細データを必要とするため、トランザクション テーブルに依存します。
- スナップショットの蓄積
- このタイプのファクト テーブルは、開始と終了が明確に定義されているプロセスのアクティビティ (注文の処理など) を表示するために使用されます。注文は、完全に処理されるまで特定の手順を経ます。注文の履行に向けた手順が完了すると、ファクト テーブルの関連行が更新されます。累積スナップショット テーブルには、多くの場合、複数の日付列があり、それぞれがプロセスのマイルストーンを表します。したがって、行の作成時点ではマイルストーンの日付の多くが不明であるため、不明な日付のプレースホルダーを表すエントリを、関連する日付ディメンションに含めることが重要です。
- 時間スナップショット
- 時間データベース理論とモデリング技術を適用することで、時間スナップショットファクトテーブル [3]は、実際に毎日のスナップショットを作成しなくても、毎日のスナップショットと同等のものを作成できます。時間間隔の概念をファクトテーブルに導入することで、多くのスペースを節約し、パフォーマンスを最適化しながら、エンドユーザーが関心のある「瞬間の写真」と論理的に同等のものを入手できるようになります。
ファクトテーブルの設計手順
- 分析の対象となるビジネス プロセス (販売など) を特定します。
- 「ビジネス プロセスに関連する X の数はいくつですか?」などの質問をして、ビジネスのコンテキスト内で意味のあるさまざまなオプションに X を置き換え、事実の尺度 (売上高) を特定します。
- 「X で分析する」など、ビジネスのコンテキスト内で意味を成す質問をして、事実のディメンション (製品ディメンション、場所ディメンション、時間ディメンション、組織ディメンション) を特定します。ここで、X はテストする対象に置き換えられます。
- 各ディメンション (地域名、支店名、事業部門名) を説明する列をリストします。
- ファクト テーブル内のサマリーの最低レベル (粒度) を決定します (例: 売上高)。
代替アプローチは、Kimballで説明されている4段階の設計プロセスです。[1]ビジネスプロセスを選択し、粒度を宣言し、次元を特定し、事実を特定します。
参考文献
- ^ abc Kimball & Ross - データ ウェアハウス ツールキット、第 2 版 [Wiley 2002]
- ^ Kimball, Ralph (2008).データ ウェアハウス ライフサイクル ツールキット、第 2版。Wiley。ISBN 978-0-470-14977-5。
- ^ Davide, Mauri. 「Temporal Snapshot Fact Table」。
