Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questa esercitazione si creerà una visualizzazione delle metriche di analisi delle vendite nel set di dati TPC-H. Al termine, si avrà una visualizzazione metrica che:
- Unisce ordini e clienti tra più tabelle usando uno schema snowflake.
- Definisce i campi (detti anche dimensioni) per gli attributi temporali, geografici e dell’ordine.
- Calcola misure semplici e complesse, inclusi rapporti, aggregazioni filtrate e misure finestra.
- Usa la componibilità per creare metriche complesse da misure più semplici.
- Definisce un parametro per applicare un tasso di sconto al momento della query.
- Include i metadati dell'agente per dashboard e strumenti di intelligenza artificiale.
Se non si ha familiarità con le visualizzazioni delle metriche, iniziare con Creare una visualizzazione delle metriche per apprendere le nozioni di base. Questa esercitazione estende tale base con la complessità del mondo reale.
Requisiti
Per completare l'esercitazione, sono necessari:
- Un'area di lavoro abilitata per Unity Catalog.
- Una risorsa di calcolo o di sql warehouse che esegue Databricks Runtime 17.3 o versione successiva.
Per l'elenco completo dei privilegi necessari per creare una visualizzazione delle metriche, vedere Prerequisiti.
Annotazioni
La creazione di una visualizzazione delle metriche è supportata in Databricks Runtime 16.4 e versioni successive. Questa esercitazione usa funzionalità che richiedono Databricks Runtime 17.3 o versione successiva e alcuni passaggi richiedono un runtime successivo. Per il runtime minimo per ogni funzionalità, vedere Disponibilità delle funzionalità di visualizzazione delle metriche.
Modello di dati
Il set di dati TPC-H modella una supply chain all'ingrosso. Questa esercitazione usa tre tabelle unite in uno schema snowflake:
-
orderssi unisce acustomersuo_custkey = c_custkey -
customersi unisce anationsuc_nationkey = n_nationkey
| Tabella | Ruolo | Colonne chiave |
|---|---|---|
orders |
Tabella dei fatti (transazioni d'ordine) |
o_orderkey, o_custkey, o_totalprice, o_orderdateo_orderstatus |
customer |
Tabella delle dimensioni (dettagli del cliente) |
c_custkey, c_name, c_mktsegmentc_nationkey |
nation |
Tabella delle dimensioni (riferimento paese o area geografica) |
n_nationkey, n_name, n_regionkey |
Passaggio 1: Creare la visualizzazione delle metriche e aprire l'editor
È possibile compilare questa visualizzazione delle metriche nell'interfaccia utente di Esplora cataloghi, generarla con Genie Code o scrivere direttamente la definizione YAML completa. Tutti e tre i metodi vengono risolti in una singola definizione YAML che modella la visualizzazione delle metriche. In ciascuno dei passaggi seguenti, selezionare la scheda Catalog Explorer UI o editor YAML in base al metodo preferito. Se si usa l'editor YAML, il codice di esempio in ogni passaggio è la parte della definizione YAML che corrisponde a ciò che si compila in tale passaggio.
Annotazioni
Gli esempi YAML in questa esercitazione usano la fields parola chiave . Quando si compila una visualizzazione delle metriche nell'editor a basso codice, il codice YAML generato usa invece la parola chiave equivalente dimensions . Vedi Campi.
Se non si ha familiarità con l'interfaccia utente per la creazione di visualizzazioni delle metriche, vedere Creare una visualizzazione delle metriche.
Per creare la visualizzazione delle metriche, in Esplora cataloghi:
- Cercare "
samples.tpch.orders". - Fare clic sul nome della tabella.
- Fare clic su Crea>visualizzazione metrica e denominare la visualizzazione.
Per i passaggi di creazione dettagliati, vedere Creare una visualizzazione delle metriche. Quando si apre l'editor, usare la scheda dell'interfaccia utente per compilare in modo interattivo o fare clic sul <> pulsante per modificare direttamente la definizione YAML.
Passaggio 2: Configurare la visualizzazione delle metriche
Impostare una versione e una descrizione per la visualizzazione delle metriche.
version determina la versione della specifica YAML e comment documenta lo scopo della vista delle metriche, che viene visualizzato in Catalog Explorer. Azure Databricks gestisce automaticamente la versione.
Interfaccia utente di Esplora cataloghi
La versione è definita per te. Per aggiungere o modificare la descrizione dopo aver salvato la visualizzazione metrica:
- In Esplora catalogo, cerca la vista metrica e fai clic sul nome.
- Fare clic su Descrizione, quindi immettere una descrizione della visualizzazione metrica. È possibile usare la descrizione di esempio illustrata nella scheda dell'editor YAML .
Questo testo corrisponde al comment campo nella definizione YAML. Per altri modi per modificare una visualizzazione delle metriche, vedere Modificare una visualizzazione delle metriche.
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
Passaggio 3: Definire la fonte e le relazioni
Definire la tabella di origine primaria e unire le tabelle correlate:
-
sourceimposta la tabella dei fatti (ordini) come livello di granularità. -
joinsporta i dati dei clienti usando una relazione molti-a-uno. - La join annidata
nationdimostra uno schema a fiocco di neve, passando attraversocustomerper arrivare ai dati geografici, in cui la nazione è una sottodimensione del cliente.
Interfaccia utente di Esplora cataloghi
In questo esempio vengono aggiunti due join, entrambi Many-to-one, per modellare uno schema a fiocco di neve.
Per aggiungere il join customer:
- Nell'editor fare clic su Partecipa nell'angolo superiore destro per aprire la finestra di dialogo Aggiungi join .
- Cerca
samples.tpch.customer, fai clic sul nome della tabella, quindi fai clic su Aggiungi. - Impostare la condizione di unione su
o_custkey = c_custkey. - In Cardinalità del join, seleziona Molti a uno. Per indicazioni sulla scelta di una cardinalità, consulta Join cardinality.
Quindi aggiungi il join annidato nation. Ripetere i passaggi del customer join, aggiungendo samples.tpch.nation a c_nationkey = n_nationkey. Annidamento del join in customer modelli nazione come sottodimensione del cliente.
Per i passaggi completi della finestra di dialogo del full join, vedere Passaggio 2: Aggiungere un full join.
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
Passaggio 4: Definire un filtro
Un filter limita i dati sorgente e si applica a tutte le query nella vista metrica. Questa esercitazione limita la visualizzazione delle metriche ai dati recenti.
Interfaccia utente di Esplora cataloghi
Per definire il filtro:
- Nell'editor fare clic
Filtrare nell'angolo superiore destro.
- Usare i menu a discesa per impostare La colonna su
o_orderdate, l'operatore su>=e il valore su1995-01-01.
Per altre informazioni sui filtri, vedere Passaggio 3: Definire un filtro.
Editor YAML
filter: o_orderdate >= '1995-01-01'
Passaggio 5: Definire i campi
I campi sono gli attributi in base ai quali gli utenti raggruppano e filtrano. Un campo può essere una colonna categorica(ad esempio area o stato) o una colonna numerica non raggruppata (ad esempio età o quantità) che gli utenti aggregano in fase di query.
Metadati dell'agente
Ogni campo e misura in questa esercitazione include proprietà dei metadati dell'agente che migliorano il funzionamento della visualizzazione delle metriche con dashboard e strumenti di intelligenza artificiale:
-
display_name: etichetta leggibile visualizzata nelle visualizzazioni anziché nel nome della colonna tecnica. -
synonyms: nomi alternativi che consentono agli strumenti di intelligenza artificiale come Genie di individuare campi e misure tramite query in linguaggio naturale. -
format: modalità di visualizzazione dei valori nelle superfici downstream, ad esempio dashboard, notebook e risultati di query SQL, ad esempio valuta, numero o percentuale.
Queste proprietà sono facoltative ma consigliate. Le definizioni di campo e di misura nei passaggi seguenti le includono direttamente nel testo.
Definizioni dei campi
In questa esercitazione aggiungeremo:
-
Campi temporali:
order_date,order_montheorder_yeara più granularità per supportare esigenze di analisi diverse. -
Campi trasformati:
order_statuseorder_priority, che usanoCASEeSPLITper convertire i codici sorgente in etichette leggibili. -
Campi collegati:
customer_name,market_segmentecustomer_nation, che fanno riferimento a tabelle collegate utilizzando il nome del join. Le colonne di join annidate usano la notazione con punti concatenati, ad esempiocustomer.nation.n_name, per percorrere lo schema snowflake.
Interfaccia utente di Esplora cataloghi
L'editor aggiunge automaticamente tutte le colonne di origine alla scheda Campi . Modificare, rinominare, rimuovere e aggiungere campi in modo che la visualizzazione metrica definisca esattamente quanto segue. Per ogni campo, fare clic sul nome per modificarlo oppure fare clic
per crearla, quindi impostare l'espressione in modalità Generatore o Personalizzata. Impostare il nome visualizzato e i sinonimi per ogni campo, come illustrato.
order_date: In modalità Builder, seleziona la colonna
o_orderdate. Imposta il nome visualizzato suOrder Date.order_month: in modalità personalizzata immettere
DATE_TRUNC('MONTH', order_date). Imposta il nome visualizzato suOrder Month.order_year: in modalità personalizzata immettere
YEAR(order_date). Imposta il nome visualizzato suOrder Year.order_status: in modalità personalizzata immettere l'espressione seguente. Impostare il nome visualizzato su
Order Statuse i sinonimi sustatus,fulfillment status.CASE o_orderstatus WHEN 'O' THEN 'Open' WHEN 'P' THEN 'Processing' WHEN 'F' THEN 'Fulfilled' ENDorder_priority: in modalità personalizzata immettere
SPLIT(o_orderpriority, '-')[0]. Imposta il nome visualizzato suPriority.customer_name: In modalità Builder, selezionare la colonna
c_namedalla tabellacustomercollegata. Imposta il nome visualizzato suCustomer Name.market_segment: In modalità Builder, seleziona la colonna
c_mktsegmentdalla tabellacustomerunita. Impostare il nome visualizzato suMarket Segmente i sinonimi susegment,industry.customer_nation: In modalità personalizzata, immettere
customer.nation.n_nameper fare riferimento al join annidatonation. Impostare il nome visualizzato suCountrye i sinonimi sunation,country.
Per i passaggi completi del campo, vedere Passaggio 4: Aggiungere campi.
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
Passaggio 6: Definire i parametri
I parametri consentono di passare valori alla vista della metrica quando la si interroga, in modo che una singola definizione possa supportare molte varianti di query. Questa esercitazione aggiunge un parametro discount che una misura successiva usa per calcolare i ricavi scontati. Il parametro ha come valore predefinito 0, quindi le query che non passano alcun valore restituiscono ricavi non scontati. Per altre informazioni sui parametri, vedere Usare i parametri con le visualizzazioni delle metriche.
Interfaccia utente di Esplora cataloghi
Nell'intestazione dell'editor fare clic su Aggiungi parametro. Immettere discount come nome, quindi immettere un valore predefinito di 0 e selezionare il double tipo di dati.
Editor YAML
parameters:
- name: discount
data_type: double
default: 0
Passaggio 7: Definire le misure
Le misure sono i calcoli che gli utenti vogliono analizzare. Definire prima misure atomiche, quindi usare la componibilità per creare metriche complesse che fanno riferimento a misure definite in precedenza con la MEASURE() funzione . Impostare display_name, format e synonyms per ogni misura come descritto in Metadati dell'agente. In questa esercitazione aggiungeremo:
-
Misure atomiche:
order_count,total_revenueeunique_customers, le aggregazioni semplici che formano i blocchi predefiniti. -
Misure composte:
avg_order_valueerevenue_per_customer, che fanno riferimento a misure definite in precedenza conMEASURE()anziché duplicare la logica di aggregazione. Setotal_revenuecambia, queste misure utilizzano automaticamente la definizione aggiornata. Vedere Componibilità. -
Misure filtrate:
open_order_revenueefulfilled_order_revenue, che usanoFILTER (WHERE ...)per creare metriche condizionali senza campi separati. -
Misura con parametri:
discounted_revenueche fa riferimento aldiscountparametro per applicare una tariffa di sconto. Vedi Usare i parametri con le visualizzazioni delle metriche. -
Misura della finestra:
t7d_customers, che calcola un conteggio mobile su 7 giorni dei clienti unici. Vedi Misure finestra per altri modelli di misura delle finestre.
Interfaccia utente di Esplora cataloghi
L'editor aggiunge automaticamente una misura di esempio COUNT(*) . Modificarlo o rimuoverlo e aggiungere misure in modo che la visualizzazione metrica definisca esattamente quanto segue. Per ogni misura, fare clic
Aggiungi, quindi impostare l'espressione in modalità Generatore o Personalizzata. Impostare nome visualizzato, formato e sinonimi come illustrato. Utilizzare 2 posizioni decimali per i formati di valuta e 0 cifre decimali per i formati numerici.
-
order_count: in modalità Generatore selezionare l'aggregazione Conteggio valori distinti in
o_orderkey. Imposta il nome visualizzato comeOrder Counte il formato su Numero. -
total_revenue: In modalità Generatore, selezionare l'aggregazione Somma su
o_totalprice. Impostare il nome visualizzato suTotal Revenue, il formato come Valuta (USD), i sinonimi comerevenue,sales. -
discounted_revenue: in modalità personalizzata immettere
SUM(o_totalprice * (1 - discount)). Impostare il nome visualizzato suDiscounted Revenue, il formato su Valuta (USD). -
unique_customers: In modalità Generatore, selezionare l'aggregazione Conteggio valori distinti su
o_custkey. Imposta il nome visualizzato comeUnique Customerse il formato su Numero. -
avg_order_value: in modalità personalizzata immettere
MEASURE(total_revenue) / MEASURE(order_count). Impostare il nome visualizzato suAvg Order Value, il formato su Valuta (USD), i sinonimi suAOV. -
revenue_per_customer: in modalità personalizzata immettere
MEASURE(total_revenue) / MEASURE(unique_customers). Impostare il nome visualizzato suRevenue per Customer, il formato su Valuta (USD). -
open_order_revenue: in modalità personalizzata immettere
SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'O'). Impostare il nome visualizzato suOpen Order Revenue, il formato su Valuta (USD), i sinonimi subacklog. -
fulfilled_order_revenue: Nella modalità personalizzata, immetti
SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'F'). Impostare il nome visualizzato suFulfilled Revenue, il formato su Valuta (USD). -
t7d_customers: in modalità personalizzata immettere
COUNT(DISTINCT o_custkey). Fare quindi clic su + Finestra e configurare una finestra ordinata perorder_datecon intervallotrailing 7 daye aggregazione semiadditivalast. Imposta il nome visualizzato come7-Day Rolling Customerse il formato su Numero.
Per i passaggi completi della misura, vedere Passaggio 5: Aggiungere misure.
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
Esaminare la definizione completa
Dopo aver completato i passaggi precedenti, la visualizzazione delle metriche ha la definizione completa seguente:
Visualizzare la definizione YAML completa
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
Creare la visualizzazione delle metriche con SQL
Se si compila questa definizione all'esterno di Esplora cataloghi, eseguire il codice SQL seguente per creare la visualizzazione delle metriche:
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
$$;
Per altri modi per creare una visualizzazione delle metriche, vedere Creare una visualizzazione delle metriche.
Passaggio 8: Eseguire una query sulla visualizzazione delle metriche
Eseguire una query sulla visualizzazione delle metriche usando la sintassi business-friendly. La MEASURE() funzione aggrega una misura in base alla granularità dei campi selezionati.
Aggregare le misure per dimensione
Questo esempio aggrega le misure in più campi. Restituisce i ricavi totali, il conteggio degli ordini e il valore medio degli ordini in base alla nazione del cliente e al segmento di mercato, classificati in base ai ricavi più alti per primi:
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;
Analizzare una tendenza mensile
In questo esempio viene combinato un campo ora con le misure per tenere traccia di una tendenza. Restituisce i ricavi totali e i ricavi aperti degli ordini (backlog) per mese e stato dell'ordine:
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;
Passare un valore di parametro
Poiché la vista metrica definisce un parametro, è possibile chiamarla come funzione con valori di tabella e passare un valore in fase di query. La query seguente applica uno sconto di 10%. Poiché discount ha un valore predefinito di 0, le query che omettono l'argomento restituiscono ricavi non scontati:
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;
Cosa si è appreso
È stata creata una visualizzazione delle metriche che illustra:
| Feature | Example |
|---|---|
| Join dello schema Snowflake | Ordini dal cliente alla nazione (join molti-a-uno annidati) |
| Campi orari | Granularità di data, mese, anno |
| Campi trasformati |
CASE istruzioni, SPLIT funzioni |
| Misure semplici |
COUNT, SUM |
| Componibilità |
avg_order_value e revenue_per_customer fare riferimento a misure definite in precedenza usando MEASURE() |
| Misure filtrate |
FILTER (WHERE ...) per le aggregazioni condizionali |
| Misure finestra | Conteggio dei clienti di 7 giorni in sequenza con trailing 7 day |
| Parametri |
discount parametro applicato nella discounted_revenue misura |
| Metadati dell'agente |
display_name, format, synonyms su campi e misure |
Risorse aggiuntive
- Misure finestra per calcolare le medie in sequenza e i totali da inizio anno.
- Materializzazione per le viste delle metriche per migliorare le prestazioni delle query per set di dati di grandi dimensioni.
- Usare le viste metriche per utilizzare la vista delle metriche nelle dashboard di AI/BI.