Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
As vistas métricas criam uma camada semântica para os seus dados, transformando tabelas e vistas em métricas de negócio padronizadas. Eles definem o que medir, como agregar e como segmentar. As vistas métricas garantem que todos os utilizadores da organização reportem o mesmo valor para o mesmo Indicador-Chave de Desempenho (KPI), eliminando relatórios inconsistentes e permitindo análises flexíveis em qualquer dimensão.
Para um exemplo completo com joins, dimensões, medidas e metadados do agente, veja Tutorial: Construa uma vista métrica completa com joins.
Componentes centrais
Uma vista métrica consiste nos seguintes elementos:
| Componente | Descrição | Exemplo |
|---|---|---|
| Source | A tabela base, vista ou consulta SQL que contém os dados. | samples.tpch.orders |
| Dimensões | Atributos de coluna usados para segmentar ou agrupar métricas. | Categoria de produto, mês do pedido, região do cliente |
| Medidas | Agregações de colunas que produzem métricas. |
COUNT(o_order_id) como Contagem de Encomendas, SUM(o_total_price) como Receita Total |
| Filtros | Aplicavam-se condições aos dados de origem para definir o âmbito. |
|
| Junta-se | Relações entre tabelas, vistas e vistas métricas para enriquecer dados. | Juntar orders tabela com customers tabela em customer_key |
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. Deves ter pelo menos SELECT privilégios sobre qualquer ativo referenciado.
Um ativo semelhante a tabela é qualquer objeto do Unity Catalog que expõe um esquema tabular e suporta SELECT consultas, incluindo tabelas, vistas, vistas materializadas, tabelas de fluxo, tabelas estrangeiras, tabelas de sistema e vistas métricas.
Use um asset semelhante a uma tabela como fonte
Para usar um asset semelhante a uma tabela como fonte, especifique o nome totalmente qualificado. Por exemplo: samples.tpch.orders.
Use uma vista métrica como fonte
Pode usar uma vista métrica existente como fonte para uma nova vista métrica:
version: 1.1
source: views.examples.source_metric_view
dimensions:
- name: Order month
expr: '`Order Month`'
measures:
- name: Latest order month
expr: MAX(`Order month`)
- name: Latest order year
expr: "DATE_TRUNC('year', MEASURE(`Latest order month`))"
Ao usar uma exibição métrica como fonte, as mesmas regras de compatibilidade se aplicam para referenciar dimensões e medidas. Consulte Composabilidade.
Usar uma consulta SQL como fonte
Para usar uma consulta SQL, escreva o texto da consulta diretamente no YAML:
version: 1.1
source: SELECT * FROM samples.tpch.orders o LEFT JOIN samples.tpch.customer c ON o.o_custkey
= c.c_custkey
dimensions:
- name: Order key
expr: o_orderkey
measures:
- name: Order Count
expr: COUNT(o_orderkey)
Observação
Ao usar uma consulta SQL como fonte com uma JOIN cláusula, defina restrições de chave primária e estrangeira nas tabelas subjacentes e use a RELY opção para um desempenho ótimo da consulta. Veja Declarar relações de chave primária e chave estrangeira e Otimização de consultas usando restrições de chave primária.
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 podem referenciar colunas a partir dos dados de origem ou dimensões previamente definidas na vista métrica. Cada dimensão é composta por duas componentes:
-
name: O pseudónimo da coluna -
expr: Uma expressão SQL que faz referência aos dados de origem ou às dimensões previamente definidas na vista métrica
Medidas
As medidas são expressões que produzem resultados sem um nível pré-determinado de agregação. Devem ser expressos utilizando funções agregadas. As medidas podem referenciar campos base nos dados de origem, dimensões ou medidas definidas anteriormente. Cada medida consiste nas seguintes componentes:
-
name: O pseudónimo da medida -
expr: Uma expressão SQL agregada que pode incluir funções agregadas SQL
O exemplo seguinte demonstra padrões comuns de medição para analisar dados de encomendas e receitas. Estes exemplos utilizam a tabela de encomendas TPC-H, que contém dados de transações de vendas, incluindo preços de encomenda (o_totalprice), identificadores de clientes (o_custkey), chaves de encomenda (o_orderkey), datas de encomenda (o_orderdate) e níveis de prioridade (o_orderpriority):
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.
Aplicar filtros
Um filtro na definição YAML aplica-se a todas as consultas que referenciam a vista métrica. O exemplo seguinte mostra como escrever filtros como expressões booleanas:
# Single condition
filter: o_orderdate > '2024-01-01'
# Multiple conditions
filter: o_orderdate > '2024-01-01' AND o_orderstatus = 'F'
# IN clause
filter: o_orderstatus IN ('F', 'P') AND o_orderdate >= '2024-01-01'
Trabalho com junções
Junções em vistas métricas suportam tanto junções diretas de uma tabela de factos para tabelas de dimensões (esquema estrela) como junções multi-etapas através de tabelas de dimensões normalizadas (esquemas floco de neve).
Observação
As tabelas unidas não podem incluir MAP colunas de texto. Veja como desempacotar valores de colunas do tipo MAP, em Explodir elementos aninhados de um mapa ou array.
Esquemas de estrela modelo
Em um esquema em estrela, o source é a tabela de fatos e se une a uma ou mais tabelas de dimensão usando um LEFT OUTER JOINarquivo . As vistas métricas juntam as tabelas de factos e dimensões necessárias para a consulta específica, com base nas dimensões e medidas selecionadas.
Especifique colunas de junção usando uma on cláusula (expressão booleana) ou uma using cláusula (nomes partilhados das colunas). A união deve seguir uma relação muitos-para-um. Em casos de muitos-para-muitos, a primeira linha correspondente da tabela de dimensão unida é selecionada.
O exemplo seguinte liga orders (tabela de factos) a customer (tabela de dimensões) e expõe os atributos do cliente como dimensões:
version: 1.1
source: samples.tpch.orders
joins:
- name: customer
source: samples.tpch.customer
on: source.o_custkey = customer.c_custkey
dimensions:
- name: Customer name
expr: customer.c_name
- name: Customer market segment
expr: customer.c_mktsegment
measures:
- name: Total revenue
expr: SUM(o_totalprice)
- name: Order count
expr: COUNT(1)
Use a using cláusula em vez de on quando ambas as tabelas partilham o nome da coluna:
joins:
- name: customer
source: samples.tpch.customer
using:
- customer_key
Observação
Numa on cláusula, source refere-se à tabela fonte da vista métrica e a junção name refere-se às colunas da tabela unida. Por exemplo, source.o_custkey = customer.c_custkey une a coluna da o_custkey tabela fonte à customer coluna da c_custkey tabela. Se não for fornecido prefixo, a referência passa por defeito para a tabela unida.
Esquemas floco de neve modelo
Um esquema de floco de neve estende um esquema de estrela normalizando tabelas de dimensões e conectando-as a subdimensões. Isto cria uma estrutura de junção multinível.
Para definir um esquema floco de neve:
- Criar uma vista métrica
- Adicionar junções de nível primário (esquema estrela)
- Juntar com outras tabelas de dimensões
- Expõe dimensões aninhadas adicionando dimensões na tua vista
O exemplo seguinte utiliza o conjunto de dados TPC-H para ilustrar um esquema floco de neve que mostra a hierarquia geográfica das ordens. O exemplo junta a tabela de encomendas aos clientes, depois às suas nações (países) e, finalmente, às suas regiões (continentes). Esta estrutura de junção multinível permite análises como "mostrar receitas por região" ou "comparar a distribuição de clientes entre nações". O conjunto de dados TPC-H está disponível no catálogo samples no seu espaço de trabalho Azure Databricks.
source: samples.tpch.orders
joins:
- name: customer
source: samples.tpch.customer
on: source.o_custkey = customer.c_custkey
joins:
- name: nation
source: samples.tpch.nation
on: customer.c_nationkey = nation.n_nationkey
joins:
- name: region
source: samples.tpch.region
on: nation.n_regionkey = region.r_regionkey
dimensions:
- name: clerk
expr: o_clerk
- name: customer
expr: customer
comment: returns the full customer row as a struct
- name: customer_name
expr: customer.c_name
- name: nation
expr: customer.nation
- name: nation_name
expr: customer.nation.n_name
Sintaxe e formatação YAML
As definições de visualização métrica seguem a sintaxe de notação YAML padrão. Consulte a referência da sintaxe YAML vista métrica para a sintaxe e formatação necessárias.
Melhores práticas
Use as seguintes diretrizes ao modelar exibições de métricas:
-
Modele medidas atómicas: Comece por definir primeiro as medidas mais simples (por exemplo,
SUM(revenue),COUNT(DISTINCT customer_id)). Construa medidas complexas usando a composabilidade. -
Uniformizar os valores das dimensões: Use transformações (como instruções
CASE) para converter códigos de base de dados em nomes claros de negócios (por exemplo, converter o estado da ordem 'O' em 'Aberto' e 'F' em 'Cumprido'). - Defina o âmbito com filtros: Se uma vista métrica deve incluir apenas ordens concluídas, defina esse filtro na vista métrica para que os utilizadores não possam incluir acidentalmente dados incompletos.
-
Use nomes claros: Os nomes das métricas devem ser reconhecíveis pelos utilizadores empresariais (por exemplo, "Customer Lifetime Value" em vez de
cltv_agg_measure). - Dimensões temporais separadas: Incluam dimensões temporais granulares (como "Data da Encomenda") e dimensões temporárias truncadas (como "Mês da Encomenda" ou "Semana da Encomenda") para suportar tanto a análise detalhada como a de tendências.