Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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
-
Defina as medidas atômicas primeiro: Sempre estabeleça suas medidas fundamentais (
SUM,COUNT,AVG) antes de definir as medidas que as referenciam. -
Use
MEASURE()para consistência: sempre use a função ao referenciar oMEASURE()cálculo de outra medida em umexpr. Não tente repetir manualmente a lógica de agregação (por exemplo, eviteSUM(a) / COUNT(b)se medidas para o numerador e o denominador já existirem). -
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. -
Combine com metadados semânticos: Depois de compor uma taxa, use metadados semânticos (conforme mostrado no
fulfillment_rateexemplo) para formatar automaticamente o resultado como uma porcentagem ou moeda para ferramentas downstream. Consulte Usar metadados semânticos em exibições de métrica.