Partilhar via


Composabilidade em visualizações métricas

Esta página explica como a capacidade de composição funciona em exibições métricas e fornece exemplos que mostram como compor lógica com base em dimensões, medidas e junções em uma única exibição.

Visão geral

As visualizações métricas são compostáveis, o que significa que você pode definir lógica em camadas e reutilizável. Em vez de escrever todas as definições do zero, você pode criar novas que se baseiam em dimensões e medidas existentes.

Com a composabilidade, podes:

  • Referenciar dimensões previamente definidas em novas dimensões
  • Fazer referência a qualquer dimensão ou medidas previamente definidas em novas medidas
  • Colunas de referência de junções definidas na visualização métrica

A capacidade de composição ajuda a evitar duplicações, simplificar definições de métricas e dar suporte a análises mais complexas sem exigir SQL bruto a cada vez.

Composição métrica

A composabilidade é o princípio da construção de métricas complexas reutilizando medidas mais simples e fundamentais. Em vez de escrever e manter lógica SQL complexa e aninhada para cada KPI derivado, você define as medidas "atômicas" fundamentais uma vez e, em seguida, utiliza essas medidas como referência em outros cálculos mais sofisticados. Essa abordagem melhora drasticamente a consistência, a auditabilidade e a manutenção da camada semântica.

A base da composabilidade é a MEASURE() função, que permite que uma definição de medida faça referência a qualquer outra medida definida dentro da mesma visão métrica.

Definir medidas com composabilidade

A composibilidade é implementada na secção measures da visualização métrica YAML.

Tipo de medida Description Example
Atômico Uma agregação simples e direta em uma coluna de origem. Estes formam os blocos de construção. SUM(o_totalprice)
Composto Uma expressão que combina matematicamente uma ou mais outras medidas usando a MEASURE() função. MEASURE(Total Revenue) / MEASURE(Order Count)

Exemplo: Valor Médio do Pedido (AOV)

Para calcular o Valor Médio do Pedido (AOV), você precisa de duas medidas: Total Revenue e 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'

Neste exemplo, se a definição de total_revenue mudar (por exemplo, se um filtro para excluir impostos for adicionado), o avg_order_value herdará automaticamente essa alteração, garantindo que a métrica do AOV permaneça consistente com a nova regra de negócios.

Composabilidade com lógica condicional

Você pode usar a capacidade de composição para criar proporções complexas, porcentagens condicionais e taxas de crescimento sem depender de funções de janela para cálculos simples de período a período.

Exemplo: Taxa de Cumprimento

Para calcular a Taxa de Atendimento (Pedidos Atendidos / Total de Pedidos), primeiro defina a medida para pedidos concluídos usando uma 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

Práticas recomendadas para o uso da capacidade de composição

  1. Defina primeiro as medidas atómicas: Estabeleça sempre as suas medidas fundamentais (SUM, COUNT, AVG) antes de definir quaisquer medidas que as referenciam.
  2. Use MEASURE() para consistência: sempre use a função ao referenciar o MEASURE() cálculo de outra medida dentro de um expr. Não tente repetir manualmente a lógica de agregação (por exemplo, evite SUM(a) / COUNT(b) se já existirem medidas para o numerador e o denominador).
  3. Priorize a legibilidade: O expr para uma medida composta deve ser lido como uma fórmula matemática para o KPI. Por exemplo, MEASURE(Gross Profit) / MEASURE(Total Revenue) é mais claro e mais fácil de auditar do que uma única expressão SQL complexa.
  4. Combinar com metadados semânticos: Depois de compor uma proporção, use metadados semânticosfulfillment_rate (como mostrado no exemplo) para formatar automaticamente o resultado como uma porcentagem ou moeda para ferramentas downstream. Consulte Usar metadados semânticos em exibições métricas.