カスタム計算とは?
カスタム計算を使用すると、データセットクエリを変更せずに動的なメトリクスと変換を定義できます。この記事では、AI/BI ダッシュボードでカスタム計算を使用する方法について説明します。
カスタム計算を使用する理由
カスタム計算を使用すると、ソース SQL を変更せずに、既存のダッシュボード データセットから新しいフィールドを作成および視覚化できます。次の 2 種類のカスタム計算を定義できます。
- 計算メジャー : 総売上高や平均コストなどの集計値
- 計算ディメンション : 未集計の値や変換 (年齢範囲の分類や文字列の書式設定など)
例: 計算メジャー
次のデータセットがあるとします。
項目 | リージョン | 料金 | コスト |
---|---|---|---|
リンゴ | USA | 30 | 15 |
リンゴ | Canada | 20 | 10 |
オレンジ | USA | 20 | 15 |
オレンジ | Canada | 15 | 10 |
地域ごとの利益率を視覚化します。カスタム計算を使用しない場合は、 margin
列を含む新しいデータセットを作成する必要があります。
リージョン | 余地 |
---|---|
USA | 0.40 |
Canada | 0.43 |
このアプローチは機能しますが、新しいデータセットは静的であり、1 つの視覚化しかサポートしない場合があります。 元のデータセットに適用されたフィルターは、追加の手動調整を行わない限り、新しいデータセットに影響を与えません。
カスタム計算では、次の式を使用して利益率を集計として表すことができます。
(SUM(Price) - SUM(Cost)) / SUM(Price)
このメジャーは動的です。ビジュアライゼーションで使用すると、データセットに適用されたフィルターを反映するように自動的に更新されます。
例: 計算ディメンション
計算ディメンションを使用すると、ソースデータセットを変更せずに、未集計の値や軽量の変換を定義できます。これは、視覚化のためにデータを整理または再フォーマットする場合に便利です。
たとえば、個々の年齢ではなく年齢グループ別に年齢の傾向を分析するには、次の式を使用してカスタム 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 ダッシュボードの作成に慣れていない場合は、「 ダッシュボードの作成 」を参照して開始してください。
- データ タブで、次のステートメントを使用してデータセットを作成します。
SELECT * FROM samples.nyctaxi.trips
-
データセットの名前を Taxicab data に変更します。
-
[カスタム計算] をクリックします。
-
画面の右側に「 計算の作成 」パネルが開きます。 「名前 」テキストフィールドに「 Cost per mile 」と入力します。
-
(オプション) 説明 テキスト フィールドに「運賃額と移動距離を使用してマイルあたりのコストを計算します」と入力します。
-
「Expression 」フィールドに、次のように入力します。
SQLtry_divide(SUM(fare_amount), SUM(trip_distance))
-
作成 をクリックします。
スキーマの表示
結果パネルの 「スキーマ 」タブをクリックして、カスタム計算とそれに関連するコメントを表示します。
計算されたメジャーは [メジャー ] セクションに一覧表示され、 fx でマークされます。計算メジャーに関連付けられた値は、ビジュアライゼーションで
GROUP BY
を設定するときに動的に計算されます。結果テーブルに値は表示されません。計算されたディメンションは、[ ディメンション] セクションに表示されます。
ビジュアライゼーションでのカスタム計算の使用
以前に作成した Cost per mile 計算メジャーを視覚化で使用できます。
- キャンバス をクリックします。次に、新しい視覚化ウィジェットをキャンバスに配置します。
- 視覚化構成パネルを使用して、次のように設定を編集します。
-
データセット: Taxicab data
-
視覚化: 棒
-
X軸:
- フィールド: dropoff_zip
- スケールタイプ: Categorical
- 変換: None
-
Y軸:
- マイルあたりのコスト
-
テーブルのビジュアライゼーションは、計算軸をサポートしますが、計算メジャーはサポートしません。
次の図はグラフを示しています。
カスタム計算を含むビジュアライゼーションは、適用されたフィルターに基づいて動的に更新されます。たとえば、 pickup_zip のフィルターをキャンバスに追加し、フィルター値を選択すると、ビジュアライゼーションが更新され、選択したフィルター値から発生した旅行のマイルあたりのコスト メトリクスのみが表示されます。 結果の棒グラフには、それに応じてフィルタリングされたデータが反映されます。
カスタム計算の編集
計算を編集するには:
- [ データ ] タブをクリックし、編集する計算に関連付けられているデータセットをクリックします。
- 結果パネルの スキーマ タブをクリックします。
- メジャー と ディメンション は、データセット フィールドの一覧の下に表示されます。編集する計算の右側にある
ケバブメニューをクリックします。次に、[ 編集 ] をクリックします。
- [カスタム計算の編集 ] パネルで、編集するテキスト フィールドを更新します。次に、[ 更新 ] をクリックします。
カスタム計算の削除
計算を削除するには:
- データ タブをクリックし、編集するメジャーに関連付けられているデータセットをクリックします。
- 結果パネルの スキーマ タブをクリックします。
- [ メジャー ] セクションは、フィールドの一覧の下に表示されます。編集する計算の右側にある
ケバブメニューをクリックします。次に、[ 削除 ] をクリックします。
- 表示される 削除 ダイアログで 削除 をクリックします。
制限
カスタム計算を使用するには、次の条件を満たす必要があります。
- 式で使用される列は、同じデータセットに属している必要があります。
- 外部テーブルまたはデータソースを参照する式はサポートされていないため、失敗したり、予期しない結果が返されたりする可能性があります。
サポートされている関数
次の表に、サポートされている関数を示します。サポートされていない関数を使用しようとすると、エラーが発生します。
集計関数
すべての計算済みメジャーは集計する必要があります。 次の集計操作がサポートされています。
集計 | 説明 |
---|---|
avg(expr) または mean(expr) | 列または式で計算された平均を返します。 |
グループ内のロー数を返します。 | |
グループ内の一意の行の数を返します。 | |
列または式の値の合計を返します。 | |
列または式の最大値を返します。 | |
列または式の最小値を返します。 | |
グループ内の指定されたパーセンテージで | |
グループの最初の | |
グループの最後の | |
指定された条件を満たす行の数を返します。 | |
一連の値の中央値を返します。 | |
一連の値の標準偏差を返します。 | |
値のセットの分散を返します。 |
算術演算
式は、次の算術演算と組み合わせることができます。
オペレーション | 説明 |
---|---|
expr1 と expr2 の合計を返します。 | |
| |
2 つの式の製品を返します。 | |
配当を除数で除算した結果を返します。 | |
式の否定された値を返します。 | |
式の値を返します。 | |
2 つの値を加算します。エラーが発生した場合は、 | |
| |
2 つの数値を乗算します。エラーが発生した場合は、 | |
配当を除数で割ります。エラーが発生した場合は、 | |
|
キャスト関数
次の関数を使用して、指定した型に値をキャストします。
関数 | 説明 |
---|---|
値 | |
|
日付、タイムスタンプ、および間隔関数
次の関数を使用して、日付、タイムスタンプ、および間隔を操作します。
関数 | 説明 |
---|---|
| |
単位で測定された 2 つのタイムスタンプの差を返します。 | |
タイムスタンプを | |
単位で測定された 2 つのタイムスタンプの差を返します。 | |
日付またはタイムスタンプから、年、月、日などの特定の部分を抽出します。 | |
日付またはタイムスタンプを、年や月などの指定した単位に切り捨てます。 |
文字列関数
次の関数を使用して、文字列を変換します。
関数 | 説明 |
---|---|
引数の連結を返します。 | |
|
その他の機能
次の機能もサポートされています。
関数 | 説明 |
---|---|
最初の | |
true と評価される最初の | |
最初の null 以外の引数を返します。 | |
|