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.
Le definizioni di visualizzazione delle metriche usano la sintassi YAML standard per dichiarare origine, join, campi, misure, filtri, misure finestra e materializzazione. Le sezioni seguenti descrivono la grammatica completa per ognuna.
Per i requisiti minimi di runtime e di versione delle specifiche YAML per ogni funzionalità, vedere Disponibilità delle funzionalità di visualizzazione delle metriche.
Per altre informazioni sulle specifiche YAML, vedere la documentazione relativa alla specifica YAML 1.2.2 .
Modificare YAML nell'editor di visualizzazione delle metriche
È possibile scrivere e modificare il codice YAML descritto in questa pagina direttamente nell'editor di visualizzazione delle metriche. In Esplora cataloghi aprire una visualizzazione delle metriche e fare clic sul <> pulsante per modificare la definizione. Per generare YAML da una descrizione del linguaggio naturale, aprire invece Genie Code dall'editor. Per la procedura dettagliata dell'editor completo, vedere Creare una visualizzazione delle metriche.
Campi YAML di primo livello
La definizione YAML per una visualizzazione delle metriche include i campi di primo livello seguenti:
| Campo | Tipo | Description |
|---|---|---|
version |
Stringa | Required. Versione della specifica YAML della visualizzazione delle metriche usata dalla definizione, ad esempio 1.1. Si tratta della versione del formato di specifica, non di un numero di revisione assegnato alla propria definizione. Usare una delle versioni di specifiche supportate. Vedere Versioni delle specifiche YAML. |
comment |
Stringa | Optional. Descrizione della visualizzazione delle metriche. |
source |
Stringa | Required. Dati di origine per la visualizzazione delle metriche. Può essere qualsiasi risorsa del catalogo Unity simile a una tabella, inclusa una vista metrica o una query SQL. Vedere Origine. |
parameters |
Array | Optional. Valori denominati passati dai chiamanti quando eseguono query sulla vista metrica come funzione con valori di tabella. Vedere Parametri. |
filter |
Stringa | Optional. Espressione booleana SQL che si applica a tutte le query. Vedere Filtro. |
joins |
Array | Optional. Schema star e join di schema snowflake. Vedere Join. |
fields |
Array | Condizionale. Definizioni di campo che includono nome, espressione e metadati semantici facoltativi. Obbligatorio se non è specificato alcun measures valore. Vedi Campi. La dimensions parola chiave viene accettata come sinonimo di compatibilità con le versioni precedenti. |
measures |
Array | Condizionale. Definizioni di misure, tra cui nome, espressione di aggregazione e metadati semantici facoltativi. Obbligatorio se non è specificato alcun fields valore. Vedere Misure. |
materialization |
oggetto | Optional. Configurazione per l'accelerazione delle query con viste materializzate. Include le definizioni di pianificazione dell'aggiornamento e vista materializzata. Vedere Materializzazione. |
Fonte
Il source campo specifica l'origine dati per la visualizzazione metrica. Le origini supportate includono tabelle, viste, viste delle metriche e query SQL. La componibilità si applica tra le visualizzazioni delle metriche. Quando si usa una visualizzazione metrica come origine, è possibile fare riferimento ai relativi campi e misure nella nuova visualizzazione delle metriche. Vedere Componibilità.
Origine di asset simili a tabelle
Fare riferimento a un asset simile a una tabella usando il nome in tre parti:
source: catalog.schema.source_table
Origine query SQL
Per usare una query SQL, scrivere il testo della query direttamente in YAML:
source: SELECT * FROM samples.tpch.orders o
LEFT JOIN samples.tpch.customer c
ON o.o_custkey = c.c_custkey
Annotazioni
Quando si usa una query SQL come origine con una JOIN clausola , impostare vincoli di chiave primaria ed esterna sulle tabelle sottostanti e usare l'opzione RELY per ottenere prestazioni ottimali delle query. Per altre informazioni, vedere Dichiarare la chiave primaria, la chiave esterna e i vincoli univoci el'ottimizzazione delle query usando chiavi primarie e vincoli univoci.
Parametri
Il parameters blocco definisce valori denominati che i chiamanti passano quando eseguono query sulla vista metrica come funzione con valori di tabella. Per quando e come usare i parametri, inclusa l'esecuzione di query su una vista metrica con parametri, vedere Usare i parametri con le visualizzazioni delle metriche.
Ogni definizione di parametro include i campi seguenti:
| Campo | Tipo | Description |
|---|---|---|
name |
Stringa | Required. Nome del parametro. Fare riferimento al parametro in base a questo nome nelle espressioni di campo e misura e passarlo come argomento denominato quando si esegue una query sulla visualizzazione metrica. |
data_type |
Stringa | Required. Tipo di dati SQL del parametro, ad esempio double, int, stringo date. |
default |
Variabile | Optional. Valore utilizzato quando un chiamante non passa il parametro . Il valore predefinito deve essere castable a e non può fare riferimento a data_typeun altro parametro o contenere una sottoquery. Se si imposta un valore predefinito per un parametro, ogni parametro che segue deve avere anche un valore predefinito. |
L'esempio seguente definisce un discount parametro e vi fa riferimento in un'espressione di misura:
version: 1.1
source: main.default.sales
parameters:
- name: discount
data_type: double
default: 0
fields:
- name: product
expr: product
measures:
- name: discountedSales
expr: SUM((1 - discount) * amount)
Filter
Un filtro nella definizione YAML si applica a tutte le query che fanno riferimento alla visualizzazione metrica. Scrivere filtri come espressioni booleane SQL.
# Single condition filter
filter: o_orderdate > '2024-01-01'
# Multiple conditions with AND
filter: o_orderdate > '2024-01-01' AND o_orderstatus = 'F'
# Multiple conditions with OR
filter: o_orderpriority = '1-URGENT' OR o_orderpriority = '2-HIGH'
# Complex filter with IN clause
filter: o_orderstatus IN ('F', 'P') AND o_orderdate >= '2024-01-01'
# Filter with NOT
filter: o_orderstatus != 'O' AND o_totalprice > 1000.00
# Filter with LIKE pattern matching
filter: o_comment LIKE '%express%' AND o_orderdate > '2024-01-01'
Joins
I join nelle viste delle metriche supportano sia i join diretti da una tabella dei fatti a tabelle delle dimensioni (schema a stella) che i join multi-hop tra tabelle delle dimensioni normalizzate (schemi a fiocco di neve). È anche possibile creare un join a una query SQL usando un'istruzione SELECT . Vedere Usare una query SQL come origine.
Annotazioni
Le tabelle in join non possono includere colonne di tipo MAP. Per decomprimere i valori dalle MAP colonne di tipo, vedere Esplodere elementi annidati da una mappa o una matrice.
Ogni definizione di join include i campi seguenti:
| Campo | Tipo | Description |
|---|---|---|
name |
Stringa | Required. Alias per la tabella o la query SQL unita in join. Usare questo alias quando si fa riferimento a colonne della tabella unita in join in campi o misure. |
source |
Stringa | Required. Nome in tre parti della tabella da unire. Può anche essere una query SQL. |
on |
Stringa | Condizionale. Espressione booleana che definisce la condizione di join. Obbligatorio se using non viene specificato. |
using |
Array | Condizionale. Elenco di nomi di colonna presenti sia nella tabella padre che nella tabella unita in join. Obbligatorio se on non viene specificato. |
cardinality |
Stringa | Optional. Di default è many_to_one. Relazione tra l'origine e la tabella unita in join. Impostare su per one_to_many aggregare una tabella con più righe corrispondenti per riga di origine come origine dei fatti separata. Vedere Join uno-a-molti. |
joins |
Array | Optional. Elenco di definizioni di join annidate per la modellazione dello schema snowflake. Per i requisiti minimi di runtime, vedere Disponibilità delle funzionalità di visualizzazione delle metriche . |
rely |
Map | Optional. Promette il join su cui l'analizzatore può fare affidamento per produrre piani di query più efficienti. Vedi Ottimizzare i join con rely. |
Join dello schema a stella
In uno schema a stella, source è la tabella dei fatti e si collega a una o più tabelle delle dimensioni utilizzando un LEFT OUTER JOIN. Le viste delle metriche si uniscono alle tabelle dei fatti e delle dimensioni necessarie per la query specifica, in base alle colonne selezionate.
Specificare le colonne join usando una ON clausola o una USING clausola :
-
ONclausola: usa un'espressione booleana per definire la condizione di join. -
USINGclausola: elenca le colonne con lo stesso nome sia nella tabella padre che nella tabella unita in join.
Il join deve basarsi su una relazione da molti a uno. In casi di molti a molti, viene selezionata la prima riga corrispondente dalla tabella dimensionale unita tramite join.
version: 1.1
source: samples.tpch.lineitem
joins:
- name: orders
source: samples.tpch.orders
on: source.l_orderkey = orders.o_orderkey
- name: part
source: samples.tpch.part
on: source.l_partkey = part.p_partkey
fields:
- name: Order Status
expr: orders.o_orderstatus
- name: Part Name
expr: part.p_name
measures:
- name: Total Revenue
expr: SUM(l_extendedprice * (1 - l_discount))
- name: Line Item Count
expr: COUNT(1)
Annotazioni
Lo source spazio dei nomi fa riferimento alle colonne dall'origine della vista metrica, mentre un join name fa riferimento alle colonne di tale tabella unita. Ad esempio, in source.l_orderkey = orders.o_orderkey, source fa riferimento a lineitem e orders fa riferimento alla tabella unita in join. Se in una on clausola non viene fornito alcun prefisso, il riferimento viene impostato per impostazione predefinita sulla tabella unita in join.
Join dello schema Snowflake
Uno schema snowflake estende uno schema star normalizzando le tabelle delle dimensioni e collegandole alle sottodimensioni. Verrà creata una struttura di unione a più livelli. Per i requisiti minimi di runtime, vedere Disponibilità delle funzionalità di visualizzazione delle metriche .
Per definire uno schema snowflake, annidare joins all'interno di una definizione di join padre:
version: 1.1
source: 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
fields:
- name: customer_nation
expr: customer.nation.n_name
Join uno-a-molti
Il cardinality campo imposta la relazione tra l'origine e una tabella unita in join. Il valore predefinito, many_to_one, considera la tabella unita come ricerca di dimensioni. Impostare cardinality: one_to_many per considerare la tabella unita in join come origine dei fatti che il motore aggrega in modo indipendente in base alla granularità di origine, che consente a una singola riga di origine di corrispondere a più righe nella tabella unita in join. I join uno-a-molti richiedono Databricks Runtime 18.1 o superiore e la specifica YAML 1.1. Vedere Disponibilità delle funzionalità di visualizzazione delle metriche.
Le regole seguenti si applicano ai join uno-a-molti:
- Una colonna uno-a-molti non può essere usata in una
fieldsdefinizione, perché un campo deve essere risolto in un singolo valore per ogni riga di origine. - Una singola funzione di aggregazione deve fare riferimento alle colonne di un'origine. È possibile applicare aritmetica tra i risultati di aggregazioni separate, ad esempio
count(orders.order_id) / count(*). - Anche tutti i discendenti di un join uno-a-molti devono essere
one_to_many. I join di pari livello superiore possono combinare cardinalità. - Fare riferimento a una colonna in un join annidato con il relativo punto-percorso completo tramite i nomi di join, ad esempio
orders.order_items.item_id.
L'esempio seguente viene unito orders a un'origine customers con in cardinality: one_to_many modo che le misure degli ordini si aggregano senza duplicare le righe del cliente:
version: 1.1
source: main.sales.customers
joins:
- name: orders
source: main.sales.orders
on: orders.customer_id = source.customer_id
cardinality: one_to_many
fields:
- name: customer_name
expr: customer_name
measures:
- name: customer_count
expr: count(*)
- name: order_count
expr: count(orders.order_id)
- name: total_order_revenue
expr: sum(orders.amount)
Per informazioni concettuali ed esempi di join annidati e di pari livello, vedere Cardinalità di join.
Ottimizzare i join con rely
Usare il rely campo in un join per dichiarare garanzie sulla relazione usata dall'analizzatore di query durante la pianificazione delle query. Queste garanzie consentono al motore di pianificare le query in modo più efficiente e ridurre i dati analizzati, soprattutto quando si fa riferimento ai campi della tabella unita in filtri.
La rely mappa supporta i campi seguenti:
| Campo | Tipo | Description |
|---|---|---|
at_most_one_match |
Booleano | Optional. Di default è false. Quando true, dichiara che al massimo una riga della tabella unita a join corrisponde a ogni riga nell'origine (una relazione molti-a-uno che non esegue il fanout). |
Avvertimento
Impostare at_most_one_match: true solo quando il join è molti-a-uno. Questa relazione non viene convalidata in fase di esecuzione. Se più righe nella tabella unita corrispondono a una singola riga di origine, le misure (ad esempio SUM e COUNT) restituiscono risultati non corretti.
Nell'esempio seguente viene abilitato at_most_one_match un join molti-a-uno da orders a customer. Le query che filtrano o raggruppano in base agli attributi dei clienti traggono il massimo vantaggio:
version: 1.1
source: samples.tpch.orders
joins:
- name: customer
source: samples.tpch.customer
on: source.o_custkey = customer.c_custkey
rely:
at_most_one_match: true
fields:
- name: Customer name
expr: customer.c_name
- name: Customer market segment
expr: customer.c_mktsegment
measures:
- name: Total revenue
expr: SUM(o_totalprice)
Campi
Annotazioni
fields e dimensions sono parole chiave equivalenti in una definizione di visualizzazione delle metriche.
fields è il termine preferito e viene usato in questa documentazione. L'editor a basso codice di Esplora cataloghi etichetta queste colonne Campi, ma yaML generato usa la dimensions parola chiave . Le visualizzazioni delle metriche esistenti che usano dimensions continuano a funzionare e entrambe le parole chiave vengono accettate nelle definizioni nuove o aggiornate.
I campi sono colonne di visualizzazione delle metriche usate nelle SELECTclausole , WHEREe GROUP BY in fase di query. Ogni espressione deve restituire un valore scalare. I campi possono fare riferimento a colonne dai dati di origine o dai campi definiti in precedenza nella visualizzazione metrica.
Un campo può essere:
- Colonna categorica o di raggruppamento, ad esempio un'area, uno stato o un reparto.
- Colonna numerica non raggruppata, ad esempio età, prezzo o quantità. I campi numerici possono essere aggregati in fase di query usando funzioni SQL come
SUMoAVG.
Ogni definizione di campo include le proprietà seguenti:
| Property | Tipo | Description |
|---|---|---|
name |
Stringa | Obbligatorio per le espressioni di colonna esplicite. Alias di colonna per il campo. Ometterlo per le espressioni con caratteri jolly, in cui Azure Databricks deriva i nomi dall'origine. Vedere Campi e misure di importazione bulk con caratteri jolly. |
expr |
Stringa | Required. Espressione SQL che può fare riferimento a colonne dai dati di origine o da un campo definito in precedenza. Può essere un carattere jolly per importare tutte le colonne dall'origine o da una tabella unita a join. Vedere Campi e misure di importazione bulk con caratteri jolly. |
comment |
Stringa | Optional. Descrizione del campo. Viene visualizzato in Unity Catalog and documentation tools (Catalogo unity e strumenti di documentazione). |
display_name |
Stringa | Optional. Etichetta visualizzata negli strumenti di visualizzazione. Limitato a 255 caratteri. Richiede la specifica YAML 1.1. Vedere Disponibilità delle funzionalità di visualizzazione delle metriche. |
format |
Map | Optional. Specifica del formato per la modalità di visualizzazione dei valori. Richiede la specifica YAML 1.1. Vedere Specifiche di formato. |
synonyms |
Array | Optional. Nomi alternativi per gli strumenti di intelligenza artificiale e BI per individuare il campo. Fino a 10 sinonimi, ognuno con un massimo di 255 caratteri. Richiede la specifica YAML 1.1. Vedere Sinonimi. |
Avvertimento
I campi di visualizzazione delle metriche simili a stringhe sono sempre STRING, anche quando la colonna di origine è CHAR o VARCHAR. Poiché CHAR(n) la spaziatura interna viene persa, i confronti possono restituire risultati diversi. Ad esempio, column = 'COLLEGE' corrisponde a un CHAR(10) valore nella tabella di origine (spaziata) ma non nel campo di visualizzazione delle metriche.
Example:
fields:
# Basic field
- name: order_date
expr: o_orderdate
comment: 'Date the order was placed'
display_name: 'Order Date'
# Field with SQL expression
- name: order_month
expr: DATE_TRUNC('MONTH', o_orderdate)
display_name: 'Order Month'
# Field with synonyms
- name: order_status
expr: CASE
WHEN o_orderstatus = 'O' THEN 'Open'
WHEN o_orderstatus = 'P' THEN 'Processing'
WHEN o_orderstatus = 'F' THEN 'Fulfilled'
END
display_name: 'Order Status'
synonyms: ['status', 'fulfillment status']
Misure
Le misure sono espressioni che producono risultati senza un livello di aggregazione predeterminato. Devono essere espressi usando funzioni di aggregazione. Per fare riferimento a una misura in una query, usa MEASURE. Le misure possono fare riferimento a colonne di base nei dati di origine, nei campi definiti in precedenza o in misure definite in precedenza.
Ogni definizione di misura include i campi seguenti:
| Campo | Tipo | Description |
|---|---|---|
name |
Stringa | Obbligatorio per le espressioni di misura esplicite. Alias per la misura. Ometterlo per le espressioni con caratteri jolly, in cui Azure Databricks deriva i nomi dall'origine. Vedere Campi e misure di importazione bulk con caratteri jolly. |
expr |
Stringa | Required. Espressione SQL contenente una o più funzioni di aggregazione. Può essere un carattere jolly per importare tutte le misure da un'origine vista metrica. Vedere Campi e misure di importazione bulk con caratteri jolly. |
comment |
Stringa | Optional. Descrizione della misura. Viene visualizzato in Unity Catalog and documentation tools (Catalogo unity e strumenti di documentazione). |
display_name |
Stringa | Optional. Etichetta visualizzata negli strumenti di visualizzazione. Limitato a 255 caratteri. Richiede la specifica YAML 1.1. Vedere Disponibilità delle funzionalità di visualizzazione delle metriche. |
format |
Map | Optional. Specifica del formato per la modalità di visualizzazione dei valori. Richiede la specifica YAML 1.1. Vedere Specifiche di formato. |
synonyms |
Array | Optional. Nomi alternativi per gli strumenti di intelligenza artificiale e BI per individuare la misura. Fino a 10 sinonimi, ognuno con un massimo di 255 caratteri. Richiede la specifica YAML 1.1. Vedere Disponibilità delle funzionalità di visualizzazione delle metriche. |
window |
Array | Optional. Specifiche delle finestre per le aggregazioni finestrate, cumulative o semiadditive. Se non specificato, la misura si comporta come un'aggregazione standard. Vedi Dimensioni della finestra. |
Vedere Funzioni di aggregazione per un elenco di funzioni di aggregazione.
Example:
measures:
# Simple count measure
- name: order_count
expr: COUNT(1)
display_name: 'Order Count'
# Sum aggregation measure with synonyms
- name: total_revenue
expr: SUM(o_totalprice)
comment: 'Gross revenue from all orders'
display_name: 'Total Revenue'
synonyms: ['revenue', 'total sales']
# Distinct count measure
- name: unique_customers
expr: COUNT(DISTINCT o_custkey)
display_name: 'Unique Customers'
# Calculated measure combining multiple aggregations
- name: avg_order_value
expr: SUM(o_totalprice) / COUNT(DISTINCT o_orderkey)
display_name: 'Avg Order Value'
synonyms: ['AOV', 'average order']
# Filtered measure with WHERE condition
- name: open_order_revenue
expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'O')
display_name: 'Open Order Revenue'
synonyms: ['backlog', 'outstanding revenue']
Importa in blocco campi e misure con caratteri jolly
Si applica a: Databricks Runtime 18.2 e versioni successive con la specifica YAML 1.1
In una fields definizione o measures è possibile usare un carattere jolly (*) nel expr campo per importare tutte le colonne dall'origine o da una tabella unita senza elencarne ognuna. Ciò è utile quando si vuole che una visualizzazione metrica esponga ogni colonna da un asset upstream, simile a SELECT * in una visualizzazione standard. Azure Databricks espande il carattere jolly alle colonne concrete quando si crea o si sostituisce la vista metrica e deriva ogni nome di colonna dal nome della colonna di origine.
Analogamente alle definizioni di colonna esplicite, le espressioni con caratteri jolly vengono espanse quando si crea la visualizzazione delle metriche. Per recuperare le colonne aggiunte all'origine in un secondo momento, ricreare la visualizzazione delle metriche con CREATE OR REPLACE o ALTER.
I caratteri jolly supportano i formati seguenti:
| Sintassi | Description |
|---|---|
source.* |
Importare tutte le colonne dall'origine della vista metrica. |
<join>.* |
Importare tutte le colonne da una tabella unita a cui fa riferimento il nome del join. I join annidati usano il punto-percorso completo, ad esempio customer.nation.*. |
<target>.* EXCEPT (col1, col2, ...) |
Importare tutte le colonne dalla destinazione ad eccezione di quelle elencate. |
<target>.<struct>.* |
Espandere i campi di una STRUCT colonna in colonne separate. |
Le regole seguenti si applicano alle espressioni con caratteri jolly:
- Omettere il
namecampo. Azure Databricks deriva i nomi di colonna dall'origine, pertantonamenon è consentito in un'espressione con caratteri jolly. - I metadati semantici non sono consentiti in un'espressione con caratteri jolly. Non impostare
comment,display_name,formatosynonymssu un carattere jolly. Per aggiungere metadati a una colonna specifica, escluderlo dal carattere jolly conEXCEPTe definirlo in modo esplicito. - In una
measuresdefinizione, un carattere jolly importa le misure solo da un'origine vista metrica. Le tabelle di base non dispongono di misure, pertanto un carattere jolly si espande fino a nessuna misura quando l'origine è una tabella di base. - Non è possibile fare riferimento a una colonna importata con caratteri jolly in base al nome derivato in un'espressione o
fieldssuccessivameasures. Fare riferimento alla colonna di origine con il percorso completo.
Risolvere i conflitti di nomi
Quando si importano colonne da più di un'origine con un carattere jolly, le colonne che condividono un nome (ad esempio id o date) si scontrano e generano un errore quando si salva la definizione. Per risolvere un conflitto, escludere la colonna da ogni carattere jolly con EXCEPT, quindi definirla in modo esplicito con un nome univoco:
fields:
- expr: source.* EXCEPT (id)
- expr: customer.* EXCEPT (id)
- name: source_id
expr: source.id
- name: customer_id
expr: customer.id
Esempio di caratteri jolly
La definizione seguente importa tutte le colonne dall'origine e da una tabella unita a join, esclude due colonne e definisce una colonna in modo esplicito per aggiungere metadati:
version: 1.1
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
fields:
# Import all columns from the source
- expr: source.*
# Import all columns from a joined table, excluding two
- expr: customer.nation.* EXCEPT (n_name, n_comment)
# Define a specific column explicitly to add metadata
- name: nation_name
expr: customer.nation.n_name
comment: "Customer's nation"
display_name: 'Nation Name'
Misure della finestra
Importante
Questa funzionalità è Sperimentale.
Il window campo definisce aggregazioni finestrate, cumulative o semiadditive per le misure. Per informazioni dettagliate sulle misure finestra e sui casi d'uso, vedere Misure finestra.
Ogni specifica della finestra include i campi seguenti:
| Campo | Tipo | Description |
|---|---|---|
order |
Stringa | Required. Campo che determina l'ordinamento della finestra. (1) |
range |
Stringa | Required. Extent della finestra. Vedere Valori supportatirange. |
semiadditive |
Stringa | Required. Metodo di aggregazione. Valori supportati: first o last. |
offset |
Stringa | Optional. Richiede la specifica Databricks Runtime 18.1 e YAML versione 1.1 o successiva. Sposta la cornice della finestra indietro o avanti lungo il order campo in base a un intervallo fisso. Il valore è del formato <n> <period>, dove n è un intero con segno (negativo sembra indietro, positivo sembra in avanti) ed period è uno di day, days, monthmonths, , yearo years. Esempi: -12 month, 1 year, -3 days, 7 day. Il order campo deve essere una colonna data o timestamp.
offset non ha alcun effetto su range: all. Se il frame spostato non rientra nei dati disponibili, la misura restituisce NULL. Per esempi di utilizzo e di lavoro, vedere Come offset sposta la cornice della finestra. |
(1) Il campo a cui si fa riferimento deve essere deterministico. Espressioni non deterministiche, ad rand()esempio , uuid()o current_timestamp() producono un ordinamento imprevedibile delle finestre e possono causare risultati di aggregazione non corretti.
Valori di range supportati
-
current: righe in cui il valore di ordinamento della finestra è uguale al valore della riga di ancoraggio. -
cumulative: tutte le righe in cui il valore di ordinamento della finestra è minore o uguale al valore della riga di ancoraggio. -
trailing <value> <unit> [inclusive | exclusive]: righe dalla riga di ancoraggio che passano all'indietro in base alle unità di tempo specificate, ad esempiotrailing 7 day. Il modificatore oinclusivefacoltativoexclusiverichiede Databricks Runtime 18.1 e la specifica YAML versione 1.1 o successiva e controlla se la riga di ancoraggio è inclusa nella finestra. Il valore predefinito èexclusive. Vedere Includere o escludere la riga di ancoraggio. -
leading <value> <unit> [inclusive | exclusive]: righe dalla riga di ancoraggio in avanti in base alle unità di tempo specificate, ad esempioleading 3 month. Il modificatore oinclusivefacoltativoexclusiverichiede Databricks Runtime 18.1 e la specifica YAML versione 1.1 o successiva e controlla se la riga di ancoraggio è inclusa nella finestra. Il valore predefinito èexclusive. Vedere Includere o escludere la riga di ancoraggio. -
all: tutte le righe indipendentemente dal valore di ordinamento della finestra.
Esempio di misura finestra
L'esempio seguente calcola un conteggio di 7 giorni di clienti univoci:
version: 1.1
source: samples.tpch.orders
fields:
- name: order_date
expr: o_orderdate
measures:
- name: rolling_7day_customers
expr: COUNT(DISTINCT o_custkey)
display_name: '7-Day Rolling Customers'
window:
- order: order_date
range: trailing 7 day
semiadditive: last
Materializzazione
Importante
Questa funzionalità è in Anteprima Pubblica.
Il materialization campo configura l'accelerazione automatica delle query usando viste materializzate. Per informazioni dettagliate sul funzionamento della materializzazione, sui requisiti e sulle procedure consigliate, vedere Materializzazione per le visualizzazioni delle metriche.
Annotazioni
Non è possibile materializzare una visualizzazione metrica che definisce i parametri.
Il materialization campo include i campi di primo livello seguenti:
| Campo | Tipo | Description |
|---|---|---|
schedule |
Stringa | Optional. Pianificazione dell'aggiornamento. Usa la stessa sintassi della clausola schedule nelle viste materializzate. Se omesso, le materializzazioni vengono aggiornate solo manualmente. La clausola TRIGGER ON UPDATE non è supportata. |
mode |
Stringa | Required. Deve essere impostato su relaxed. |
materialized_views |
Array | Required. Elenco di viste materializzate da materializzare. Ogni voce richiede i campi descritti di seguito. |
Ogni voce in materialized_views include i campi seguenti:
| Campo | Tipo | Description |
|---|---|---|
name |
Stringa | Required. Nome della materializzazione. |
type |
Stringa | Required. Tipo di materializzazione. Valori supportati: aggregated (richiede dimensions, measureso entrambi) o unaggregated. |
dimensions |
Array | Condizionale. Elenco di nomi di campo da materializzare. Obbligatorio se type è aggregated e non measures sono specificati. |
measures |
Array | Condizionale. Elenco dei nomi delle misure da materializzare. Obbligatorio se type è aggregated e non dimensions sono specificati. |
cluster_by |
oggetto | Optional. Colonne di clustering per la materializzazione, equivalenti alla CLUSTER BY clausola in una vista materializzata. Specificare cols con un elenco di nomi di colonna o impostare auto: true per consentire a Databricks di scegliere automaticamente le colonne di clustering. |
partition_by |
Array | Optional. Elenco di colonne per partizionare la materializzazione in base alla PARTITION BY clausola in una vista materializzata. |
Annotazioni
Il blocco di materializzazione usa la dimensions: parola chiave anziché fields:. Usare dimensions: quando si elencano i campi per materializzare, anche se la definizione di primo livello usa fields:.
Esempio di materializzazione
L'esempio seguente definisce una visualizzazione delle metriche con più materializzazioni:
version: 1.1
source: samples.tpch.orders
fields:
- name: order_date
expr: o_orderdate
- name: order_status
expr: o_orderstatus
measures:
- name: total_revenue
expr: SUM(o_totalprice)
- name: order_count
expr: COUNT(1)
materialization:
schedule: every 6 hours
mode: relaxed
materialized_views:
- name: baseline
type: unaggregated
- name: daily_status_metrics
type: aggregated
dimensions:
- order_date
- order_status
measures:
- total_revenue
- order_count
cluster_by:
cols:
- order_date
- order_status
partition_by:
- order_date
Riferimenti ai nomi di colonna
Quando si fa riferimento ai nomi di colonna che contengono spazi o caratteri speciali nelle espressioni YAML, racchiudere il nome della colonna in backticks. Se l'espressione inizia con un backtick e viene usata direttamente come valore YAML, racchiudi l'intera espressione tra virgolette doppie. I valori YAML validi non possono iniziare con un backtick.
Esempi di formattazione
Usare gli esempi seguenti per informazioni su come formattare correttamente YAML in scenari comuni.
Fare riferimento a un nome di colonna
Negli esempi seguenti viene illustrato come formattare i riferimenti alle colonne in base ai caratteri che contengono.
Nessuno spazio
Colonna di origine: revenue
expr: "revenue"
expr: 'revenue'
expr: revenue
Usare virgolette doppie, virgolette singole o senza virgolette intorno al nome della colonna.
Nome colonna con spazi
Colonna di origine: `First Name`
expr: '`First Name`'
Usare i backtick per gli spazi di escape. Racchiudere l'intera espressione tra virgolette doppie.
Nomi di colonna con spazi in un'espressione SQL
Colonne di origine: `First Name`, `Last Name`
expr: CONCAT(`First Name`, ' ', `Last Name`)
Se l'espressione non inizia con un backtick, le virgolette doppie non sono obbligatorie.
Nome di colonna contenente virgolette
Colonna di origine: "name"
expr: '`"name"`'
Usare i backtick per eseguire l'escape delle virgolette doppie nel nome della colonna. Racchiudere l'espressione tra virgolette singole.
Espressioni con due punti
expr: "CASE WHEN `Customer Tier` = 'Enterprise: Premium' THEN 1 ELSE 0 END"
Annotazioni
YAML interpreta i due punti non virgolettati come separatori di chiave-valore. Usare sempre virgolette doppie per le espressioni che includono i due punti.
Espressioni a più righe
expr: |
CASE WHEN
revenue > 100 THEN 'High'
ELSE 'Low'
END
Annotazioni
Usare il | blocco scalare dopo expr: per le espressioni su più righe. Tutte le righe devono essere rientrate almeno di due spazi oltre il delimitatore expr per una corretta analisi.
Eseguire l'aggiornamento a YAML 1.1
L'aggiornamento di una visualizzazione delle metriche alla specifica YAML versione 1.1 richiede attenzione, perché i commenti vengono gestiti in modo diverso rispetto alle versioni precedenti.
Tipi di commenti
-
Commenti YAML (
#): commenti inline o a riga singola scritti direttamente nel file YAML. - Commenti del catalogo Unity: commenti archiviati in Unity Catalog per la visualizzazione delle metriche o le relative colonne. Questi elementi sono separati dai commenti YAML.
Considerazioni sull'aggiornamento
Selezionare il percorso di aggiornamento corrispondente alla modalità di gestione dei commenti nella visualizzazione delle metriche.
Opzione 1: Mantenere i commenti YAML usando notebook o l'editor SQL
Se la visualizzazione delle metriche contiene commenti YAML (#) da mantenere, seguire questa procedura:
- Usare il
ALTER VIEWcomando in un notebook o in un editor SQL. - Copiare la definizione YAML originale nella
$$..$$sezione dopoAS. Modificare il valore diversionin1.1. - Salvare la visualizzazione delle metriche.
ALTER VIEW metric_view_name AS
$$
# The notebook preserves inline comments
version: 1.1
source: samples.tpch.orders
fields:
- name: order_date # The notebook preserves inline comments
expr: o_orderdate
measures:
# The notebook preserves commented out definitions
# - name: total_orders
# expr: COUNT(o_orderid)
- name: total_revenue
expr: SUM(o_totalprice)
$$
Avvertimento
L'esecuzione ALTER VIEW rimuove i commenti del catalogo Unity, a meno che non siano inclusi in modo esplicito nei comment campi della definizione YAML. Per mantenere i commenti visualizzati nel catalogo unity, vedere Opzione 2.
Opzione 2: Mantenere i commenti del catalogo Unity
Annotazioni
Le indicazioni seguenti si applicano solo quando si usa il ALTER VIEW comando in un notebook o in un editor SQL. Se si aggiorna la visualizzazione delle metriche alla versione 1.1 usando l'interfaccia utente dell'editor YAML, l'interfaccia utente dell'editor YAML mantiene automaticamente i commenti del catalogo Unity.
- Copiare tutti i commenti del catalogo Unity nei campi appropriati
commentnella definizione YAML. Modificare il valore diversionin1.1. - Salvare la visualizzazione delle metriche.
ALTER VIEW metric_view_name AS
$$
version: 1.1
source: samples.tpch.orders
comment: "Metric view of order (Updated comment)"
fields:
- name: order_date
expr: o_orderdate
comment: "Date of order - Copied from Unity Catalog"
measures:
- name: total_revenue
expr: SUM(o_totalprice)
comment: "Total revenue"
$$
Per la cronologia delle versioni delle specifiche YAML e i requisiti minimi di runtime per ogni funzionalità, vedere Disponibilità delle funzionalità di visualizzazione delle metriche.