Compartilhar via


Composição em exibições de métrica

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

Visão geral

As exibições de métrica são componíveis, o que significa que você pode definir uma lógica reutilizável e em camadas. 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 capacidade de composição, você pode:

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

A composabilidade ajuda você a evitar a duplicação, agilizar definições de métrica e dar suporte a análises mais complexas sem a necessidade de SQL puro a cada vez.

Composabilidade métrica

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

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

Definir medidas com composabilidade

A composição é implementada na measures seção do YAML de exibição de métrica.

Tipo de medida Description Example
Atomic Uma agregação simples e direta em uma coluna de origem. Eles 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 da Ordem (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 o imposto for adicionado), o avg_order_value herda automaticamente essa mudança, garantindo que a métrica AOV permaneça consistente com a nova regra de negócios.

Composibilidade com lógica condicional

Você pode usar a capacidade de criar proporções complexas, percentuais 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 atendimento

Para calcular a taxa de cumprimento (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 usar composabilidade

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