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 descreve como modelar exibições de métrica e práticas recomendadas para trabalhar com elas.
As exibições de métrica 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 agregá-lo e como segmentá-lo, garantindo que todos os usuários da organização reportem o mesmo número para o mesmo KPI (Indicador de Desempenho chave). O objetivo é criar uma única fonte de verdade para as métricas de negócios.
Ao modelar seus dados como exibições de métrica, você abstrai problemas complexos de SQL, estruturas de tabela e qualidade de dados, permitindo que os analistas se concentrem puramente na análise.
Componentes principais
A modelagem de uma exibição de métrica envolve a definição dos seguintes elementos nos dados de origem:
| Componente | Description | Example |
|---|---|---|
| Fonte | A tabela base, a exibição ou a 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 do produto, mês do pedido, região do cliente |
| Medidas | As agregações de coluna que produzem as métricas. Essas medidas são o que você geralmente relata. |
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 origem
Você pode usar um ativo semelhante a uma tabela ou uma consulta SQL como a origem para sua exibição de 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 origem, inclua o nome da tabela totalmente qualificado, como no exemplo a seguir.
source: samples.tpch.orders
Usar uma consulta SQL como origem
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 usar uma consulta SQL como fonte com a cláusula JOIN, o Databricks recomenda definir restrições de chave primária e estrangeira em tabelas subjacentes e usar a opção RELY para obter desempenho ideal durante a execução 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 a exibição de métrica 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 visualização de métrica como origem, as mesmas regras de composição se aplicam a dimensões e medidas referenciadas. Consulte Modularidade.
Dimensões
As dimensões são colunas usadas em SELECT, WHEREe GROUP BY cláusulas no momento da consulta. Cada expressão deve retornar um valor escalar. As dimensões são definidas como uma matriz. Cada dimensão consiste em dois 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 de métrica.
Observação
A partir da versão 1.1, você também pode definir metadados semânticos (nome de exibição, formato e sinônimos) para cada dimensão. Consulte Usar metadados semânticos em exibições de métrica para obter detalhes.
Medidas
As medidas são colunas definidas como uma matriz de expressões que produzem resultados sem um nível de agregação pré-determinado. Eles devem ser expressos usando funções de agregação. Para fazer referência a uma medida em uma consulta, você deve usar a MEASURE função. As medidas podem referenciar campos base nos dados de origem ou dimensões definidas anteriormente. Cada medida consiste nos seguintes componentes:
name: O alias da medida.expr: uma expressão SQL agregada que pode incluir funções de agregação do 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 funções de agregação para obter uma lista de funções de agregação.
Consulte measure a função de agregação.
Observação
A partir da versão 1.1, você também pode definir metadados semânticos (nome de exibição, formato e sinônimos) para cada medida. Consulte Usar metadados semânticos em exibições de métrica para obter detalhes.
Aplicar filtros
Um filtro na definição YAML de uma exibição de métrica se aplica a todas as consultas que fazem referência a ela. Ela deve ser escrita como uma expressão booleana SQL e é equivalente ao uso de uma cláusula WHERE 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 de métrica.
Funcionalidades avançadas de modelagem
A modelagem de exibição de métrica dá suporte a técnicas avançadas para criar métricas sofisticadas e altamente reutilizáveis.
Joins
As junções permitem enriquecer sua exibição de métrica com atributos descritivos de tabelas relacionadas. Você pode usar junções para modelar relações da tabela de fatos para tabelas de dimensão (esquema de estrela) e para percorrer de dimensões a subdimensões, permitindo junções de vários saltos entre tabelas de dimensão normalizadas (esquema floco de neve).
Consulte Usar junções em exibições de métrica.
Dimensões da janela
Importante
Esse recurso é experimental.
As medidas de janelas permitem definir medidas com agregações por janela, cumulativas ou semi-aditivas nas suas visualizações de métricas. Esses tipos de medidas permitem cálculos mais complexos, como médias móveis, alterações de período ao longo do período e totais em execução. Consulte Usar medidas de janela em exibições de métrica para obter exemplos que demonstram como usar medidas de janela em exibições de métrica.
Modularidade
As exibições de métrica são componíveis, permitindo que você crie todo um raciocínio complexo a partir da referência a elementos anteriormente definidos. Você pode referenciar dimensões definidas anteriormente em novas dimensões, referenciar qualquer dimensão ou medidas definidas anteriormente em novas medidas e referenciar colunas de junções definidas na exibição de métrica.
Confira composabilidade em exibições de métrica.
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 de exibição |
Total Revenue em vez de sum_o_price. |
| Formato de exibição | Padronizar a formatação para moeda, percentuais e datas. |
| Comments | Explicar a definição de negócios da métrica em linguagem natural. |
Quando você define metadados semânticos, ele viaja 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 de métrica.
Sintaxe yaml e formatação
As definições de exibição de métrica seguem a sintaxe de notação YAML padrão. Consulte a referência de sintaxe YAML para saber mais sobre a sintaxe e a formatação necessárias para definir uma exibição de métrica. Consulte a documentação da Especificação 1.2.2 do YAML para saber mais sobre as especificações do YAML.
Medidas de janela
Medidas de janela calculam um valor em uma janela definida ou em um intervalo de linhas relacionadas à linha atual. Você pode usar medidas de janela para série temporal e análise comparativa, permitindo que você defina métricas como:
- Total de Receita Acumulada de 30 Dias: Soma da receita nos últimos 30 dias
- Receita acumulada até a data no ano (YTD): soma cumulativa desde o início do ano
- Comparação de Período Anterior: Receita do mês anterior
Consulte Medidas da janela em exibições de métrica.
Práticas recomendadas para modelagem de exibições de métrica
Use as seguintes diretrizes ao modelar exibições de métrica:
-
Modelar medidas atômicas: comece definindo as medidas mais simples e não calculadas primeiro (por exemplo,
SUM(revenue), ).COUNT(DISTINCT customer_id)Crie medidas complexas (como o AOV - Valor Médio do Pedido) usando a componibilidade. -
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 de negócios claros (por exemplo, converter o status da ordem 'O' em 'Open' e 'F' em 'Fulfilled'). - Definir escopo com filtros: Esteja atento aos filtros duradouros. Se uma exibição de métrica só deve incluir pedidos concluídos, defina esse filtro na exibição de métrica para que os usuários não possam incluir dados incompletos acidentalmente.
-
Use a nomenclatura amigável aos negócios: os nomes de métrica devem ser imediatamente reconhecíveis para usuários empresariais (por exemplo, Valor de Tempo de Vida do Cliente versus
cltv_agg_measure). - Dimensões de tempo separadas: inclua sempre dimensões de tempo granulares (como Data da Ordem) e dimensões de tempo truncadas (como Mês da Ordem ou Semana da Ordem) para dar suporte à análise de nível de detalhes e tendência.