将参数与指标视图配合使用

参数允许在查询值时将值传递到指标视图中。 使用参数可跨不同的输入重复使用单个 指标视图 定义,例如折扣率或日期窗口。 可以在任何可使用常量 SQL 表达式的位置引用参数,例如筛选条件、字段和度量值表达式、数据源以及联接。 查询视图时,将值作为参数传递。

参数可减少重复。 无需为每个变体维护单独的指标视图,而是定义一次逻辑,让每个调用方提供自己的值。 参数可以包含默认值,因此不传递参数的调用方会回退到默认值。

注释

定义参数的指标视图目前不支持具体化。

Requirements

查询定义参数的指标视图需要满足最低版本要求的计算资源。 有关最低计算版本要求,请参阅 指标视图功能可用性

定义参数

可以在目录资源管理器低代码编辑器中或直接在 YAML 中定义参数。 创建参数后,在常量 SQL 表达式有效的任意位置(例如筛选器、字段和度量值表达式、源和联接中)按名称引用它。

若要在低代码编辑器中添加参数,请执行以下操作:

  1. 在编辑器标题中,单击“ 添加参数”。
  2. 输入参数名称,例如 start_dateoffset_int
  3. 输入默认值和数据类型。
  4. 单击“ 保存”。

创建参数后,该参数将显示在编辑器标题中。

若要在 YAML 中定义参数,请将顶级 parameters 块添加到指标视图定义。 有关完整的字段引用和 YAML 示例,请参阅 “参数”。

使用参数查询指标视图

若要查询定义参数的指标视图,请将指标视图作为表值函数调用,并将参数作为参数传递。 可以按名称或位置传递参数,或省略参数以使用默认值。

按名称传递参数

若要按名称传递参数,请使用 => 运算符。 以下示例将值 discount 传递给 0.15

SELECT product, MEASURE(discountedSales)
FROM catalog.schema.metric_view(discount => 0.15)
GROUP BY product;

按位置传递参数

若要按位置传递参数,请按定义参数的顺序列出值。 以下示例传递了相同的 discount0.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 块。 请参阅 “查看指标视图定义和元数据”。

其他资源