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.
Neste tutorial, você criará uma exibição de métrica de análise de vendas no conjunto de dados TPC-H. Ao final, você terá uma visão de métricas que:
- Une pedidos e clientes em várias tabelas usando um esquema em floco de neve.
- Define campos (também chamados de dimensões) para atributos de tempo, geografia e ordem.
- Calcula medidas simples e complexas, incluindo proporções, agregações filtradas e medidas de janela.
- Usa a capacidade de compilar métricas complexas com base em medidas mais simples.
- Define um parâmetro para aplicar uma taxa de desconto no momento da consulta.
- Inclui metadados do agente para dashboards e ferramentas de IA.
Se você não estiver familiarizado com as exibições de métrica, comece com Criar uma exibição de métrica para aprender as noções básicas. Este tutorial amplia essa base com a complexidade do mundo real.
Requisitos
Para concluir este tutorial, você deve ter:
- Um espaço de trabalho habilitado para usar o Unity Catalog.
- Um sql warehouse ou recurso de computação executando o Databricks Runtime 17.3 ou superior.
Para obter a lista completa de privilégios necessários para criar uma exibição de métrica, consulte Pré-requisitos.
Note
Há suporte para a criação de uma exibição de métrica no Databricks Runtime 16.4 e superior. Este tutorial usa recursos que exigem o Databricks Runtime 17.3 ou superior e algumas etapas exigem um runtime posterior. Para obter o tempo de execução mínimo para cada recurso, consulte a disponibilidade do recurso de exibição de métrica.
O modelo de dados
O conjunto de dados TPC-H modela uma cadeia de suprimentos por atacado. Este tutorial usa três tabelas unidas em um esquema floco de neve:
-
ordersconecta-se acustomeremo_custkey = c_custkey -
customerconecta-se anationemc_nationkey = n_nationkey
| Tabela | Função | Colunas de chave |
|---|---|---|
orders |
Tabela de fatos (transações de pedido) |
o_orderkey, o_custkey, o_totalprice, , o_orderdateo_orderstatus |
customer |
Tabela de dimensões (detalhes do cliente) |
c_custkey, c_name, , c_mktsegmentc_nationkey |
nation |
Tabela de dimensão (referência de país ou região) |
n_nationkey, n_name, n_regionkey |
Etapa 1: Criar a exibição de métrica e abrir o editor
Você pode criar essa exibição de métrica na interface do usuário do Gerenciador de Catálogos, gerá-la com o Genie Code ou gravar a definição completa do YAML diretamente. Todos os três métodos resultam em uma única definição YAML que modela a visualização de métrica. Em cada etapa a seguir, selecione a guia Catalog Explorer UI ou YAML editor para usar o método de sua preferência. Se você usar o editor YAML, o código de exemplo em cada etapa será a parte da definição yaml que corresponde ao que você cria nessa etapa.
Note
Os exemplos yaml neste tutorial usam a fields palavra-chave. Quando você cria uma visualização de métrica no editor low-code, o YAML que ele gera usa a palavra-chave equivalente dimensions em vez disso. Consulte Campos.
Se você não estiver familiarizado com a interface do usuário para criar exibições de métrica, consulte Criar uma exibição de métrica.
Para criar a exibição de métrica, no Gerenciador de Catálogos:
- Pesquise por
samples.tpch.orders. - Clique no nome da tabela.
- Clique em Criar>Visualização de métrica e dê um nome à visualização.
Para obter as etapas de criação detalhadas, consulte Criar uma exibição de métrica. Quando o editor abrir, use a guia UI para criar interativamente ou clique no botão <> para editar a definição YAML diretamente.
Etapa 2: Configurar o modo de exibição de métrica
Defina uma versão e uma descrição para a exibição de métrica. O version determina a versão da especificação YAML, e o comment documenta a finalidade da visualização da métrica, que aparece no Catalog Explorer. Azure Databricks gerencia a versão para você.
Interface do usuário do Catalog Explorer
A versão é definida para você. Para adicionar ou editar a descrição depois de salvar a exibição de métrica:
- No Explorador de Catálogo, pesquise a visualização de métricas e clique no nome dela.
- Clique em Descrição e, em seguida, insira uma descrição da visualização de métricas. Você pode usar a descrição de exemplo mostrada na guia Editor YAML.
Esse texto corresponde ao comment campo na definição yaml. Para obter mais maneiras de editar uma exibição de métrica, consulte Editar uma exibição de métrica.
Editor YAML
version: 1.1
comment: |-
Sales analytics metric view for order performance analysis.
Joins orders with customers and geography.
Owner: Analytics Team
Last updated: 2025-01-15
Etapa 3: Definir a origem e as junções
Defina a tabela de origem principal e faça a junção com tabelas relacionadas:
-
sourcedefine a tabela de fatos (ordens) como a granularidade. -
joinstraz dados do cliente usando uma relação muitos para um. - A junção aninhada
nationdemonstra um padrão de esquema em floco de neve, unindo por meio decustomerpara alcançar dados geográficos, onde a nação é uma subdimensão do cliente.
Interface do usuário do Catalog Explorer
Este exemplo adiciona duas junções, ambas Muitos para um, para modelar o esquema em floco de neve.
Para adicionar a junção customer:
- No editor, clique em Junção no canto superior direito para abrir a caixa de diálogo Adicionar junção.
- Pesquise por
samples.tpch.customer, clique no nome da tabela e, em seguida, clique em Adicionar. - Defina a condição de junção como
o_custkey = c_custkey. - Em Cardinalidade da Junção, selecione Muitos para um. Para obter orientação sobre como escolher uma cardinalidade, consulte Cardinalidade de junção.
Em seguida, adicione a junção aninhada nation. Repita as etapas da junção customer unindo samples.tpch.nation em c_nationkey = n_nationkey. Aninhar a junção em customer modela a nação como uma subdimensão do cliente.
Para ver as etapas completas da caixa de diálogo de junção, consulte Etapa 2: Adicionar uma junção.
Editor YAML
source: SELECT * FROM samples.tpch.orders
joins:
- name: customer
source: samples.tpch.customer
'on': o_custkey = c_custkey
joins:
- name: nation
source: samples.tpch.nation
'on': c_nationkey = n_nationkey
Etapa 4: Definir um filtro
Um filter limita os dados de origem e se aplica a todas as consultas na visualização de métricas. Este tutorial limita a exibição de métrica a dados recentes.
Interface do usuário do Catalog Explorer
Para definir o filtro:
- No editor, clique no
Filtre no canto superior direito.
- Use os menus suspensos para definir a Coluna como
o_orderdate, o Operador como>=e o Valor como1995-01-01.
Para obter mais informações sobre filtros, consulte a Etapa 3: Definir um filtro.
Editor YAML
filter: o_orderdate >= '1995-01-01'
Etapa 5: Definir campos
Os campos são os atributos pelos quais os usuários agrupam e filtram. Um campo pode ser uma coluna categórica (como região ou status) ou uma coluna numérica não agregada (como idade ou quantidade) que os usuários agregam no momento da consulta.
Metadados do agente
Cada campo e medida neste tutorial inclui propriedades de metadados do agente que melhoram a forma como sua exibição de métrica funciona com dashboards e ferramentas de IA:
-
display_name: um rótulo legível que aparece em visualizações em vez do nome da coluna técnica. -
synonyms: nomes alternativos que ajudam ferramentas de IA, como o Genie, a descobrir campos e medidas por meio de consultas de linguagem natural. -
format: como os valores são exibidos em superfícies downstream, como painéis, notebooks e resultados de consulta SQL, por exemplo, como moeda, número ou porcentagem.
Essas propriedades são opcionais, mas recomendadas. As definições de campo e medida nas etapas a seguir os incluem em linha.
Definições do campo
Este tutorial adiciona:
-
Campos de tempo:
order_date,order_montheorder_yearem várias granularidades para dar suporte a diferentes necessidades de análise. -
Campos transformados:
order_statuseorder_priority, que usamCASEeSPLITpara converter códigos de origem em rótulos legíveis. -
Campos unidos:
customer_name,market_segmentecustomer_nation, que fazem referência a tabelas unidas usando o nome da junção. Colunas de junção aninhadas usam a notação de ponto encadeado, comocustomer.nation.n_name, para percorrer o esquema em floco de neve.
Interface do usuário do Catalog Explorer
O editor adiciona todas as colunas de origem à guia Campos automaticamente. Edite, renomeie, remova e adicione campos para que a exibição de métrica defina exatamente o seguinte. Para cada campo, clique em seu nome para editá-lo ou clique em
Adicionar para criá-lo e, em seguida, defina a expressão no modo Construtor ou Personalizado . Defina o nome de exibição e sinônimos para cada campo, conforme mostrado.
order_date: No modo Builder, selecione a coluna
o_orderdate. Definir o nome de exibição comoOrder Date.order_month: No modo personalizado , insira
DATE_TRUNC('MONTH', order_date). Definir o nome de exibição comoOrder Month.order_year: No modo personalizado , insira
YEAR(order_date). Definir o nome de exibição comoOrder Year.order_status: no modo personalizado , insira a seguinte expressão. Defina o nome de exibição como
Order Statuse os sinônimos comostatus,fulfillment status.CASE o_orderstatus WHEN 'O' THEN 'Open' WHEN 'P' THEN 'Processing' WHEN 'F' THEN 'Fulfilled' ENDorder_priority: No modo personalizado , insira
SPLIT(o_orderpriority, '-')[0]. Definir o nome de exibição comoPriority.customer_name: No modo Builder, selecione a coluna
c_nameda tabela associadacustomer. Definir o nome de exibição comoCustomer Name.market_segment: No modo Builder, selecione a coluna
c_mktsegmentda tabela associadacustomer. Defina o nome de exibição comoMarket Segmente os sinônimos comosegment,industry.customer_nation: no modo Personalizado, insira
customer.nation.n_namepara referenciar a junção aninhadanation. Defina o nome de exibição comoCountrye os sinônimos comonation,country.
Para obter as etapas completas do campo, consulte a Etapa 4: Adicionar campos.
Editor YAML
fields:
- name: order_date
expr: o_orderdate
display_name: Order Date
- name: order_month
expr: "DATE_TRUNC('MONTH', order_date)"
display_name: Order Month
- name: order_year
expr: YEAR(order_date)
display_name: Order Year
- name: order_status
expr: |-
CASE o_orderstatus
WHEN 'O' THEN 'Open'
WHEN 'P' THEN 'Processing'
WHEN 'F' THEN 'Fulfilled'
END
display_name: Order Status
synonyms:
- status
- fulfillment status
- name: order_priority
expr: "SPLIT(o_orderpriority, '-')[0]"
display_name: Priority
- name: customer_name
expr: customer.c_name
display_name: Customer Name
- name: market_segment
expr: customer.c_mktsegment
display_name: Market Segment
synonyms:
- segment
- industry
- name: customer_nation
expr: customer.nation.n_name
display_name: Country
synonyms:
- nation
- country
Etapa 6: Definir parâmetros
Os parâmetros permitem que você passe valores para a exibição de métrica ao consultá-la, de modo que uma única definição possa atender a muitas variantes de consulta. Este tutorial adiciona um discount parâmetro que uma medida posterior usa para calcular a receita com desconto. O parâmetro tem um padrão de 0, portanto, consultas que não passam um valor retornam receita não contada. Para obter mais informações sobre parâmetros, consulte Usar parâmetros com exibições de métrica.
Interface do usuário do Catalog Explorer
No título do editor, clique em Adicionar parâmetro. Insira discount como o nome e, em seguida, insira um valor padrão e selecione o 0 tipo de double dados.
Editor YAML
parameters:
- name: discount
data_type: double
default: 0
Etapa 7: Definir medidas
Medidas são os cálculos que os usuários desejam analisar. Defina as medidas atômicas primeiro e, em seguida, use a capacidade de criar métricas complexas que fazem referência a medidas definidas anteriormente com a MEASURE() função. Defina o display_name, formate synonyms para cada medida, conforme descrito nos metadados do Agente. Este tutorial adiciona:
-
Medidas atômicas:
order_count,total_revenueeunique_customers, as agregações simples que formam os blocos de construção. -
Medidas compostas:
avg_order_valueerevenue_per_customer, que fazem referência a medidas definidas anteriormente comMEASURE(), em vez de duplicar a lógica de agregação. Setotal_revenueforem alteradas, essas medidas usarão automaticamente a definição atualizada. Consulte Modularidade. -
Medidas filtradas:
open_order_revenueefulfilled_order_revenue, que usamFILTER (WHERE ...)para criar métricas condicionais sem campos separados. -
Medida parametrizada:
discounted_revenue, que faz referência aodiscountparâmetro para aplicar uma taxa de desconto. Consulte Usar parâmetros com visualizações de métricas. -
Medida de janela:
t7d_customers, que calcula uma contagem móvel de 7 dias de clientes únicos. Consulte as medidas da janela para obter mais padrões de medida de janela.
Interface do usuário do Catalog Explorer
O editor adiciona uma medida de exemplo COUNT(*) automaticamente. Edite ou remova-o e adicione medidas para que a exibição de métrica defina exatamente o seguinte. Para cada medida, clique em
Adicionar e, em seguida, defina a expressão no modo Construtor ou Personalizado . Defina o nome de exibição, o formato e os sinônimos , conforme mostrado. Use 2 casas decimais para formatos de moeda e 0 casas decimais para formatos de número.
-
order_count: no modo Construtor, selecione a agregação Contar distintos em
o_orderkey. Defina o nome de exibição comoOrder Count, formate como Número. -
total_revenue: no modo Construtor, selecione a agregação Soma em
o_totalprice. Defina o nome de exibição comoTotal Revenue, formatar como Moeda (USD), sinônimos comorevenue,sales. -
discounted_revenue: no modo Personalizado, insira
SUM(o_totalprice * (1 - discount)). Defina o nome de exibição comoDiscounted Revenue, formate como Moeda (USD). -
unique_customers: no modo Construtor, selecione a agregação Contar distintos em
o_custkey. Defina o nome de exibição comoUnique Customers, formate como Número. -
avg_order_value: No modo personalizado , insira
MEASURE(total_revenue) / MEASURE(order_count). Defina o nome de exibição comoAvg Order Value, formatar como Moeda (USD) e sinônimos comoAOV. -
revenue_per_customer: No modo personalizado , insira
MEASURE(total_revenue) / MEASURE(unique_customers). Defina o nome de exibição comoRevenue per Customer, formate como Moeda (USD). -
open_order_revenue: no modo Personalizado, insira
SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'O'). Defina o nome de exibição comoOpen Order Revenue, formatar como Moeda (USD) e sinônimos comobacklog. -
fulfilled_order_revenue: no modo Personalizado, insira
SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'F'). Defina o nome de exibição comoFulfilled Revenue, formate como Moeda (USD). -
t7d_customers: No modo personalizado , insira
COUNT(DISTINCT o_custkey). Em seguida, clique em + Window e configure uma janela ordenada pororder_date, com intervalotrailing 7 daye agregação semiadditivalast. Defina o nome de exibição como7-Day Rolling Customers, formate como Número.
Para obter as etapas de medida completas, consulte a Etapa 5: Adicionar medidas.
Editor YAML
measures:
- name: order_count
expr: COUNT(DISTINCT o_orderkey)
display_name: Order Count
format:
type: number
decimal_places:
type: exact
places: 0
abbreviation: compact
- name: total_revenue
expr: SUM(o_totalprice)
display_name: Total Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- revenue
- sales
- name: discounted_revenue
expr: SUM(o_totalprice * (1 - discount))
display_name: Discounted Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: unique_customers
expr: COUNT(DISTINCT o_custkey)
display_name: Unique Customers
format:
type: number
decimal_places:
type: exact
places: 0
abbreviation: compact
- name: avg_order_value
expr: MEASURE(total_revenue) / MEASURE(order_count)
display_name: Avg Order Value
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- AOV
- name: revenue_per_customer
expr: MEASURE(total_revenue) / MEASURE(unique_customers)
display_name: Revenue per Customer
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: open_order_revenue
expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'O')
display_name: Open Order Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- backlog
- name: fulfilled_order_revenue
expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'F')
display_name: Fulfilled Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: t7d_customers
expr: COUNT(DISTINCT o_custkey)
window:
- order: order_date
semiadditive: last
range: trailing 7 day
display_name: 7-Day Rolling Customers
format:
type: number
decimal_places:
type: exact
places: 0
Examinar a definição completa
Depois de concluir as etapas acima, sua exibição de métrica tem a seguinte definição completa:
Exibir a definição completa do YAML
version: 1.1
parameters:
- name: discount
data_type: double
default: 0
source: SELECT * FROM samples.tpch.orders
joins:
- name: customer
source: samples.tpch.customer
'on': o_custkey = c_custkey
joins:
- name: nation
source: samples.tpch.nation
'on': c_nationkey = n_nationkey
filter: o_orderdate >= '1995-01-01'
comment: |-
Sales analytics metric view for order performance analysis.
Joins orders with customers and geography.
Owner: Analytics Team
Last updated: 2025-01-15
fields:
- name: order_date
expr: o_orderdate
display_name: Order Date
- name: order_month
expr: "DATE_TRUNC('MONTH', order_date)"
display_name: Order Month
- name: order_year
expr: YEAR(order_date)
display_name: Order Year
- name: order_status
expr: |-
CASE o_orderstatus
WHEN 'O' THEN 'Open'
WHEN 'P' THEN 'Processing'
WHEN 'F' THEN 'Fulfilled'
END
display_name: Order Status
synonyms:
- status
- fulfillment status
- name: order_priority
expr: "SPLIT(o_orderpriority, '-')[0]"
display_name: Priority
- name: customer_name
expr: customer.c_name
display_name: Customer Name
- name: market_segment
expr: customer.c_mktsegment
display_name: Market Segment
synonyms:
- segment
- industry
- name: customer_nation
expr: customer.nation.n_name
display_name: Country
synonyms:
- nation
- country
measures:
- name: order_count
expr: COUNT(DISTINCT o_orderkey)
display_name: Order Count
format:
type: number
decimal_places:
type: exact
places: 0
abbreviation: compact
- name: total_revenue
expr: SUM(o_totalprice)
display_name: Total Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- revenue
- sales
- name: discounted_revenue
expr: SUM(o_totalprice * (1 - discount))
display_name: Discounted Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: unique_customers
expr: COUNT(DISTINCT o_custkey)
display_name: Unique Customers
format:
type: number
decimal_places:
type: exact
places: 0
abbreviation: compact
- name: avg_order_value
expr: MEASURE(total_revenue) / MEASURE(order_count)
display_name: Avg Order Value
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- AOV
- name: revenue_per_customer
expr: MEASURE(total_revenue) / MEASURE(unique_customers)
display_name: Revenue per Customer
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: open_order_revenue
expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'O')
display_name: Open Order Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- backlog
- name: fulfilled_order_revenue
expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'F')
display_name: Fulfilled Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: t7d_customers
expr: COUNT(DISTINCT o_custkey)
window:
- order: order_date
semiadditive: last
range: trailing 7 day
display_name: 7-Day Rolling Customers
format:
type: number
decimal_places:
type: exact
places: 0
Criar a exibição de métrica usando o SQL
Se você estiver criando essa definição fora do Catalog Explorer, execute o seguinte SQL para criar a exibição de métrica:
CREATE OR REPLACE VIEW catalog.schema.tpch_sales_analytics
WITH METRICS
LANGUAGE YAML
AS $$
version: 1.1
parameters:
- name: discount
data_type: double
default: 0
source: SELECT * FROM samples.tpch.orders
joins:
- name: customer
source: samples.tpch.customer
'on': o_custkey = c_custkey
joins:
- name: nation
source: samples.tpch.nation
'on': c_nationkey = n_nationkey
filter: o_orderdate >= '1995-01-01'
comment: |-
Sales analytics metric view for order performance analysis.
Joins orders with customers and geography.
Owner: Analytics Team
Last updated: 2025-01-15
fields:
- name: order_date
expr: o_orderdate
display_name: Order Date
- name: order_month
expr: "DATE_TRUNC('MONTH', order_date)"
display_name: Order Month
- name: order_year
expr: YEAR(order_date)
display_name: Order Year
- name: order_status
expr: |-
CASE o_orderstatus
WHEN 'O' THEN 'Open'
WHEN 'P' THEN 'Processing'
WHEN 'F' THEN 'Fulfilled'
END
display_name: Order Status
synonyms:
- status
- fulfillment status
- name: order_priority
expr: "SPLIT(o_orderpriority, '-')[0]"
display_name: Priority
- name: customer_name
expr: customer.c_name
display_name: Customer Name
- name: market_segment
expr: customer.c_mktsegment
display_name: Market Segment
synonyms:
- segment
- industry
- name: customer_nation
expr: customer.nation.n_name
display_name: Country
synonyms:
- nation
- country
measures:
- name: order_count
expr: COUNT(DISTINCT o_orderkey)
display_name: Order Count
format:
type: number
decimal_places:
type: exact
places: 0
abbreviation: compact
- name: total_revenue
expr: SUM(o_totalprice)
display_name: Total Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- revenue
- sales
- name: discounted_revenue
expr: SUM(o_totalprice * (1 - discount))
display_name: Discounted Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: unique_customers
expr: COUNT(DISTINCT o_custkey)
display_name: Unique Customers
format:
type: number
decimal_places:
type: exact
places: 0
abbreviation: compact
- name: avg_order_value
expr: MEASURE(total_revenue) / MEASURE(order_count)
display_name: Avg Order Value
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- AOV
- name: revenue_per_customer
expr: MEASURE(total_revenue) / MEASURE(unique_customers)
display_name: Revenue per Customer
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: open_order_revenue
expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'O')
display_name: Open Order Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- backlog
- name: fulfilled_order_revenue
expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'F')
display_name: Fulfilled Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: t7d_customers
expr: COUNT(DISTINCT o_custkey)
window:
- order: order_date
semiadditive: last
range: trailing 7 day
display_name: 7-Day Rolling Customers
format:
type: number
decimal_places:
type: exact
places: 0
$$;
Para obter outras maneiras de criar uma exibição de métrica, consulte Criar uma exibição de métrica.
Etapa 8: Consultar sua vista de métricas
Consulte a exibição de métrica usando a sintaxe amigável aos negócios. A função MEASURE() agrega uma medida no nível de granularidade dos campos que você seleciona.
Agrupar medidas por dimensão
Este exemplo agrega medidas em vários campos. Retorna a receita total, a contagem de pedidos e o valor médio do pedido por nação do cliente e segmento de mercado, classificados pela maior receita primeiro:
SELECT
customer_nation,
market_segment,
MEASURE(total_revenue) AS total_revenue,
MEASURE(order_count) AS order_count,
MEASURE(avg_order_value) AS avg_order_value
FROM catalog.schema.tpch_sales_analytics
GROUP BY customer_nation, market_segment
ORDER BY total_revenue DESC;
Analisar uma tendência mensal
Este exemplo combina um campo de tempo com medidas para acompanhar uma tendência. Retorna a receita total e a receita de pedidos em aberto (carteira de pedidos) por mês e o status do pedido:
SELECT
order_month,
order_status,
MEASURE(total_revenue) AS total_revenue,
MEASURE(open_order_revenue) AS open_order_revenue
FROM catalog.schema.tpch_sales_analytics
GROUP BY order_month, order_status
ORDER BY order_month;
Passar um valor de parâmetro
Como a exibição de métrica define um parâmetro, você pode chamá-lo como uma função com valor de tabela e passar um valor no momento da consulta. A consulta a seguir aplica um desconto de 10%. Como discount tem um padrão de 0, as consultas que omitem o argumento retornam receita não contada:
SELECT
customer_nation,
MEASURE(total_revenue) AS total_revenue,
MEASURE(discounted_revenue) AS discounted_revenue
FROM catalog.schema.tpch_sales_analytics(discount => 0.1)
GROUP BY customer_nation
ORDER BY discounted_revenue DESC;
O que você aprendeu
Você criou uma visualização de métrica que demonstra:
| Característica | Example |
|---|---|
| Junções de esquema snowflake | Ordens para cliente para nação (uniões aninhadas muitos para um) |
| Campos de tempo | Granularidade de data, mês, ano |
| Campos transformados |
CASE instruções, SPLIT funções |
| Medidas simples |
COUNT, SUM |
| Capacidade de composição |
avg_order_value e revenue_per_customer referenciam medidas definidas anteriormente usando MEASURE() |
| Medidas filtradas |
FILTER (WHERE ...) para agregações condicionais |
| Medidas de janela | Contagem contínua de clientes em um período de 7 dias usando trailing 7 day |
| Parâmetros |
discount parâmetro aplicado na discounted_revenue medida |
| Metadados do agente |
display_name, format, synonyms em campos e medidas |
Recursos adicionais
- Medidas de janela para calcular médias contínuas e totais acumulados no ano.
- Materialização para visões de métricas para melhorar o desempenho das consultas para grandes conjuntos de dados.
- Use visões de métricas para usar sua visão de métricas em painéis de IA/BI.