Criar uma vista métrica

O Explorador de Catálogos fornece uma interface visual para criar vistas métricas. Defines campos e medidas de forma interativa, sem escrever uma definição YAML.

Esta página explica como construir uma vista métrica na interface do Explorador de Catálogos. Para um exemplo mais complexo com joins e medidas avançadas, veja Tutorial: construa uma vista métrica com joins e modelação de dados. Para criar uma vista métrica baseada em ativos existentes do Tableau ou Power BI, veja Usar Código Genie para importar um ficheiro Tableau ou Power BI.

Pré-requisitos

Antes de criar uma vista métrica, verifique se tem as seguintes permissões:

  • SELECT privilégios no asset semelhante a uma tabela ou na consulta SQL usada como fonte.
  • CREATE TABLE e USE SCHEMA privilégios no esquema onde se quer criar a vista métrica.
  • USE CATALOG Privilégio no catálogo principal.
  • CAN USE permissão num SQL warehouse ou outro recurso de computação a correr Databricks Runtime 17.3 ou superior.

Um administrador de metastore ou proprietário de catálogo pode conceder todos estes privilégios. Um proprietário ou utilizador de esquema com MANAGE privilégio pode conceder USE SCHEMA e CREATE TABLE privilégios sobre o esquema.

Note

A criação de uma vista métrica é suportada no Databricks Runtime 16.4 e superiores. Esta página utiliza funcionalidades que requerem Databricks Runtime 17.3 ou superior, pelo que 17.3 é o mínimo para o exemplo. Funcionalidades individuais do YAML podem exigir um tempo de execução posterior. Para o tempo mínimo de execução de cada funcionalidade, consulte Disponibilidade de funcionalidades na vista métrica.

Criar uma vista métrica

Crie uma vista métrica no Explorador de Catálogos usando um dos seguintes métodos:

  • Editor de interface: no separador UI , defina campos e medidas de forma interativa, sem escrever código.
  • Editor YAML: clique no <> botão para editar diretamente a definição. Quanto à sintaxe, consulte referência da sintaxe YAML da vista Métrica. Também pode usar uma definição YAML numa instrução SQL para criar uma vista métrica. Para o exemplo completo tanto em YAML como em SQL, veja Definir uma vista métrica em SQL ou YAML.
  • Código Génio: abre o Código Génio a partir do ícone do código génio Sparkle. botão no canto superior direito e descreve o que queres em linguagem natural. Consulte Usar Código Génio.

Os passos seguintes utilizam o separador UI e a tabela samples.tpch.orders, disponíveis em todos os espaços de trabalho, para criar uma vista de métricas de análise de vendas de exemplo. A vista métrica completa corresponde à definição em Definir uma vista métrica em SQL ou YAML. Para saber mais sobre este conjunto de dados, consulte Conjuntos de Dados de Exemplo.

Passo 1: Criar a vista métrica e abrir o editor

  1. Clique no ícone Dados.Catálogo na barra lateral do espaço de trabalho.
  2. Use a barra de pesquisa para encontrar samples.tpch.orders, depois clique no nome da tabela.
  3. Clique em Criar>visualização de métrica. No diálogo Criar vista métrica , introduza um nome, selecione um catálogo e destino de esquema, e depois clique em Criar.

O editor abre no separador UI . O editor adiciona automaticamente todas as colunas de origem ao separador Campos e adiciona uma medida de exemplo COUNT(*) .

A interface de edição da vista métrica no Explorador de Catálogos.

Passo 2: Adicionar uma junção

O exemplo junta-se à customer tabela para que os atributos do cliente estejam disponíveis como campos. Para adicionar a junção, clique no botão de juntar no canto superior direito do editor:

  1. Para a fonte se juntar, selecione samples.tpch.customer e clique em Adicionar.
  2. Inscreva customer como nome de Junção.
  3. Utilize os menus pendentes para definir a condição de junção como source.o_custkey = customer.c_custkey. Para adicionar mais do que uma coluna de junção, clique em + Chave de Junção. Para definir uma condição diferente da igualdade, clique em Expressão e refine a condição.
  4. Em Cardinalidade de Junção, selecione Muitos para um. Para obter orientações sobre como escolher uma cardinalidade, consulte Cardinalidade de junção.
  5. Selecione No máximo uma correspondência em Desempenho da consulta. Cada encomenda corresponde no máximo a um cliente, pelo que esta otimização é segura e está definida at_most_one_match: true na definição YAML.
  6. Clique em Juntar-se.
  7. No diálogo Adicionar campos , clique em Adicionar todas as colunas para importar dinamicamente todas as colunas da tabela de origem. Se quiseres adicionar colunas individuais em vez disso, salta este passo. Os campos do objeto unido aparecem no menu suspenso com os campos da fonte.

As junções combinam a tabela de origem com outras tabelas ou consultas. Para conceitos de modelação de junções, incluindo esquemas estrela e floco de neve, e padrões YAML, veja Trabalhar com junções.

Passo 3: Defina um filtro

A definição completa do YAML mais adiante nesta página inclui um filtro que limita a visualização métrica a encomendas feitas após 1 de janeiro de 1990.

Insira expressões no Builder ou em Custom

Quando defines um filtro, campo ou medida, defines a sua expressão usando uma de duas opções na secção Expressão :

  • Builder: Seleciona a partir de menus contextuais, e o editor compõe a expressão SQL por ti.
  • Personalizado: Introduza diretamente a expressão SQL.

Os passos que se seguem usam o Builder para filtragem simples de colunas, transformações e agregações, e o Custom para expressões que o Builder não consegue compor, como CASE instruções e medidas compostas.

Para definir o filtro:

  1. Clica no ícone de Filtro.Filtre no canto superior direito do editor de vista métrica.
  2. Defina a expressão do filtro:
    • No Construtor, selecione a Colunasource.o_orderdate, o OperadorGreater than e o Valor1990-01-01.
    • Em Custom, escreva a expressão SQL source.o_orderdate > '1990-01-01'.

Um filtro aplica-se a todas as consultas que referenciam a vista métrica. Para conceitos de modelação de filtros e padrões YAML, veja Aplicar filtros.

Passo 4: Adicionar campos

Quando defines um filtro, campo ou medida, defines a sua expressão usando uma de duas opções na secção Expressão :

  • Builder: Seleciona a partir de menus contextuais, e o editor compõe a expressão SQL por ti. As escolhas disponíveis mudam consoante o tipo de coluna e os valores.
  • Personalizado: Introduza diretamente a expressão SQL.

Os passos que se seguem alternam entre as duas opções consoante a complexidade de cada expressão. Utilize Builder para transformações simples de colunas e agregações e passe para Custom para expressões que o Builder não consegue criar, como instruções CASE e medidas compostas.

O exemplo define três campos: duas colunas transformadas provenientes da origem e uma coluna da tabela associada customer. Os campos, também chamados de dimensões, comportam-se como colunas regulares de tabelas. Um campo pode ser uma coluna categórica usada para agrupamento e filtragem, ou uma coluna numérica não agregada que pode agregar no momento da consulta. Para mais informações sobre modelação de campos, veja Campos.

O editor adiciona automaticamente todas as colunas de origem ao separador Campos . Para corresponder ao exemplo, remova as colunas que não precisa para que apenas source.o_orderdate, source.o_orderstatus, e customer.c_mktsegment permaneçam.

Para remover um campo:

  1. Clique no separador Campos.
  2. Clique na caixa de seleção à esquerda do nome do campo para selecionar os campos que quer remover.
  3. Clique em Eliminar.

Para eliminar campos individuais, use o ícone do menu Kebab. à direita do nome do campo.

Quando edita um campo, também pode adicionar metadados:

  • Nome de exibição: uma etiqueta descritiva.
  • Comentário: uma descrição da área.
  • Sinónimos: nomes alternativos que ajudam as ferramentas de IA a descobrir a área. Ver Sinónimos.
  • Format: formatação personalizada de dados que controla como os valores são apresentados. O formato está disponível apenas para colunas numéricas, de data e de data-hora. Consulte especificações de formato.
  • Etiquetas governadas: etiquetas governadas para classificação e governação.

O editor de campos na interface de visualização métrica.

Para definir cada campo, clique no seu nome no separador Campos , constrói a sua expressão e adicione um comentário opcional. Para executar a transformação e ver o resultado, clique em ícone ReproduzirPré-visualização.

  1. Mês da encomenda: Clique em Builder. Depois, selecione source.o_orderdate e aplique uma transformação mensal para produzir DATE_TRUNC('MONTH', source.o_orderdate). Adiciona o comentário Month of order.

  2. Estado da Encomenda: Clique em Personalizado. Depois, adicione o comentário Status of order e introduza a seguinte expressão:

    CASE
      WHEN source.o_orderstatus = 'O' THEN 'Open'
      WHEN source.o_orderstatus = 'P' THEN 'Processing'
      WHEN source.o_orderstatus = 'F' THEN 'Fulfilled'
    END
    
  3. Segmento de mercado: No Builder, selecione a coluna customer.c_mktsegment da tabela associada customer. Adiciona o comentário Customer market segment.

Passo 5: Adicionar medidas

O exemplo define três medidas. As medidas são expressões agregadas que produzem métricas de negócio, como receita total ou contagem de encomendas. O editor adiciona uma COUNT(*) medida automaticamente; podes editá-la ou removê-la.

Quando edita uma medida, pode também adicionar um nome de visualização, Comentário, Sinónimos, Formato e etiquetas Governadas, os mesmos metadados disponíveis para os campos.

Para adicionar cada medida, no separador Medidas, clique +, crie a respetiva expressão e adicione um comentário opcional. Para executar a agregação e ver o resultado, clique em ícone ReproduzirPré-visualização. Quando adicionas uma medida, as sugestões do Genie aparecem no topo do painel do editor de medidas; Clique numa sugestão para criar essa medida.

  1. Número de encomendas: No Builder, selecione a agregação Count para produzir COUNT(1). Adiciona o comentário Total number of orders.
  2. Receita Total: No Builder, selecione source.o_totalprice e a agregação Soma para obter SUM(source.o_totalprice). Adiciona o comentário Sum of all order prices.
  3. Receita Total por Cliente: Em Personalizado, introduza SUM(source.o_totalprice) / COUNT(DISTINCT source.o_custkey). Adiciona o comentário Average revenue per unique customer.

Pré-visualize uma medida na interface da vista métrica.

Para adicionar uma medida de janela para cálculos de séries temporais, como médias móveis ou totais acumulados, clique em + Janela ao editar a medida. Consulte Dimensões da janela.

Passo 6: Guardar a vista métrica

Clique em Salvar. A vista métrica completa corresponde à definição em Definir uma vista métrica em SQL ou YAML.

Defina uma vista métrica em SQL ou YAML

Em vez de criar uma visualização de métricas na interface do utilizador, pode defini-la diretamente em YAML ou em SQL, utilizando a instrução CREATE VIEW com a cláusula WITH METRICS. Segue-se a definição completa da vista métrica de exemplo. É uma visão filtrada de samples.tpch.orders ligada a samples.tpch.customer, com campos para mês de encomenda, estado da encomenda e segmento de mercado de clientes, e medidas para a contagem de encomendas, receita total e receita por cliente.

Note

Estes exemplos usam a fields palavra-chave. Quando constróis uma vista métrica no editor low-code, o YAML que gera usa a palavra-chave equivalente dimensions em vez disso. Ver Campos.

Definição YAML

Para definir a vista métrica diretamente no YAML, use a seguinte definição:

Veja a definição YAML
version: 1.1
comment: 'Orders KPIs for sales analysis'
source: samples.tpch.orders

joins:
  - name: customer
    source: samples.tpch.customer
    'on': source.o_custkey = customer.c_custkey
    rely:
      at_most_one_match: true

filter: source.o_orderdate > '1990-01-01'

fields:
  - name: Order Month
    expr: DATE_TRUNC('MONTH', source.o_orderdate)
    comment: 'Month of order'

  - name: Order Status
    expr: |-
      CASE
        WHEN source.o_orderstatus = 'O' THEN 'Open'
        WHEN source.o_orderstatus = 'P' THEN 'Processing'
        WHEN source.o_orderstatus = 'F' THEN 'Fulfilled'
      END
    comment: 'Status of order'

  - name: Market Segment
    expr: customer.c_mktsegment
    comment: 'Customer market segment'

measures:
  - name: Order Count
    expr: COUNT(1)
    comment: 'Total number of orders'

  - name: Total Revenue
    expr: SUM(source.o_totalprice)
    comment: 'Sum of all order prices'

  - name: Total Revenue per Customer
    expr: SUM(source.o_totalprice) / COUNT(DISTINCT source.o_custkey)
    comment: 'Average revenue per unique customer'

Para detalhes completos da sintaxe YAML, veja Vista métrica Referência da sintaxe YAML.

instrução SQL

Para criar a visualização métrica em SQL, envolva a definição YAML numa instrução CREATE VIEW com a cláusula WITH METRICS e coloque o YAML entre delimitadores $$:

Ver a instrução SQL
CREATE OR REPLACE VIEW orders_metric_view WITH METRICS LANGUAGE YAML AS
$$
  version: 1.1
  comment: "Orders KPIs for sales analysis"
  source: samples.tpch.orders

  joins:
    - name: customer
      source: samples.tpch.customer
      'on': source.o_custkey = customer.c_custkey
      rely:
        at_most_one_match: true

  filter: source.o_orderdate > '1990-01-01'

  fields:
    - name: Order Month
      expr: DATE_TRUNC('MONTH', source.o_orderdate)
      comment: "Month of order"

    - name: Order Status
      expr: |-
        CASE
          WHEN source.o_orderstatus = 'O' THEN 'Open'
          WHEN source.o_orderstatus = 'P' THEN 'Processing'
          WHEN source.o_orderstatus = 'F' THEN 'Fulfilled'
        END
      comment: "Status of order"

    - name: Market Segment
      expr: customer.c_mktsegment
      comment: "Customer market segment"

  measures:
    - name: Order Count
      expr: COUNT(1)
      comment: "Total number of orders"

    - name: Total Revenue
      expr: SUM(source.o_totalprice)
      comment: "Sum of all order prices"

    - name: Total Revenue per Customer
      expr: SUM(source.o_totalprice) / COUNT(DISTINCT source.o_custkey)
      comment: "Average revenue per unique customer"
$$

Campos e medidas de importação em massa com curingas

Aplica-se a: Databricks Runtime 18.2 e superiores com especificação YAML 1.1

Em vez de listar todos os campos, pode usar um carácter universal num expr para importar todas as colunas da origem ou de uma tabela associada. Isto é útil quando se pretende que a vista de métricas mostre todas as colunas de um recurso upstream. Omita name num carácter universal, porque o Azure Databricks obtém cada nome de coluna a partir da origem. Podes misturar wildcards com campos e medidas explicitamente definidos.

A definição seguinte importa todos os campos da fonte, exceto um, adiciona um campo da tabela unida customer e define uma medida explícita:

version: 1.1
source: samples.tpch.orders

joins:
  - name: customer
    source: samples.tpch.customer
    'on': source.o_custkey = customer.c_custkey

fields:
  - expr: source.* EXCEPT (o_comment)
  - name: Market Segment
    expr: customer.c_mktsegment

measures:
  - name: Order Count
    expr: COUNT(1)

Para a sintaxe completa dos carateres universais, incluindo a importação de todas as colunas de uma tabela associada (customer.*), a expansão de estruturas e a resolução de conflitos de nomes, consulte Importar em massa campos e medidas com carateres universais.

Use Código Genie

O Código Génio é um assistente de IA que se abre a partir do ícone do código génio Sparkle. no canto superior direito do editor. Descreve o que queres em linguagem natural, e o Genie Code atualiza a definição da vista métrica para ti. O Genie Code é consciente do contexto: no separador UI atualiza o editor por ti, e no editor YAML insere YAML.

Para adicionar uma única medida a uma vista métrica existente, descreva-a:

Sugestão

Indica ao Código Génio (modo Agente) para realizar isto para ti:

add an average sales per customer measure

Para construir uma vista métrica completa a partir de uma descrição em linguagem natural, descreva-a para Código Genio. O resultado é uma definição semelhante ao exemplo desta página; Os nomes exatos das áreas e os comentários podem variar.

Sugestão

Indica ao Código Génio (modo Agente) para realizar isto para ti:

Create a metric view on samples.tpch.orders joined to samples.tpch.customer on o_custkey = c_custkey. Add a field for order month by truncating the order date to the month, a field for order status that maps 'O' to Open, 'P' to Processing, and 'F' to Fulfilled, and a field for the customer market segment. Add measures for the total number of orders, the total revenue as the sum of order price, and the total revenue per unique customer. Filter to orders placed after January 1, 1990.

Também pode criar uma vista métrica importando um ficheiro Tableau ou Power BI. Veja Usar Código Genie para importar um ficheiro Tableau ou Power BI.

Recursos adicionais

Depois de criar uma vista métrica, utilize os seguintes recursos para consultar, modelar e gerir o seu trabalho.