データ ウェアハウスについて

完了

data warehouseは、分析クエリとレポート用に設計された一元化された構造化ストアです。 日常的なビジネス トランザクションを処理する運用データベースとは異なり、data warehouseは複数のソースからのデータを分析用に最適化された形式に統合します。

最新のdata warehouseの構築には、通常、次の作業が含まれます。

  • データ インジェスト - ソース システムからウェアハウスへのデータの移動。
  • Data storage - 分析用に最適化された形式でデータを格納します。
  • データ処理 - 分析ツールで使用できる形式にデータを変換します。
  • データ分析と配信 - 分析情報を得るためにデータを分析し、ビジネスに提供します。

data warehouseを設計する

データ ウェアハウスには、多次元モデリング用に最適化されたスキーマで編成されたテーブルが含まれています。 この方法では、イベントに関連する数値データをさまざまな属性でグループ化します。 たとえば、特定の日付または特定の店舗で発生した販売注文に対して支払われた合計金額を分析できます。

データウェアハウス内のテーブル

data warehouseテーブルを整理して、大量のデータの効率的な分析をサポートします。 ディメンション モデリングと呼ばれるこの組織では、テーブルをファクト テーブルとディメンション テーブルに構造化します。

ファクト テーブルには、分析する数値データが含まれています。 通常、ファクト テーブルには多数の行があり、これらは分析用のプライマリ データ ソースです。 たとえば、ファクト テーブルには、特定の日付または特定の店舗で発生した販売注文に対して支払われた合計金額が含まれている場合があります。

ディメンション テーブルには、ファクト テーブル内のデータに関する説明情報が含まれています。 通常、ディメンション テーブルにはいくつかの行があり、ファクト テーブル内のデータのコンテキストが提供されます。 たとえば、ディメンション テーブルには、販売注文を行った顧客に関する情報が含まれている場合があります。

ディメンション テーブルには、属性列に加えて、テーブル内の各行を一意に識別する一意のキー列が含まれています。 実際、ディメンション テーブルには通常、次の "2 つの" キー列が含まれています。

  • "代理キー" は、ディメンション テーブルの各行の一意の識別子です。 多くの場合、新しい行を挿入すると、データベース管理システムによって自動的に生成される整数値です。
  • "代替" キーは、多くの場合、トランザクション ソース システム内のエンティティの特定のインスタンスを識別するナチュラル キーまたビジネス キーです (製品コードや顧客 ID など)。

data warehouseには代理キーと代替キーの両方が必要です。これは、異なる目的に対応するためです。 サロゲート キーはdata warehouseに固有であり、一貫性と精度を維持するのに役立ちます。 代替キーはソース システムに固有であり、data warehouseとソース システムの間の追跡可能性を維持するのに役立ちます。

特殊な種類のディメンション テーブル

特殊な種類のディメンションでは、追加のコンテキストが提供され、より包括的なデータ分析が可能になります。

"時間ディメンション" は、イベントが発生した期間に関する情報を提供します。 データ アナリストは、この表を使用して複数の時間間隔でデータを集計できます。 たとえば、時間ディメンションには、販売注文の年、四半期、月、および日の列が含まれる場合があります。

緩やかに変化するディメンションは 、顧客の住所や製品の価格の変更など、時間の経過と同時にディメンション属性の変更を追跡します。 これらは、時間の経過に伴うデータの変化を分析して理解できるため、data warehouseで重要です。 徐々に変化する次元により、データが常に最新かつ正確に保たれます。これは、適切なビジネス上の意思決定を行う上で重要です。

データウェアハウスのスキーマ設計

ビジネス アプリケーションで使用されるほとんどのトランザクション データベースでは、重複を減らすためにデータが 正規化されます 。 ただし、data warehouseでは、ディメンション データは非正規化* され、データのクエリに必要な結合の数が減ります。

多くの場合、data warehouseでは、次の例に示すようにstar スキーマ を使用します。このスキーマでは、ファクト テーブルがディメンション テーブルに直接関連付けられます。

FactSales テーブルが表示されたスター スキーマの設計図。5 つのディメンションが星の形を成しています。

ディメンション属性を使用して、ファクト テーブル番号をさまざまなレベルでグループ化できます。 たとえば、リージョン全体または 1 人の顧客に対する総売上高を確認できます。 各レベルの情報は、同じディメンション テーブルに格納できます。

ヒント

Fabric のスター スキーマの設計の詳細については、「スター スキーマとは」を参照してください。

さまざまな要素で共有されるレベルや属性が多数ある場合は、代わりに スノーフレーク スキーマ を使用するのが理にかなっている可能性があります。 次に例を示します。

複数のディメンションが表示されたスノーフレーク スキーマの設計図。

この場合、 DimProduct テーブルは、製品カテゴリと仕入先の個別のディメンション テーブルに分割 (正規化) します。

  • DimProduct テーブルの各行には、DimCategory テーブル内と DimSupplier テーブル内の対応する行のキー値が含まれています。

DimGeography テーブルには、顧客と店舗の所在地に関する情報が含まれています。

  • DimCustomer テーブルと DimStore テーブルの各行には、DimGeography テーブル内の対応する行のキー値が含まれています。