Amazon QuickSight でのレベルアウェア計算の使用 - Amazon QuickSight

Amazon QuickSight でのレベルアウェア計算の使用

   適用先: Enterprise Edition と Standard Edition 

レベルアウェア計算 (LAC) では、ウィンドウ関数または集計関数を計算する際の詳細度のレベルを指定できます。LAC 関数には、レベルアウェア計算 – 集計 (LAC-A) 関数と、レベルアウェア計算 – ウィンドウ (LAC-W) 関数の 2 種類が存在します。

レベルアウェア計算 – 集計 (LAC-A) 関数

LAC-A 関数を使用すると、計算をグループ化するレベルを指定できます。既存の集計関数に引数を 1 つ追加することで (例:sum(),max(),count())、集計に使用するグループ別レベルを任意に定義できます。追加するレベルは、ビジュアルに追加されたディメンションとは関係なく、任意のディメンションを使用できます。例:

sum(measure,[group_field_A])

LAC-A 関数を使用するには、目的の集計レベルを 2 番目の引数として括弧の間に追加しながら、計算エディターを使用して関数を直接入力します。比較のために、集計関数と LAC-A 関数の例を以下に示します。

  • 集計関数: sum({sales})

  • LAC-A 関数: sum({sales}, [{Country},{Product}])

    結果は、括弧 [] 内で指定されたレベルを使用して計算されます。

LAC-A 関数は、以下の集計関数でサポートされています。

LAC-A の例

LAC-A 関数では、以下のことが行えます。

  • ビジュアルのレベルからは独立した計算を実行します。例えば、次の計算を行う場合、売上数は国レベルでのみ集計され、ビジュアル内の他のディメンション (リージョンまたは製品) 全体からは集計されません。

    sum({Sales},[{Country}])
    
								売上数は国レベルでのみ集計されます。
  • ビジュアルにないディメンションの計算を実行します。例えば、次のような関数では、リージョン別に合計売上額の平均を計算できます。

    sum({Sales},[{Country}])

    国はビジュアルに含まれていませんが、LAC-A 関数はまず国レベルで売上を集計します。その後で、ビジュアルレベルの計算によって各リージョンでの平均値が生成されます。LAC-A 関数によりレベルが指定されていない場合、平均売上高は、各リージョン (売上列に表示) における最低詳細度 (データセットの基本レベル) で計算されます。

    
								LAC-A 関数は、まず国レベルで売上額を集計し、次にビジュアルレベルでの処理を行います。
  • LAC-A に、他の集計関数や LAC-W 関数を組み合わせて使用します。LAC-A 関数を他の関数にネストするには、 2 つの方法があります。

    • 計算の作成時に、ネストされた構文を記述します。例えば、LAC-A 関数を LAC-W 関数にネストし、以下のように各製品の平均価格を使用して国ごとの総売上額を算出できます。

      sum(avgOver({Sales},[{Product}],PRE_AGG),[{Country}])
    • LAC-A 関数をビジュアルに追加すると、フィールドウェルで選択したビジュアルレベルの集計関数を使用して、計算をさらにネストすることが可能です。ビジュアル内のフィールドに関する集計の変更については、「フィールドウェルを使用したフィールドでの集計の変更または追加」を参照してください。

      
										ビジュアル上で集権オプションを使用して、LAC-A 関数をさらにネストします。

LAC-A での制限事項

LAC-A 関数には、以下の制限が適用されます。

  • LAC-A 関数は、sum()count()、および percentile() など、付加的および非付加的なすべての集合関数でサポートされています。LAC-A 関数は、「if」で終わる条件付き集計関数 (sumif()countif() など) ではサポートされていません。同様に、「periodToDate」で始まる期間集計関数 (periodToDateSum()periodToDateMax() など) でもサポートされません。

  • 現在、テーブルおよびピボットテーブルの LAC-A 関数では、行レベルと列レベルの合計をサポートしていません。行レベルまたは列レベルの合計をグラフに追加した場合でも、合計値は空白として表示されます。その他の、非 LAC のディメンションには影響はありません。

  • 現在、LAC-A 関数でのネストはサポートされていません。LAC-A 関数では、限られた機能が、通常の集計関数と LAC-W 関数とのネストをサポートしています。

    例えば、以下の関数が対応しています。

    • Aggregation(LAC-A())。例: max(sum({sales}, [{country}]))

    • LAC-A(LAC-W())。例: sum(sumOver({Sales},[{Product}],PRE_AGG), [{Country}])

    以下の関数では対応していません。

    • LAC-A(Aggregation())。例: sum(max({sales}), [{country}])

    • LAC-A(LAC-A())。例: sum(max({sales}, [{country}]),[category])

    • LAC-W(LAC-A())。例: sumOver(sum({Sales},[{Product}]),[{Country}],PRE_AGG)

レベルアウェア計算-ウィンドウ (LAC-W) 関数

LAC-W 関数では、計算の対象としてウィンドウまたはパーティションを指定できます。LAC-W 関数は、事前フィルターレベルまたは事前集計レベルで実行が可能な、(sumover()(maxover)denseRank のような) ウィンドウ関数のグループです。例: sumOver(measure,[partition_field_A],pre_agg)

以前は、LAC-W 関数をレベルアウェア集計 (LAA) と呼んでいました。

以下のタイプの問題に対し解答を得る際には、LAC-W 関数が役立ちます。

  • お客様のうち、1 件の発注しか行っていないのは何人ですか? 10 件の場合は? 50 件の場合は? ビジュアルでは、カウントをビジュアル内のメトリクスではなくディメンションとして使用します。

  • 生涯支出が 100,000 USD を超える顧客の市場セグメントあたりの合計売上高はどのくらいですか? ビジュアルには、市場セグメントとそれぞれの合計売上のみが表示されます。

  • 会社全体の利益に対する各業界の貢献率 (合計に対する割合) はどれくらいですか? ビジュアルをフィルタリングして、一部の業種と、表示された業種の総売上高にどのように貢献するかを表示できるようにしたいと考えています。ただし、会社全体 (フィルタリングされた業界を含む) の売上合計に対する各業界のパーセントを確認する必要もあります。

  • 業界平均と比較して、各カテゴリーの総売上高はどのくらいですか? 業界平均には、フィルタリング後もすべてのカテゴリーを含める必要があります。

  • お客様はどのように累積支出範囲にグループ化されますか? グループ化は、メトリクスではなくディメンションとして使用します。

より複雑な質問に対応するには、設定されている評価における特定のポイントに QuickSight が到達する前に、計算またはフィルタを挿入します。結果に直接影響を与えるには、計算レベルのキーワードをテーブル計算に追加します。QuickSight がクエリを評価する方法については、「Amazon QuickSight での評価の順序」を参照してください。

LAC-W 関数では、以下の計算レベルがサポートされています。

  • PRE_FILTER – 分析からのフィルタを適用する前に、Amazon QuickSight は事前フィルタ計算を評価します。その後、これらの事前フィルタ計算で設定されたすべてのフィルタを適用します。

  • PRE_AGG – 表示レベルの集計を計算する前に、Amazon QuickSight は事前集計を計算します。次に、これらの事前集計計算で設定されたすべてのフィルタを適用します。この作業は、上位と下位の N フィルタを適用する前に行われます。

次のテーブル計算関数では、PRE_FILTER または PRE_AGG キーワードをパラメータとして使用できます。計算レベルを指定するときは、関数で集計されていない測定を使用します。たとえば、countOver({ORDER ID}, [{Customer ID}], PRE_AGG) を使用できます。PRE_AGG を使用して、countOver が事前集計レベルで実行されるように指定します。

デフォルトでは、各関数の最初のパラメータは集計された測定である必要があります。PRE_FILTER または PRE_AGG を使用する場合は、最初のパラメータに非集計メジャーを使用します。

重複を防止するため、LAC-W 関数によるビジュアル集計は、デフォルトで MIN に設定されます。集計を変更するには、フィールドのコンテキストメニュー (右クリック) を開き、別の集計を選択します。

実際のシナリオで、LAC-W 関数を使用するタイミングとその方法の例については、AWS ビッグデータブログの記事「Create advanced insights using Level Aware Aggregations in Amazon QuickSight」(Amazon QuickSight でレベルアウエア集計を使用して高度な洞察を作成する) を参照してください。