Pular para o conteúdo principal

Métricas do modelo view dados

Esta página descreve como modelar a visualização de métricas e as melhores práticas para trabalhar com elas.

A visualização de métricas ajuda a criar uma camada semântica para seus dados, transformando tabelas brutas em métricas padronizadas e favoráveis aos negócios. Eles definem o que medir, como agregar e como segmentar, 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 métricas de negócios.

Ao modelar seus dados como uma visão de métricas, você abstrai SQL complexo, estruturas de tabelas e problemas de qualidade de dados, permitindo que o analista se concentre apenas na análise.

Componentes principais

Modelar uma view de métricas envolve definir os seguintes elementos sobre seus dados de origem:

Componente

Descrição

Exemplo

Origem

A tabela base, view ou consulta SQL contendo os dados transacionais brutos.

samples.tpch.orders

Dimensões

Os atributos da 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 colunas que produzem as métricas. Essas medidas são o que você normalmente 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.

  • status = 'completed'
  • order_date > '2024-01-01'

Definir uma fonte

Você pode usar um ativo semelhante a uma tabela ou uma consulta SQL como fonte para sua view de métricas. Para usar um ativo semelhante a uma tabela, você deve ter pelo menos SELECT privilégios no ativo.

Use uma tabela como fonte

Para usar uma tabela como fonte, inclua o nome totalmente qualificado da tabela, como no exemplo a seguir.

YAML
source: samples.tpch.orders

Use uma consulta SQL como fonte

Para usar uma consulta SQL, escreva o texto da consulta diretamente no YAML.

YAML
source: SELECT * FROM samples.tpch.orders o
LEFT JOIN samples.tpch.customer c
ON o.o_custkey = c.c_custkey
nota

Ao usar uma consulta SQL como fonte com uma cláusula JOIN , Databricks recomenda definir restrições key primária e estrangeira em tabelas subjacentes e usar a opção RELY para desempenho ideal no momento da consulta, se aplicável. Para obter mais informações sobre o uso de restrições key primária e estrangeira, consulte Declarar relacionamentos key primária e key estrangeira e Otimização de consulta usando restrições key primária.

Use view de métricas como fonte

Você também pode usar uma view de métricas existente como fonte para uma nova view de métricas:

YAML
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 view de métricas como fonte, as mesmas regras de composição se aplicam para referenciar dimensões e medidas. Veja Componibilidade.

Dimensões

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 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 previamente definida na view de métricas.

nota

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 na exibição de métricas para obter detalhes.

Medidas

Medidas são colunas definidas como uma matriz de expressões que produzem resultados sem um nível pré-determinado de agregação. Elas devem ser expressas usando funções de agregação. Para referenciar uma medida em uma consulta, você deve usar a função MEASURE . As medidas podem fazer referência a 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 SQL.

O exemplo a seguir demonstra padrões de medidas comuns:

YAML
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.

Veja measure função agregada.

nota

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 na exibição de métricas para obter detalhes.

Aplicar filtros

Um filtro na definição YAML de uma view de métricas se aplica a todas as consultas que o referenciam. Ele deve ser escrito 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:

YAML
# 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 a exibição de métricas.

Capacidades avançadas de modelagem

A modelagem de view de métricas oferece suporte a técnicas avançadas para criar métricas sofisticadas e altamente reutilizáveis.

juntar

join permite que você enriqueça sua view de métricas com atributos descritivos de tabelas relacionadas. Você pode usar a junção para modelar relacionamentos da tabela de fatos para tabelas de dimensões (esquema em estrela) e para percorrer de dimensões para subdimensões, permitindo a junção de vários saltos entre tabelas de dimensões normalizadas (esquema em floco de neve).

Consulte Usar junção na visualização de métricas.

Medidas da janela

info

Experimental

Este recurso é experimental.

As medidas de janela permitem que você defina medidas com agregações em janela, cumulativas ou semiaditivas na sua visualização de métricas. Esses tipos de medidas permitem cálculos mais complexos, como médias móveis, alterações de período a período e totais acumulados. Consulte Usar medidas de janela na exibição de métricas para obter exemplos que demonstram como usar medidas de janela na exibição de métricas.

Composibilidade

As visualizações métricas são componíveis, permitindo que você crie lógica complexa referenciando elementos previamente 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 view de métricas.

Veja Componibilidade na visualização de métricas.

Metadados semânticos

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

Exemplo

Nomes de exibição

Total Revenue em vez de sum_o_price.

Formato de exibição

Padronize a formatação de moeda, porcentagens e datas.

Comentários

Explique a definição de negócio da métrica em linguagem natural.

Quando você define metadados semânticos, eles viajam com as métricas. Por exemplo, quando analistas usam a Receita Total em um painel, ela é exibida automaticamente como moeda.

Consulte Usar metadados semânticos na exibição de métricas.

Sintaxe e formatação YAML

As definições view de métricas 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 view de métricas. 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 relacionadas à linha atual. Você pode usar medidas de janela para séries temporais e análises comparativas, permitindo definir métricas como:

  • Receita total contínua de 30 dias : soma da receita dos últimos 30 dias
  • Receita acumulada no ano (YTD) : soma acumulada desde o início do ano
  • Comparação do período anterior : receita do mês anterior

Consulte Usar medidas de janela na exibição de métricas.

Melhores práticas para modelagem de visualização de métricas

Use as seguintes diretrizes ao modelar a exibição de métricas:

  • Medidas atômicas do modelo : comece definindo primeiro as medidas mais simples e não calculadas (por exemplo, SUM(revenue), COUNT(DISTINCT customer_id)). Crie medidas complexas (como AOV) usando componibilidade.
  • Padronize valores de dimensão : use transformações (como instruções ou expressões CASE ) para converter códigos de banco de dados enigmáticos em nomes comerciais claros (por exemplo, converta o status do pedido 'O' para 'Aberto' e 'F' para 'Atendido').
  • Defina o escopo com filtros : seja intencional sobre filtros persistentes. Se uma view de métricas deve incluir apenas pedidos concluídos, defina esse filtro na view de métricas para que os usuários não possam incluir acidentalmente dados incompletos.
  • Use nomenclatura amigável aos negócios : os nomes de métricas devem ser imediatamente reconhecíveis pelos usuários empresariais (por exemplo, Cliente ou valor da duração da vida 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 detalhes e tendências.