Compartilhar via


Usar o SQL para criar e gerenciar exibições de métrica

Esta página explica como criar e gerenciar exibições de métrica usando o SQL.

Pré-requisitos

  • Você deve ter SELECT privilégios nos objetos de dados de origem.
  • Você deve ter o CREATE TABLE privilégio e o USE SCHEMA privilégio no esquema em que deseja criar a exibição de métrica.
  • Você também deve ter os USE CATALOG privilégios no catálogo pai do esquema.
  • pode usar permissões em um SQL Warehouse ou outro recurso de computação executando o Databricks Runtime 17.2 ou uma versão superior.

Um administrador metastore ou o proprietário do catálogo podem conceder todos esses privilégios. Um proprietário de esquema ou um usuário com o privilégio MANAGE pode conceder os privilégios USE SCHEMA e CREATE TABLE no esquema para você.

Criar uma exibição de métricas

Use CREATE VIEW com a WITH METRICS cláusula para criar uma exibição de métrica. A exibição de métrica deve ser definida com uma especificação YAML válida no corpo. Os dados de origem de uma exibição de métrica podem ser uma tabela, exibição ou consulta SQL.

Os dados de origem para a visão de métrica a seguir são a tabela samples.tpch.orders disponível no catálogo de amostras para a maioria das implantações no Azure Databricks. A seguinte DDL SQL cria uma visualização de métrica nomeada orders_metric_view no catálogo e esquema atuais. Para especificar um catálogo e um esquema diferentes, use o namespace de três níveis do Catálogo do Unity.

Você pode adicionar comentários em nível de tabela e de coluna à definição de exibição de métrica.

CREATE OR REPLACE VIEW orders_metric_view
WITH METRICS
LANGUAGE YAML
AS $$
  version: 1.1
  comment: "Orders KPIs for sales and financial analysis"
  source: samples.tpch.orders
  filter: o_orderdate > '1990-01-01'
  dimensions:
    - name: Order Month
      expr: DATE_TRUNC('MONTH', o_orderdate)
    - name: Order Status
      expr: CASE
        WHEN o_orderstatus = 'O' then 'Open'
        WHEN o_orderstatus = 'P' then 'Processing'
        WHEN o_orderstatus = 'F' then 'Fulfilled'
        END
    - name: Order Priority
      expr: SPLIT(o_orderpriority, '-')[1]
  measures:
    - name: Order Count
      expr: COUNT(1)
    - name: Total Revenue
      expr: SUM(o_totalprice)
    - name: Total Revenue per Customer
      expr: SUM(o_totalprice) / COUNT(DISTINCT o_custkey)
    - name: Total Revenue for Open Orders
      expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus='O')
$$

Alterar uma exibição de métrica

Para fazer alterações na definição associada a uma exibição de métrica, use ALTER VIEW. O exemplo a seguir adiciona comentários a dimensões e medidas na visão de métrica orders_metric_view.

ALTER VIEW orders_metric_view
AS $$
  version: 1.1
  comment: "Orders KPIs for sales and financial analysis"
  source: samples.tpch.orders
  filter: o_orderdate > '1990-01-01'
  dimensions:
    - name: Order Month
      expr: DATE_TRUNC('MONTH', o_orderdate)
      comment: "Month of order"
    - name: Order Status
      expr: CASE
        WHEN o_orderstatus = 'O' then 'Open'
        WHEN o_orderstatus = 'P' then 'Processing'
        WHEN o_orderstatus = 'F' then 'Fulfilled'
        END
      comment: "Status of order: open, processing, or fulfilled"
    - name: Order Priority
      expr: SPLIT(o_orderpriority, '-')[1]
      comment: "Numeric priority 1 through 5; 1 is highest"
  measures:
    - name: Order Count
      expr: COUNT(1)
    - name: Total Revenue
      expr: SUM(o_totalprice)
      comment: "Sum of total price"
    - name: Total Revenue per Customer
      expr: SUM(o_totalprice) / COUNT(DISTINCT o_custkey)
      comment: "Sum of total price by customer"
    - name: Total Revenue for Open Orders
      expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus='O')
      comment: "Potential revenue from open orders"
$$

Conceder privilégios em uma exibição de métrica

Uma visualização de métrica é um objeto de segurança do Unity Catalog e segue o mesmo modelo de permissão que outras visualizações. Os privilégios são hierárquicos, portanto, privilégios em um metastore, catálogo ou esquema se aplicam aos objetos dentro deles. O exemplo a seguir concede privilégios mínimos necessários para os usuários do data_consumers grupo consultarem uma exibição de métrica.

GRANT SELECT ON orders_metric_view to `data-consumers`;

Para saber mais sobre privilégios no Catálogo do Unity, consulte Gerenciar privilégios no Catálogo do Unity. Para saber mais sobre como criar e gerenciar grupos, consulte Grupos.

Obter definição de exibição de métrica

Use DESCRIBE TABLE EXTENDED com o parâmetro opcional AS JSON para exibir a definição de uma exibição de métrica. O AS JSON parâmetro é opcional. Omitir fornece uma saída melhor para os leitores humanos, enquanto incluí-la é melhor para os consumidores de máquinas. O exemplo a seguir retorna uma cadeia de caracteres JSON que descreve a exibição de métrica e seus componentes.

DESCRIBE TABLE EXTENDED orders_metric_view AS JSON

Remover uma exibição de métrica

Use a sintaxe DROP VIEW para excluir uma exibição de métrica.

DROP VIEW orders_metric_view;

Próximas etapas

Agora que você criou uma exibição de métrica usando o SQL, explore estes tópicos relacionados:

Consultar e consumir visões de métricas

Recursos avançados de exibição de métrica

Métodos alternativos de criação

Governança e segurança