Comparteix via


Composabilidad en vistas de métricas

En esta página se explica cómo funciona la composición en las vistas de métricas y se proporcionan ejemplos que muestran cómo crear lógica mediante la creación de dimensiones, medidas y combinaciones dentro de una sola vista.

Información general

Las vistas de métricas se pueden componer, lo que significa que puede definir lógica superpuesta y reutilizable. En lugar de escribir cada definición desde cero, puede crear nuevas que se basan en las dimensiones y medidas existentes.

Con la composabilidad, puedes:

  • Hacer referencia a dimensiones definidas previamente en nuevas dimensiones
  • Hacer referencia a cualquier dimensión o medidas definidas previamente en nuevas medidas
  • Referencia de columnas de combinaciones definidas en la vista de métricas

La composabilidad le ayuda a evitar la duplicación, simplificar las definiciones de métricas y admitir análisis más complejos sin necesidad de SQL en bruto cada vez.

Componibilidad de métricas

La composición es el principio de crear métricas complejas mediante la reutilización de medidas básicas más sencillas. En lugar de escribir y mantener lógica SQL compleja y anidada para cada KPI derivado, defina las medidas básicas "atómicas" una vez y, a continuación, haga referencia a ellas en otros cálculos más sofisticados. Este enfoque mejora considerablemente la coherencia, la auditabilidad y el mantenimiento de la capa semántica.

La base de la composición es la función MEASURE(), que permite que una definición de medida haga referencia a cualquier otra medida definida dentro de la misma vista de métricas.

Definir medidas con capacidad de composición

La componibilidad se implementa en measures la sección de la vista de las métricas YAML.

Tipo de medida Description Example
Atómico Agregación sencilla y directa en una columna de origen. Estos forman los bloques fundamentales. SUM(o_totalprice)
Compuesto Expresión que combina matemáticamente una o varias medidas usando la función MEASURE(). MEASURE(Total Revenue) / MEASURE(Order Count)

Ejemplo: Valor medio de pedido (AOV)

Para calcular el valor medio del orden (AOV), necesita dos medidas: Total Revenue y Order Count.

source: samples.tpch.orders

measures:
  # Total Revenue
  - name: total_revenue
    expr: SUM(o_totalprice)
    comment: The gross total value of all orders.
    display_name: 'Total Revenue'

  # Order Count
  - name: order_count
    expr: COUNT(1)
    comment: The total number of line items or orders.
    display_name: 'Order Count'

  # Composed Measure: Average Order Value (AOV)
  - name: avg_order_value
    # Defines AOV as Total Revenue divided by Order Count
    expr: MEASURE(total_revenue) / MEASURE(order_count)
    comment: Total revenue divided by the number of orders.
    display_name: 'Avg Order Value'

En este ejemplo, si la definición de total_revenue cambia (por ejemplo, si se agrega un filtro para excluir impuestos), avg_order_value hereda automáticamente ese cambio, lo que garantiza que la métrica de AOV permanezca coherente con la nueva regla empresarial.

Composibilidad con lógica condicional

Puede usar la capacidad de composición para crear relaciones complejas, porcentajes condicionales y tasas de crecimiento sin depender de funciones de ventana para cálculos simples de período a período.

Ejemplo: Tasa de cumplimiento

Para calcular la Tasa de cumplimiento (Pedidos cumplidos/Pedidos totales), primero defina la medida para los pedidos completados mediante una FILTER cláusula .

source: samples.tpch.orders

measures:
  # Total Orders (denominator)
  - name: total_orders
    expr: COUNT(1)
    comment: Total volume of orders regardless of status.

  #  Fulfilled Orders (numerator)
  - name: fulfilled_orders
    expr: COUNT(1) FILTER (WHERE o_orderstatus = 'F')
    comment: Only includes orders marked as fulfilled.

  # Composed Measure: Fulfillment Rate (Ratio)
  - name: fulfillment_rate
    expr: MEASURE(fulfilled_orders) / MEASURE(total_orders)
    display_name: 'Order Fulfillment Rate'
    format:
      type: percentage # Using semantic metadata to format as a percent

Procedimientos recomendados para usar la componibilidad

  1. Defina primero las medidas atómicas: Establezca siempre sus medidas fundamentales (SUM, COUNT, AVG) antes de definir las medidas que las hagan referencia.
  2. Utilice MEASURE() para la coherencia: Utilice siempre la función MEASURE() al hacer referencia al cálculo de otra medida dentro de un expr. No intente repetir manualmente la lógica de agregación (por ejemplo, evite SUM(a) / COUNT(b) si ya existen medidas para el numerador y el denominador).
  3. Priorice la legibilidad: La expr medida compuesta debe leerse como una fórmula matemática para el KPI. Por ejemplo, MEASURE(Gross Profit) / MEASURE(Total Revenue) es más claro y fácil de auditar que una sola expresión SQL compleja.
  4. Combinar con metadatos semánticos: Después de crear un ratio, use metadatos semánticos (como se muestra en el fulfillment_rate ejemplo) para dar formato automáticamente al resultado como porcentaje o moneda para las herramientas posteriores. Consulte Uso de metadatos semánticos en vistas de métricas.