1

これが私がやろうとしていることです: 次のような典型的な列を持つ典型的な販売ファクトテーブルがあるとしましょう:

Date, SalesRep, Product, Region, Units, Amount

ここで、単純に、Amount を合計して、次のように Region に対してロールアップできます。

Region      Sum of Revenue
------      --------------
North       56,234 $
South       48,788 $
East        38,787 $
West        15,334 $

しかし、次のように別の方法で使用したい場合はどうすればよいでしょうか。

Revenue range    Region
-------------    ------
>50,000          North
>25,000          South
                 East
>10,000          West

それは、定量的な事実を次元として扱い、その逆を意味するのではないでしょうか? しかし、どうすればメジャーをディメンションに変換できますか?

正しい方向へのプッシュは大歓迎です。

4

1 に答える 1

1

動的値バンディング:

http://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/Dimension-modeling-techniques/dynamic-value-banding/

動的な値のバンディング レポートは、一連のレポート行ヘッダーとして編成されます。これらのヘッダーは、ターゲットの数値ファクトのさまざまなサイズの範囲のプログレッシブ セットを定義します。たとえば、銀行の一般的な値バンディング レポートには、「0 から $10 までの残高」、「$10.01 から $25 までの残高」などのラベルが付いた多くの行があります。

この種のレポートは動的です。これは、ETL 処理中ではなく、クエリ時に特定の行ヘッダーが定義されるためです。行定義は、大なり/小なり結合を介してファクト テーブルに結合される小さな値のバンディング ディメンション テーブルに実装できます。または、定義は SQL CASE ステートメントにのみ存在できます。

値バンディング ディメンション アプローチは、特に列データベースではおそらくパフォーマンスが高くなります。CASE ステートメント アプローチには、ファクト テーブルのほとんど制約のないリレーション スキャンが含まれるためです。

バンディング寸法表:

ID | RANGE_SET    | RANGE_NAME | RANGE_MIN    | RANGE_MAX
---|--------------|------------|--------------|---------------
1  | THREE_RANGES | >50,000    |  50,000.01 $ | 9,999,999.00 $
2  | THREE_RANGES | >25,000    |  25,000.01 $ |    50,000.00 $
3  | THREE_RANGES | >10,000    |  10,000.01 $ |    25,000.00 $
10 | BIG_SMALL    | Small      |       0.00 $ |   100,000.00 $
11 | BIG_SMALL    | Big        | 100.000.01 $ | 9,999,999.00 $

この列RANGE_SETを使用すると、同じディメンション テーブルにいくつかの範囲のセットを格納でき、定義された範囲をグループ化するために使用されます。

集約されたファクト テーブル:

大規模なファクト テーブルを扱っていて、動的なアプローチではリソースを大量に消費する場合は、集計されたファクト テーブルにデータを読み込み、収益の合計を使用して適切なバンディング キーを取得できます。

REGION | BANDING_ID | SUM_OF_REVENUE
-------|------------|---------------
North  | 1          |       56,234 $
South  | 2          |       48,788 $
East   | 2          |       38,787 $
West   | 3          |       15,334 $
于 2014-06-17T18:49:45.060 に答える