メトリクスビューでパラメーターを使用する
パラメーターを使用すると、クエリを実行する際にメトリクスビューに値を渡すことができます。パラメーターを使用すると、割引率や日付範囲など、さまざまな入力で単一のメトリクスビュー定義を再利用できます。定数のSQL式が有効な場所ならどこでもパラメーターを参照できます。たとえば、フィルター、フィールド式とメジャー式、ソース、結合などで有効です。ビューをクエリする際に、引数として値を渡します。
パラメーターは重複を減らします。各バリアントに個別のメトリクスビューを維持する代わりに、ロジックを一度定義し、各呼び出し元が独自の値を供給できるようにします。パラメーターにはデフォルト値を含めることができるため、引数を渡さない呼び出し元はデフォルトにフォールバックします。
現在、パラメーターを定義するメトリクスビューのマテリアライゼーションはサポートされていません。
要件
パラメーターを定義するメトリクスビューへのクエリには、最小バージョン要件を満たすコンピュートリソースが必要です。最小コンピュートバージョン要件については、メトリクスビューの機能の可用性を参照してください。
パラメーターを定義する
カタログエクスプローラのローコードエディターで、またはYAMLで直接パラメーターを定義できます。パラメーターを作成した後、フィルター、フィールドおよびメジャー式、ソース、結合など、定数SQL式が有効な場所ならどこでも名前で参照できます。
ローコードエディターでパラメーターを追加するには:
- エディターの見出しで、 パラメーターを追加 をクリックします。
- パラメーター名を入力します(例:
start_dateまたはoffset_int)。 - デフォルト値とデータ型を入力します。
- 保存 をクリックします。
パラメーターは、作成後にエディターの見出しに表示されます。
YAMLでパラメーターを定義するには、メトリクスビュー定義にトップレベルのparametersブロックを追加します。完全なフィールドリファレンスとYAMLの例については、パラメーターを参照してください。
パラメーターを指定してメトリクスビューをクエリする
パラメーターを定義するメトリクスビューをクエリするには、メトリクスビューをテーブル値関数として呼び出し、パラメーターを引数として渡します。引数は名前または位置で渡すことも、省略してデフォルト値を使用することもできます。
名前で引数を渡す
名前で引数を渡すには、=>演算子を使用します。次の例は、0.15のdiscount値を渡します:
SELECT product, MEASURE(discountedSales)
FROM catalog.schema.metric_view(discount => 0.15)
GROUP BY product;
位置で引数を渡す
位置で引数を渡すには、パラメーターが定義されている順序で値を一覧表示します。次の例では、同じ discount の値 0.15 を渡します。
SELECT product, MEASURE(discountedSales)
FROM catalog.schema.metric_view(0.15)
GROUP BY product;
デフォルトのパラメーター値を使用する
メトリクスビューを呼び出す際にデフォルトのパラメーター値を使用するには、引数を省略します。以下のクエリは同等であり、すべてのデフォルト値を使用します。
SELECT product, MEASURE(discountedSales) FROM catalog.schema.metric_view() GROUP BY product;
SELECT product, MEASURE(discountedSales) FROM catalog.schema.metric_view GROUP BY product;
メトリクスビューが定義するパラメーターを表示する
メトリクス ビューが定義するパラメーターを確認するには、YAML 定義を表示します。そこには parameters ブロックが含まれます。メトリクス ビューの定義とメタデータの表示を参照してください。