Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Esta página descreve como modelar exibições métricas e práticas recomendadas para trabalhar com elas.
As visualizações métricas ajudam a criar uma camada semântica para seus dados, transformando tabelas brutas em métricas padronizadas e amigáveis aos negócios. Eles definem o que medir, como agregar e como segmentá-lo, garantindo que todos os usuários da organização relatem o mesmo número para o mesmo Indicador Chave de Desempenho (KPI). O objetivo é criar uma única fonte de verdade para as métricas de negócios.
Ao modelar seus dados como visualizações métricas, você abstrai SQL complexo, estruturas de tabela e problemas de qualidade de dados, permitindo que os analistas se concentrem puramente na análise.
Componentes centrais
A modelagem de uma exibição métrica envolve a definição dos seguintes elementos sobre os dados de origem:
| Componente | Description | Example |
|---|---|---|
| Source | A tabela base, exibição ou consulta SQL que contém os dados transacionais brutos. | samples.tpch.orders |
| Dimensões | Os atributos de coluna usados para segmentar ou agrupar as métricas | Categoria de produto, mês do pedido, região do cliente |
| Medidas | As agregações de coluna que produzem as métricas. Estas medidas são as que habitualmente são comunicadas. |
COUNT(o_order_id) como Contagem de Pedidos, SUM(o_total_price) como Receita Total. |
| Filtros | Condições persistentes aplicadas aos dados de origem para definir o escopo. |
|
Definir uma fonte
Você pode usar um ativo semelhante a uma tabela ou uma consulta SQL como a fonte para sua exibição métrica. Para usar um ativo semelhante a uma tabela, você deve ter pelo menos SELECT privilégios no ativo.
Usar uma tabela como fonte
Para usar uma tabela como fonte, inclua o nome da tabela totalmente qualificada, como no exemplo a seguir.
source: samples.tpch.orders
Usar uma consulta SQL como fonte
Para usar uma consulta SQL, escreva o texto da consulta diretamente no YAML.
source: SELECT * FROM samples.tpch.orders o
LEFT JOIN samples.tpch.customer c
ON o.o_custkey = c.c_custkey
Observação
Ao utilizar uma consulta SQL como fonte com uma cláusula JOIN, a Databricks recomenda definir restrições de chave primária e estrangeira nas tabelas subjacentes e usar a opção RELY para um desempenho ótimo no momento da consulta, se aplicável. Para obter mais informações sobre como usar restrições de chave primária e estrangeira, consulte Declarar relações de chave primária e chave estrangeira e Otimização de consulta usando restrições de chave primária.
Usar vista de métricas como fonte
Você também pode usar uma exibição de métrica existente como a origem para uma nova exibição de métrica:
version: 1.1
source: views.examples.source_metric_view
dimensions:
# Dimension referencing dimension from source_metric_view
- name: Order date
expr: order_date_dim
measures:
# Measure referencing dimension from source_metric_view
- name: Latest order month
expr: MAX(order_date_dim_month)
# Measure referencing measure from source_metric_view
- name: Latest order year
expr: DATE_TRUNC('year', MEASURE(max_order_date_measure))
Ao usar uma exibição métrica como fonte, as mesmas regras de compatibilidade se aplicam para referenciar dimensões e medidas. Consulte Composabilidade.
Dimensões
As dimensões são colunas usadas nas cláusulas SELECT, WHERE e GROUP BY no momento da consulta. Cada expressão deve retornar um valor escalar. As dimensões são definidas como uma matriz. Cada dimensão é composta por duas componentes:
name: O alias da coluna.expr: Uma expressão SQL nos dados de origem que define a dimensão ou uma dimensão definida anteriormente na exibição métrica.
Observação
A partir da versão 1.1, você também pode definir metadados semânticos (nome para exibição, formato e sinônimos) para cada dimensão. Consulte Usar metadados semânticos em exibições métricas para obter detalhes.
Medidas
Medidas são colunas definidas como uma matriz de expressões que produzem resultados sem um nível predeterminado de agregação. Devem ser expressos utilizando funções agregadas. Para fazer referência a uma medida em uma consulta, você deve usar a MEASURE função. As medidas podem fazer referência a campos de base nos dados de origem ou em dimensões definidas anteriormente. Cada medida consiste nas seguintes componentes:
name: O alias da medida.expr: Uma expressão SQL agregada que pode incluir funções de agregação SQL.
O exemplo a seguir demonstra padrões de medida comuns:
measures:
# Simple count measure
- name: Order Count
expr: COUNT(1)
# Sum aggregation measure
- name: Total Revenue
expr: SUM(o_totalprice)
# Distinct count measure
- name: Unique Customers
expr: COUNT(DISTINCT o_custkey)
# Calculated measure combining multiple aggregations
- name: Average Order Value
expr: SUM(o_totalprice) / COUNT(DISTINCT o_orderkey)
# Filtered measure with WHERE condition
- name: High Priority Order Revenue
expr: SUM(o_totalprice) FILTER (WHERE o_orderpriority = '1-URGENT')
# Measure using a dimension
- name: Average Revenue per Month
expr: SUM(o_totalprice) / COUNT(DISTINCT DATE_TRUNC('MONTH', o_orderdate))
Consulte Agregar funções para obter uma lista de funções agregadas.
Consulte a função agregada measure.
Observação
A partir da versão 1.1, você também pode definir metadados semânticos (nome para exibição, formato e sinônimos) para cada medida. Consulte Usar metadados semânticos em exibições métricas para obter detalhes.
Aplicar filtros
Um filtro na definição YAML de uma exibição métrica se aplica a todas as consultas que fazem referência a ela. Ele deve ser escrito como uma expressão booleana SQL e é equivalente ao uso de uma WHERE cláusula em uma consulta SQL.
O exemplo a seguir demonstra padrões de filtro comuns:
# Single condition filter
filter: o_orderdate > '2024-01-01'
# Multiple conditions with AND
filter: o_orderdate > '2024-01-01' AND o_orderstatus = 'F'
# Multiple conditions with OR
filter: o_orderpriority = '1-URGENT' OR o_orderpriority = '2-HIGH'
# Complex filter with IN clause
filter: o_orderstatus IN ('F', 'P') AND o_orderdate >= '2024-01-01'
# Filter with NOT
filter: o_orderstatus != 'O' AND o_totalprice > 1000.00
# Filter with LIKE pattern matching
filter: o_comment LIKE '%express%' AND o_orderdate > '2024-01-01'
Você também pode adicionar filtros ao consultar ou consumir exibições métricas.
Recursos avançados de modelagem
A modelagem de visualização métrica suporta técnicas avançadas para criar métricas sofisticadas e altamente reutilizáveis.
Joins
As junções permitem que você enriqueça sua exibição métrica com atributos descritivos de tabelas relacionadas. Você pode usar ligações para modelar relações da tabela de fatos para tabelas de dimensões (esquema em estrela) e para percorrer das dimensões até às subdimensões, permitindo ligações multi-hop em tabelas de dimensão normalizadas (esquema de floco de neve).
Consulte Usar associações em exibições métricas.
Medidas de janela
Importante
Este recurso é Experimental.
As medidas de janela permitem definir medidas com agregações em janela, cumulativas ou semiaditivas em suas exibições métricas. Esses tipos de medidas permitem cálculos mais complexos, como médias móveis, variações de período a período e totais correntes. Consulte Usar medidas de janela em exibições métricas para obter exemplos que demonstram como usar medidas de janela em exibições métricas.
Capacidade de composição
As visualizações métricas são compostas, permitindo que você crie uma lógica complexa fazendo referência a elementos previamente definidos. Você pode fazer referência a dimensões definidas anteriormente em novas dimensões, referenciar qualquer dimensão ou medida anteriormente definida em novas medidas, e referenciar colunas de junções definidas na visualização de métrica.
Consulte Composição em visualizações métricas.
Metadados semânticos
Os metadados semânticos ajudam as ferramentas de consumo a entender como exibir e tratar medidas e dimensões. Isso inclui propriedades como:
| Metadados semânticos | Example |
|---|---|
| Nomes para exibição |
Total Revenue em vez de sum_o_price. |
| Formato de exibição | Padronize a formatação de moedas, porcentagens e datas. |
| Comments | Explique a definição de negócio da métrica em linguagem natural. |
Quando você define metadados semânticos, eles viajam com a métrica. Por exemplo, quando os analistas usam a Receita Total em um painel, ela é exibida automaticamente como moeda.
Consulte Usar metadados semânticos em exibições métricas.
Sintaxe e formatação YAML
As definições de visualização métrica seguem a sintaxe de notação YAML padrão. Consulte Referência de sintaxe YAML para saber mais sobre a sintaxe e a formatação necessárias para definir uma exibição métrica. Consulte a documentação da Especificação YAML 1.2.2 para saber mais sobre as especificações YAML.
Medidas da janela
As medidas de janela calculam um valor sobre uma janela definida ou um intervalo de linhas associado com a linha atual. Você pode usar medidas de janela para séries temporais e análise comparativa, permitindo definir métricas como:
- Receita total móvel de 30 dias: soma da receita nos últimos 30 dias
- Receita acumulada (YTD): Soma acumulada desde o início do ano
- Comparação do período anterior: Receita do mês anterior
Consulte Utilizar medidas de janela em visualizações métricas.
Práticas recomendadas para modelagem de exibições de métricas
Use as seguintes diretrizes ao modelar exibições de métricas:
-
Modelo de medidas atómicas: Comece por definir primeiro as medidas mais simples e não calculadas (por exemplo,
SUM(revenue)COUNT(DISTINCT customer_id), ). Construa medidas complexas (como AOV) usando a capacidade de composição. -
Padronizar valores de dimensão: use transformações (como
CASEinstruções ou expressões) para converter códigos de banco de dados enigmáticos em nomes comerciais claros (por exemplo, converta o status do pedido 'O' em 'Aberto' e 'F' em 'Cumprido'). - Definir escopo com filtros: Seja intencional sobre filtros persistentes. Se uma exibição de métrica só deve incluir ordens concluídas, defina esse filtro na exibição de métrica para que os usuários não possam incluir acidentalmente dados incompletos.
-
Use nomenclaturas compatíveis com os negócios: os nomes das métricas devem ser imediatamente reconhecíveis pelos usuários corporativos (por exemplo, Valor do Tempo de Vida do Cliente vs.
cltv_agg_measure). - Dimensões de tempo separadas: sempre inclua dimensões de tempo granulares (como Data do pedido) e dimensões de tempo truncadas (como Mês do pedido ou Semana do pedido) para dar suporte à análise de nível de detalhe e tendência.