Strategy One

物理列のファクトへのマッピング: ファクト式

ファクト式は、ファクトをデータ ソースの物理列にマップします。これらの式は、データ ソースのファクト列名と同じくらい単純な場合もあれば、複数のファクト列名と数値定数を含む数式のように洗練されている場合もあります。定義方法に関係なく、ファクト式はデータ ソース内の特定のファクト情報へのマッピングを表します。ファクト定義には、1 つ以上のファクト式が必要です。

次の図は、ファクト テーブルの列と関連するファクト式を示しています。

有効なファクト式は、数値定数や数学演算子の有無に関係なく、ファクト列から構築された数式です。ファクト式で使用できる数学演算子は次のとおりです。

  • 加算 (+)
  • 減算 (-)
  • 乗算 (*)
  • 除算 (/)

Workstation の Fact Editor を使用してファクト式を作成します。ファクトの作成と編集 を参照してください。

ファクトは、ApplySimple 関数を使用して定義できます。Apply 関数については、(missing or bad snippet) のパススルー式の付録で説明されています。

ほとんどのファクトは、データ ソース内の物理列を表します。ただし、一部のファクトはデータ ソースにまったく存在せず、次のセクションで説明するように他の方法で定義されます。

暗黙ファクトと暗黙ファクト式

暗黙ファクトは、データベースに物理的に存在しない仮想的または定数的なファクトです。暗黙ファクトは、データを取得するファクト テーブルを示します。暗黙ファクトには、定数値として定義された式を含めることができますが、テーブル列には何も保存されません。

たとえば、暗黙ファクト式を使用して、すべての行に対して値「1」を持つデータベース内の「一時列」を作成できます。これらの一時列により、特定の属性に対して返される行数を追跡できます。また、定数を保持する列を合計して COUNT を作成できるメトリックを作成する際にも、暗黙ファクトが役立つ場合があります。たとえば、Sum(1) として定義されたメトリックを作成する場合、定数「1」に等しいファクトを定義できます。

派生ファクトと派生ファクト式

派生ファクトの値は、テーブル内の列だけでなく、それ以上を含む式によって決定されます。定数の追加、別の列の値の追加、式を絶対値に設定するなど、列に対する任意の操作により、派生ファクトが作成されます。つまり、データ ソースで利用可能な情報からファクトを作成していることになります。たとえば、データ ソース内のテーブルに次の要素が含まれているとします。

次の派生ファクトを作成して、新しいファクト Sales を作成できます。

Sales = Quantity_Sold * Price

派生ファクトを作成することの利点の 1 つは、派生ファクトにより、複数のテーブルから複数の中間ファクトを取得する必要がなく、プロジェクト内に一貫した 1 つのファクトが存在できることです。単一のファクトを使用することで、記憶領域を節約し、クエリで使用される SQL パスの数を制限できます。

派生ファクトを作成する代わりに、メトリックを使用して Strategy でそのような分析を作成できます。メトリックを使用すると、ファクト データに対して計算と集計を実行できます。

例: 派生ファクトの作成

Tutorial プロジェクトの Cost ファクトには、派生ファクト式 Qty_Sold * Unit_Cost が含まれています。この式は、販売されたアイテムの数量に関するデータを含む列と、それらの単価を含む列を乗算して、有用なビジネス計算を生成できることを示しています。この場合、列は「顧客が購入したアイテムを作成するのに会社にとってのコストはいくらでしたか?」というビジネスの質問に答えるために使用されます。

次の手順では、上記で説明した派生ファクト式を使用する派生ファクトを作成する方法について説明します。

派生ファクトを作成する

  1. ナビゲーション ペインがスマート モードになっている Workstation ウィンドウを開きます。
  2. 環境に接続します。
  3. 新しいファクトのプロジェクト スキーマが編集可能であることを確認します。プロジェクトのロック アイコンをクリックして、Schema Editor でスキーマのロックを解除できます。
  4. File メニューから、New Fact を選択します。New Fact というラベルが付いた Fact Editor が開きます。
  5. Name ボックスに新しいファクトの説明的な名前を入力します。
  6. All Tables ペインで、ファクトのソース テーブルを検索して選択します。 この例では、ORDER_DETAIL テーブルを選択します。
  7. Available columns ペインから、列をダブルクリックするか、Expression ペインにドラッグ アンド ドロップします。この例では、QTY_SOLD 列をダブルクリックします。

  8. 派生ファクト式には、列、数値定数、および数学演算子の組み合わせが含まれます。以下の手順では、例のシナリオを続けて、派生ファクト式の作成方法のガイドラインを提供します。

  9. Expression ペインでカーソルを置き、X (乗算演算子) をクリックして式に追加します。
  10. Available columns ペインから、UNIT_PRICE 列をダブルクリックして、ファクト式の末尾に追加します。
  11. Validate をクリックして、式の構文が正しいかどうかを確認します。式は次のように表示されるはずです。

  12. Done をクリックします。派生ファクト式が検証され、一番左のペインに表示されます。

    ファクトを保存する
  13. Save をクリックします。
  14. ファクトを保存するフォルダーに移動し、Save をクリックします。
  15. Fact Editor を閉じます

    スキーマを更新する

    新しいファクトをプロジェクトに読み込むために、スキーマを更新します。

  16. Workstation ナビゲーション ペインで、Schemas をクリックし、プロジェクトの横にある Reload Schema アイコン をクリックします。

列名が異なるファクト: 異種列名

データ ソースでは、同じファクト データが異なる列名を持つ列に含まれる場合があります。以下の例では、データ ソース内の 2 つのファクト テーブルに、それぞれドル売上の列が含まれています。テーブル 1 には Dollar_Sales というファクトが含まれています。テーブル 2 には Dollar_Sls というファクトが含まれています。これら 2 つのアイテムは同じ情報を表しています。

Strategy では、各ファクトの異種ファクト列名を識別できます。異種列名を使用すると、同じファクトを、同じ定量値を識別する異なるテーブルの異なる列名を持つ複数の列に参照できます。

上記の例では、ドル売上の異種ファクト列名を作成すると、Dollar_SalesDollar_Sls の列が同じファクトを表していることがシステムに通知されます。メトリックを使用してレポートで情報を呼び出すと、両方のファクト列が SQL で使用され、レポートでのファクトの正確な表現が得られます。

例: 異種ファクト列のマッピング

Tutorial プロジェクトの Units Sold ファクトは、ウェアハウス内の 2 つのファクト列 Qty_SoldTot_Unit_Sales で構成されています。これらのファクト列は名前が異なり、異なるファクト テーブルに存在しますが、同じデータを表しているため、両方とも Unit Sold ファクトにマップされます。

レポートに正確で完全なデータが表示されるようにするには、異種ファクト列を対応するファクトにマップする必要があります。

次の手順では、Tutorial プロジェクトに既に存在する Units Sold ファクトを作成する方法について説明します。手順では、Units Sold ファクトを作成し、対応する異種ファクト列をそれにマップします。

異種列名を持つファクトを作成する

  1. ナビゲーション ペインがスマート モードになっている Workstation ウィンドウを開きます。
  2. 環境に接続します。
  3. 新しいファクトのプロジェクト スキーマが編集可能であることを確認します。プロジェクトのロック アイコンをクリックして、Schema Editor でスキーマのロックを解除できます。
  4. File メニューから、New Fact を選択します。New Fact というラベルが付いた Fact Editor が開きます。
  5. Name ボックスに新しいファクトの説明的な名前を入力します。
  6. All Tables ペインで、ファクトのソース テーブルを検索して選択します。 この例では、ORDER_FACT テーブルを選択します。
  7. Available columns ペインから、列をダブルクリックするか、Expression ペインにドラッグ アンド ドロップします。この例では、QTY_SOLD 列をダブルクリックします。
  8. Done をクリックします。ファクト式が検証され、一番左のペインに表示されます。

  9. Add New Expression をクリックします。

  10. All Tables ペインで、ファクトのソース テーブルを検索して選択します。 この例では、CITY_CTR_SALES テーブルを選択します。これは、Units Sold ファクトのファクト列を含むもう 1 つのテーブルです。

  11. Available columns ペインから、列をダブルクリックするか、Expression ペインにドラッグ アンド ドロップします。この例では、TOT_UNIT_SALES 列をダブルクリックします。

  12. Done をクリックします。ファクト式が検証され、一番左のペインに表示されます。 作成している Units Sold ファクトが、異種ファクト列に正しくマップされるようになりました。

    ファクトを保存する

  13. Save をクリックします。
  14. ファクトを保存するフォルダーに移動し、Save をクリックします。
  15. Fact Editor を閉じます

    スキーマを更新する

    新しいファクトをプロジェクトに読み込むために、スキーマを更新します。

  16. Workstation ナビゲーション ペインで、Schemas をクリックし、プロジェクトの横にある Reload Schema アイコン をクリックします。