次の方法で共有


カスタム計算とは

カスタム計算を使用すると、データセット クエリを変更せずに動的メトリックと変換を定義できます。 この記事では、AI/BI ダッシュボードでカスタム計算を使用する方法について説明します。

カスタム計算を使用する理由

カスタム計算を使用すると、ソース SQL を変更することなく、既存のダッシュボード データセットから新しいフィールドを作成および視覚化できます。 データセットごとに最大 200 個のカスタム計算を定義できます。

カスタム計算は、次のいずれかの種類です。

  • 計算メジャー: 総売上や平均コストなどの集計値。 計算メジャーでは、 AGGREGATE OVER コマンドを使用して、時間範囲全体の値を計算できます。
  • 計算ディメンション: 年齢範囲の分類や文字列の書式設定など、集計されていない値または変換。

カスタム計算はメトリック ビューと同様に動作しますが、定義されているデータセットとダッシュボードにスコープが設定されます。 他のデータ資産で使用できるカスタム メトリックを定義するには、 Unity カタログのメトリック ビューを参照してください。

計算された指標を使用して動的なメトリクスを作成する

次のデータセットがあるとします。

Item リージョン 料金 費用 日付
Apples 米国 30 15 2024-01-01
Apples カナダ 20 10 2024-01-01
Oranges 米国 20 15 2024-01-02
Oranges カナダ 15 10 2024-01-02

地域別の利益率を視覚化する必要がある。 カスタム計算を使用しない場合は、 margin 列を使用して新しいデータセットを作成する必要があります。

リージョン Margin
米国 0.40
カナダ 0.43

この方法は機能しますが、新しいデータセットは静的であり、1 つの視覚化のみをサポートする場合があります。 元のデータセットに適用されたフィルターは、追加の手動調整なしで新しいデータセットに影響しません。

カスタム計算では、次の式を使用して利益利益を集計として表すことができます。

(SUM(Price) - SUM(Cost)) / SUM(Price)

このメジャーは動的です。 視覚化で使用すると、データセットに適用されたフィルターを反映するように自動的に更新されます。

範囲にわたる測定基準を定義する

ダッシュボードの視覚化の一般的なタスクは、過去 7 日間などの範囲にわたる SUM(sales) などのメジャーを計算することです。 ダッシュボード データセットの場合は、 AGGREGATE OVER コマンドを使用して、これらの種類の範囲ベースのメジャー計算を定義します。

AGGREGATE OVER コマンドは、現在のグループまたはパーティションの外部にデータを組み込むことができます。 たとえば、視覚化によってデータが日単位でグループ化されている場合、末尾の 7 日間の範囲では、各日のデータ ポイントに過去 6 日間のデータを含めることができます。 月別にグループ化された視覚化で同じメジャーが使用されている場合、7 日間の範囲では、各月の過去 7 日間のみが使用されます。

前の例と同じデータセットを使用して、次の式は、末尾の 7 日間の平均利益率を計算します。

(
  (SUM(Price) - SUM(Cost)) / SUM(Price)
) AGGREGATE OVER (
  ORDER BY Date
  TRAILING 7 DAY
)

作成後、この測定値はどの視覚化にも適用できます。

AGGREGATE OVER の構文

AGGREGATE OVER コマンドには、次の構文が必要です。

{expr} AGGREGATE OVER (ORDER BY {field} {frame})

論争

  • expr

    有効な計算済みメジャー式の評価

  • フィールド (必須)

    有効な列名

  • frame (必須) 次のいずれかを指定できます。

    • CURRENT
    • CUMULATIVE
    • ALL
    • (TRAILING|LEADING) numberunit
      • number は整数です
      • 単位が DAYMONTH、または YEAR
      • 例: TRAILING 7 DAY または LEADING 1 MONTH

次の表は、集計におけるフレーム指定が同等のSQL ウィンドウフレーム句とどのように比較されるかを示しています。

フレームの指定 同等の SQL ウィンドウ フレーム句
CURRENT 現在の行と現在の行の間の範囲
全て 無制限の前と無制限の後の間の範囲
累積 境界のない前の行と現在の行の範囲
末尾 <NUMBER><UNIT> 範囲は<NUMBER><UNIT> 以前から 1 <UNIT> 以前まで
先導する <NUMBER><UNIT> 範囲は1 <UNIT> FOLLOWING から<NUMBER><UNIT> FOLLOWINGまで

AGGREGATE OVER とウィンドウ関数を比較すると

AGGREGATE OVER コマンドは、メトリックの計算によく使用される SQL のウィンドウ関数に似ています。 ただし、ウィンドウ関数とは異なり、式にパーティション フィールドを指定せずに AGGREGATE OVER を使用できます。 代わりに、視覚化クエリのグループ化からパーティションを継承します。 これらの措置をより動的に使用できます。 たとえば、視覚化の y 軸にメジャーを追加し、製品ラインを x 軸に追加することで、製品ラインごとに 7 日間の移動平均を計算できます。

ORDER BY フィールドが視覚化でグループ化されていない場合、AGGREGATE OVERは最後の行の集計値を各グループに表示する値として受け取ります。 半加法のメジャーに慣れている場合は、これを半加法の動作と同等 last 認識できます。

カスタム ディメンションを使用して集計されていない値を定義する

計算ディメンションを使用すると、ソース データセットを変更せずに、集計されていない値または軽量の変換を定義できます。 これは、視覚化のためにデータを整理または再フォーマットする場合に役立ちます。

たとえば、個々の年齢ではなく年齢グループ別に年齢の傾向を分析するには、次の式を使用してカスタム age_group ディメンションを定義できます。

CASE
   WHEN age < 18 THEN '<18'
   WHEN age >= 18 AND age < 25 THEN '18–24'
   WHEN age >= 25 AND age < 35 THEN '25–34'
   WHEN age >= 35 AND age < 45 THEN '35–44'
   WHEN age >= 45 AND age < 55 THEN '45–54'
   WHEN age >= 55 AND age < 65 THEN '55–64'
   WHEN age >= 65 THEN '65+'
END

パフォーマンスの利点

カスタム計算は、パフォーマンス用に最適化されています。 小さなデータセット (≤100,000 行と ≤100 MB) の場合、計算はブラウザーで実行され、応答性が向上します。 大規模なデータセットは、SQL ウェアハウスによって処理されます。 詳細については、 データセットの最適化とキャッシュに関するページを 参照してください。

カスタム計算を作成する

この例は、samples.nyctaxi.trips データセットに基づいて計算された指標を作成します。 AI/BI ダッシュボードの操作方法に関する一般的な知識を前提としています。 AI/BI ダッシュボードの作成に慣れていない場合は、「ダッシュボード を作成する」を参照してください。

  1. 既存のデータセットを開くか、新しいデータセットを作成します。

  2. [ カスタム計算] をクリックします。

    カスタム計算ボタンは、結果パネルの右上隅で強調表示されます。

  3. 画面の右側に [ 計算の作成 ] パネルが開きます。 [名] テキスト フィールドに、「コスト/マイル」と入力します。

  4. (省略可能)[説明 テキスト フィールドに、「料金の金額と乗車距離を使用してマイルあたりのコストを計算します」と入力します。

  5. [ ] フィールドに、次のように入力します。

    try_divide(SUM(fare_amount), SUM(trip_distance))
    
  6. Create をクリックしてください。

命令の値が入力されたカスタム計算エディター。

メトリック ビューにカスタム計算を追加する

Important

この機能は パブリック プレビュー段階です

メトリック ビューによって作成されたデータセットの上にカスタム計算を定義できます。 データセットを開くと、 結果テーブルスキーマ のみが表示されます。 [ カスタム計算 ] をクリックして、新しいカスタム計算を定義します。 他のデータ資産で使用できる追加のカスタム メトリックを定義するには、ビュー定義を変更します。 Unity カタログのメトリック ビューを参照してください。

ダッシュボード データセット エディターから新しいメトリック ビューを定義するには、「 メトリック ビューとしてエクスポートする」を参照してください。

スキーマを表示する

結果パネルの [ スキーマ ] タブをクリックして、カスタム計算とそれに関連付けられているコメントを表示します。

計算メジャーは、[メジャー] セクションに一覧表示され、計算メジャー アイコン fx でマークされます。 計算メジャーに関連付けられている値は、視覚化で GROUP BY を設定すると動的に計算されます。 結果テーブルに値が表示されない。 [ディメンション] セクションに計算 ディメンションが 表示されます。

計算メジャーがスキーマ タブに表示されます。

視覚化でカスタム計算を使用する

以前に作成した マイルあたりのコスト 計算メジャーを視覚化で使用できます。

計算指標は、チャート上で設定されたディメンションに対して自動的に集計されます。 この動作は、ディメンションとメジャーがメトリック ビューでどのように機能するかと同じです。ここで、集計は、視覚化で定義したグループに動的に適応します。

  1. [キャンバス] をクリックします。 次に、キャンバスに新しい視覚化ウィジェットを配置します。
  2. 視覚化構成パネルを使用して、次のように設定を編集します。
    • データセット: Taxicab data
    • 視覚化: 棒グラフ
    • X 軸:
      • フィールド: dropoff_zip
      • スケールの種類: カテゴリ
      • 変換: なし
    • Y 軸:
      • 1 マイルあたりのコスト

テーブルの視覚化では計算ディメンションがサポートされますが、計算メジャーはサポートされていません。

次の図はグラフを示しています。

マイルあたりのコストと降車郵便番号を示す横棒グラフです。

カスタム計算を使用した視覚化は、フィルターが適用されると自動的に更新されます。 たとえば、 pickup_zip フィルターを追加すると、選択した値に一致するデータのみが表示されるように視覚化が更新されます。

カスタム計算を編集する

計算を編集するには:

  1. [ データ ] タブをクリックし、編集する計算に関連付けられているデータセットをクリックします。
  2. 結果パネルの [スキーマ] タブをクリックします。
  3. メジャーディメンションは、 データセット フィールドの一覧の下に表示されます。 [Kebab] メニュー アイコン をクリックします。編集する計算の右側にある kebab メニューをクリックします。 次に、[編集] をクリックします。
  4. [カスタム計算の編集] パネルで、編集するテキスト フィールドを更新します。 次に、[更新] をクリックします。

カスタム計算を削除する

計算を削除するには:

  1. [ データ ] タブをクリックし、編集するメジャーに関連付けられているデータセットをクリックします。
  2. 結果パネルの [スキーマ] タブをクリックします。
  3. 対策 セクションがフィールドの一覧の下に表示されます。 [Kebab] メニュー アイコン をクリックします。編集する計算の右側にある Kebab メニューをクリックします。 その後、 [削除] をクリックします。
  4. 表示される [削除] ダイアログで [削除] をクリックします。

制限事項

カスタム計算を使用するには、次のことが該当する必要があります。

  • 式で使用される列は、同じデータセットに属している必要があります。
  • 外部テーブルまたはデータ ソースを参照する式はサポートされていないため、失敗したり、予期しない結果が返されたりする可能性があります。

サポートされている関数

カスタム計算でサポートされているすべての関数の完全なリファレンスについては、「 カスタム計算関数リファレンス」を参照してください。 サポートされていない関数を使用しようとすると、エラーが発生します。

例示

次の例は、カスタム計算の一般的な使用方法を示しています。 各カスタム計算は、データセットのスキーマの [データ] タブに表示されます。キャンバスでは、フィールドとしてカスタム計算を選択できます。

条件付きでデータのフィルター処理と集計を行う

条件付きでデータを集計するには、 CASE ステートメントを使用します。 次の例では、 samples.nyctaxi.trips データセットを使用し、10103 郵便番号で開始するすべての乗車の料金の合計を計算します。

SUM(CASE
  WHEN pickup_zip=10103 THEN fare_amount
  WHEN pickup_zip!=10103 THEN 0
END)

文字列を構築する

CONCAT関数を使用して、新しい文字列値を作成します。 concat関数concat_ws関数を参照してください。

CONCAT(first_name, ' ', last_name)

日付の書式設定

DATE_FORMATを使用して、視覚化に表示される日付文字列の書式を設定します。

DATE_FORMAT(tpep_pickup_datetime, 'YYYY-MM-dd')