Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Definice zobrazení metrik používají standardní syntaxi YAML k deklaraci zdroje, spojení, polí, měr, filtrů, měr oken a materializace. V následujících částech najdete kompletní gramatiku pro každou z nich.
Minimální požadavky na verzi modulu runtime a specifikace YAML pro každou funkci najdete v tématu Dostupnost funkcí zobrazení metrik.
Další informace o specifikacích YAML najdete v dokumentaci ke specifikaci YAML 1.2.2 .
Úprava YAML v editoru zobrazení metrik
YAML popsané na této stránce můžete napsat a upravit přímo v editoru zobrazení metrik. V Průzkumníku katalogu otevřete zobrazení metriky a kliknutím na <> tlačítko upravte definici. Pokud chcete místo toho vygenerovat YAML z popisu přirozeného jazyka, otevřete Kód Genie z editoru. Úplný názorný postup editoru najdete v tématu Vytvoření zobrazení metriky.
Pole YAML nejvyšší úrovně
Definice YAML pro zobrazení metrik obsahuje následující pole nejvyšší úrovně:
| Pole | Typ | Description |
|---|---|---|
version |
String | Required. Verze specifikace YAML zobrazení metriky, kterou definice používá, například 1.1. Toto je verze formátu specifikace, nikoli číslo revize, které přiřadíte k vlastní definici. Použijte jednu z podporovaných verzí specifikace. Viz verze specifikace YAML. |
comment |
String | Optional. Popis zobrazení metriky |
source |
String | Required. Zdrojová data pro zobrazení metriky. Může to být jakýkoli prostředek katalogu Unity, včetně zobrazení metrik nebo dotazu SQL. Viz zdroj. |
parameters |
Pole | Optional. Pojmenované hodnoty, které volající předávají, když se dotazují na zobrazení metriky jako funkce s hodnotou tabulky. Viz parametry. |
filter |
String | Optional. Logický výraz SQL, který se vztahuje na všechny dotazy. Viz Filtr. |
joins |
Pole | Optional. Hvězdicové schéma a spojení schématu snowflake Viz Spojení. |
fields |
Pole | Podmíněný. Definice polí včetně názvů, výrazů a volitelných sémantických metadat Vyžaduje se, pokud nejsou zadány žádné measures . Viz pole. Klíčové dimensions slovo je přijato jako synonymum pro zpětnou kompatibilitu. |
measures |
Pole | Podmíněný. Definice měr, včetně názvů, agregačního výrazu a volitelných sémantických metadat. Vyžaduje se, pokud nejsou zadány žádné fields . Viz Míry. |
materialization |
Objekt | Optional. Konfigurace pro urychlení dotazů s materializovanými zobrazeními Zahrnuje plán aktualizace a materializované definice zobrazení. Viz Materializace. |
Zdroj
Pole source určuje zdroj dat pro zobrazení metriky. Mezi podporované zdroje patří tabulky, zobrazení, zobrazení metrik a dotazy SQL. Možnosti kompilace se vztahují na zobrazení metrik. Při použití zobrazení metriky jako zdroje můžete odkazovat na jeho pole a míry v novém zobrazení metriky. Viz Možnosti kompilace.
Zdroj prostředků podobný tabulce
Odkazujte na prostředek podobný tabulce pomocí názvu třídílné části:
source: catalog.schema.source_table
Zdroj dotazů SQL
Pokud chcete použít dotaz SQL, napište text dotazu přímo do YAML:
source: SELECT * FROM samples.tpch.orders o
LEFT JOIN samples.tpch.customer c
ON o.o_custkey = c.c_custkey
Note
Při použití dotazu SQL jako zdroje s JOIN klauzulí nastavte omezení primárního a cizího klíče u podkladových tabulek a použijte RELY možnost pro optimální výkon dotazů. Další informace naleznete v tématu Deklarování primárního klíče, cizího klíče a jedinečných omezení aoptimalizace dotazů pomocí primárního klíče a jedinečných omezení.
Parameters
Blok parameters definuje pojmenované hodnoty, které volající předávají při dotazování na zobrazení metriky jako funkci s hodnotou tabulky. Informace o tom, kdy a jak používat parametry, včetně dotazování parametrizovaného zobrazení metrik, najdete v tématu Použití parametrů se zobrazeními metrik.
Každá definice parametru obsahuje následující pole:
| Pole | Typ | Description |
|---|---|---|
name |
String | Required. Název parametru. Odkazujte na parametr podle tohoto názvu ve výrazech polí a měr a při dotazování na zobrazení metrik ho předejte jako pojmenovaný argument. |
data_type |
String | Required. Datový typ SQL parametru, například double, int, stringnebo date. |
default |
Varies | Optional. Hodnota použitá v případech, kdy volající nepředá parametr. Výchozí hodnota musí být přetypovaná na a nemůže odkazovat data_typena jiný parametr nebo obsahovat poddotaz. Pokud nastavíte výchozí hodnotu pro jeden parametr, musí mít každý následující parametr také výchozí hodnotu. |
Následující příklad definuje discount parametr a odkazuje na něj ve výrazu míry:
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
Filtr v definici YAML se vztahuje na všechny dotazy, které odkazují na zobrazení metriky. Zapisujte filtry jako logické výrazy 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
Spojení v zobrazeních metrik podporují přímá spojení z tabulky faktů do tabulek dimenzí (hvězdicové schéma) a vícestupňová spojení napříč normalizovanými tabulkami dimenzí (sněhové vločkové schéma). Můžete se také připojit k dotazu SQL pomocí SELECT příkazu. Viz Použití dotazu SQL jako zdroje.
Note
Spojené tabulky nemohou obsahovat sloupce typu MAP. Pokud chcete rozbalit hodnoty ze MAP sloupců typu, přečtěte si článek Rozložené vnořené prvky z mapy nebo pole.
Každá definice spojení obsahuje následující pole:
| Pole | Typ | Description |
|---|---|---|
name |
String | Required. Alias pro připojenou tabulku nebo dotaz SQL Tento alias použijte při odkazování na sloupce z spojené tabulky v polích nebo mírách. |
source |
String | Required. Třídílný název tabulky, která se má spojit. Může to být také dotaz SQL. |
on |
String | Podmíněný. Logický výraz definující podmínku spojení Povinné, pokud using není zadáno. |
using |
Pole | Podmíněný. Seznam názvů sloupců, které jsou přítomné v nadřazené tabulce i ve spojené tabulce Povinné, pokud on není zadáno. |
cardinality |
String | Optional. Výchozí hodnota je many_to_one. Relace mezi zdrojem a propojenou tabulkou. Nastaví se tak, aby one_to_many agregovala tabulku s více odpovídajícími řádky na zdrojový řádek jako samostatný zdroj faktů. Podívejte se na spojení 1:N. |
joins |
Pole | Optional. Seznam definic vnořených spojení pro modelování schémat snowflake. Informace o minimálních požadavcích na modul runtime najdete v tématu Dostupnost funkcí zobrazení metrik . |
rely |
Map | Optional. Přísliby o spojení, které analyzátor může spoléhat na vytváření efektivnějších plánů dotazů. Vizte optimalizaci spojení pomocí rely. |
Hvězdicové spojení schématu
Ve hvězdicovém schématu source je tabulka faktů a spojuje se s jednou nebo více tabulkami dimenzí pomocí .LEFT OUTER JOIN Zobrazení metrik spojují tabulky faktů a dimenzí potřebných pro konkrétní dotaz na základě vybraných sloupců.
Určete sloupce spojení pomocí ON klauzule nebo USING klauzule:
-
ONklauzule: Pomocí logického výrazu definuje podmínku join. -
USINGklauzule: Vypíše sloupce se stejným názvem v nadřazené tabulce i ve spojené tabulce.
Spojení musí následovat po relaci M:1. V případech M:N je vybrán první odpovídající řádek z tabulky spojených dimenzí.
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)
Note
Obor source názvů odkazuje na sloupce ze zdroje zobrazení metrik, zatímco spojení name odkazuje na sloupce z této spojené tabulky. Například v source.l_orderkey = orders.o_orderkey, source odkazuje na lineitem a orders odkazuje na připojenou tabulku. Pokud v on klauzuli není k dispozici žádná předpona, použije se odkaz na propojenou tabulku.
Spojení schématu Snowflake
Schéma snowflake rozšiřuje hvězdicové schéma normalizací tabulek dimenzí a jejich propojením s dílčími dimenzemi. Tím se vytvoří struktura spojení s více úrovněmi. Informace o minimálních požadavcích na modul runtime najdete v tématu Dostupnost funkcí zobrazení metrik .
Pokud chcete definovat schéma snowflake, vnořte joins do definice nadřazeného spojení:
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
Spojení 1:N
Pole cardinality nastaví relaci mezi zdrojem a propojenou tabulkou. Ve výchozím nastavení many_to_onezachází s připojenou tabulkou jako s vyhledáváním dimenzí. Nastaví cardinality: one_to_many se tak, aby propojená tabulka byla považována za zdroj faktů, který modul agreguje nezávisle na zdrojovém agregačním agregačním intervalu, což umožňuje, aby jeden zdrojový řádek odpovídal více řádkům ve spojené tabulce. Připojení 1:N vyžadují Databricks Runtime 18.1 nebo novější a specifikaci YAML verze 1.1. Viz dostupnost funkcí zobrazení metriky.
Následující pravidla platí pro spojení 1:N:
- Sloupec 1:N nelze použít v
fieldsdefinici, protože pole se musí přeložit na jednu hodnotu na zdrojový řádek. - Jedna agregační funkce musí odkazovat na sloupce z jednoho zdroje. Aritmetika můžete použít u výsledků samostatných agregací, například
count(orders.order_id) / count(*). - Všechny potomky spojení 1:N musí být
one_to_manytaké . Spojení na stejné úrovni na stejné úrovni můžou kombinovat kardinality. - Odkazování na sloupec ve vnořeném spojení s úplnou tečkou přes názvy spojení, například
orders.order_items.item_id.
Následující příklad se připojí orders ke zdroji customers , cardinality: one_to_many aby se míry objednávek agregují bez duplikování řádků zákazníka:
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)
Koncepční podrobnosti a vnořené a stejné příklady spojení najdete v tématu Kardinalita spojení.
Optimalizace spojení s využitím rely
rely Pomocí pole ve spojení deklarujte záruky vztahu, který analyzátor dotazů používá při plánování dotazů. Tyto záruky umožňují modulu efektivněji plánovat dotazy a snižovat kontroly dat, zejména pokud jsou pole z připojené tabulky odkazována ve filtrech.
Mapa rely podporuje následující pole:
| Pole | Typ | Description |
|---|---|---|
at_most_one_match |
logický | Optional. Výchozí hodnota je false. Když true, deklaruje, že maximálně jeden řádek ve spojené tabulce odpovídá každému řádku ve zdroji (relace M:1, která se nerozdýchá). |
Warning
Nastaví at_most_one_match: true se jenom v případech, kdy je spojení M:1. Tato relace není ověřena za běhu. Pokud se několik řádků ve spojené tabulce shoduje s jedním zdrojovým řádkem, vrátí míry (například SUM a COUNT) nesprávné výsledky.
Následující příklad umožňuje at_most_one_match spojení M:1 z orders do customer. Dotazy, které filtrují nebo seskupují podle atributů zákazníka, mají největší výhody:
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)
Pole
Note
fields a dimensions jsou ekvivalentními klíčovými slovy v definici zobrazení metriky.
fields je upřednostňovaný termín a používá se v celé této dokumentaci. Editor katalogu s nízkým kódem označuje tyto sloupce Pole, ale YAML, který generuje, používá dimensions klíčové slovo. Existující zobrazení metrik, která používají dimensions nadále pracovat, a obě klíčová slova jsou přijata v nových nebo aktualizovaných definicích.
Pole jsou sloupce zobrazení metrik používané v SELECTWHERE, a GROUP BY klauzule v době dotazu. Každý výraz musí vrátit skalární hodnotu. Pole můžou odkazovat na sloupce ze zdrojových dat nebo dříve definovaných polí v zobrazení metrik.
Pole může být buď:
- Sloupec kategorií nebo seskupení, například oblast, stav nebo oddělení.
- Neagregovaný číselný sloupec, například věk, cena nebo množství Číselná pole lze agregovat v době dotazu pomocí funkcí SQL, jako
SUMjsou například .AVG
Každá definice pole obsahuje následující vlastnosti:
| Property | Typ | Description |
|---|---|---|
name |
String | Vyžaduje se pro explicitní výrazy sloupců. Alias sloupce pro dané pole Vynecháte ho pro výrazy se zástupnými cardy, kde Azure Databricks odvozuje názvy ze zdroje. Viz Pole a míry hromadného importu se zástupnými cardy. |
expr |
String | Required. Výraz SQL, který může odkazovat na sloupce ze zdrojových dat nebo dříve definovaného pole. Může to být zástupný znak pro import všech sloupců ze zdroje nebo spojené tabulky. Viz Pole a míry hromadného importu se zástupnými cardy. |
comment |
String | Optional. Popis pole. Zobrazí se v katalogu Unity a v nástrojích dokumentace. |
display_name |
String | Optional. Popisek, který se zobrazí v nástrojích vizualizace Omezeno na 255 znaků. Vyžaduje specifikaci YAML 1.1. Viz dostupnost funkcí zobrazení metriky. |
format |
Map | Optional. Specifikace formátu pro zobrazení hodnot Vyžaduje specifikaci YAML 1.1. Viz specifikace formátu. |
synonyms |
Pole | Optional. Alternativní názvy nástrojů AI a BI ke zjištění pole Maximálně 10 synonym, z nichž každý má maximálně 255 znaků. Vyžaduje specifikaci YAML 1.1. Viz synonyma. |
Warning
Pole zobrazení metrik podobné řetězcům jsou vždy STRING, i když je CHAR zdrojový sloupec nebo VARCHAR. Vzhledem ke CHAR(n) ztrátě odsazení mezer může porovnání vrátit různé výsledky. Například column = 'COLLEGE' odpovídá CHAR(10) hodnotě ve zdrojové tabulce (která je vložena mezerou), ale ne v poli zobrazení metriky.
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']
Opatření
Míry jsou výrazy, které vytvářejí výsledky bez předem určené úrovně agregace. Musí být vyjádřeny pomocí agregačních funkcí. K odkazování na míru v dotazu použijte MEASURE funkci. Míry můžou odkazovat na základní sloupce ve zdrojových datech, dříve definovaných polích nebo dříve definovaných mírách.
Každá definice míry obsahuje následující pole:
| Pole | Typ | Description |
|---|---|---|
name |
String | Vyžadováno pro explicitní výrazy měr. Alias míry. Vynecháte ho pro výrazy se zástupnými cardy, kde Azure Databricks odvozuje názvy ze zdroje. Viz Pole a míry hromadného importu se zástupnými cardy. |
expr |
String | Required. Výraz SQL obsahující jednu nebo více agregačních funkcí. Může to být zástupný znak pro import všech měr ze zdroje zobrazení metriky. Viz Pole a míry hromadného importu se zástupnými cardy. |
comment |
String | Optional. Popis opatření Zobrazí se v katalogu Unity a v nástrojích dokumentace. |
display_name |
String | Optional. Popisek, který se zobrazí v nástrojích vizualizace Omezeno na 255 znaků. Vyžaduje specifikaci YAML 1.1. Viz dostupnost funkcí zobrazení metriky. |
format |
Map | Optional. Specifikace formátu pro zobrazení hodnot Vyžaduje specifikaci YAML 1.1. Viz specifikace formátu. |
synonyms |
Pole | Optional. Alternativní názvy nástrojů AI a BI ke zjištění míry Maximálně 10 synonym, z nichž každý má maximálně 255 znaků. Vyžaduje specifikaci YAML 1.1. Viz dostupnost funkcí zobrazení metriky. |
window |
Pole | Optional. Specifikace oken pro agregace s okny, kumulativními nebo středníky Pokud nezadáte, míra se chová jako standardní agregace. Viz rozměry okna. |
Seznam agregačních funkcí najdete v části Agregační funkce .
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']
Hromadný import polí a měr se zástupnými cardy
Platí pro: Databricks Runtime 18.2 a novější se specifikací YAML 1.1
fields V nějaké nebo measures definici můžete použít zástupný znak (*) v expr poli k importu všech sloupců ze zdroje nebo spojené tabulky bez výpisu jednotlivých sloupců. To je užitečné, když chcete, aby zobrazení metrik zpřístupnilo každý sloupec z nadřazeného prostředku, podobně jako SELECT * ve standardním zobrazení. Azure Databricks při vytváření nebo nahrazení zobrazení metrik rozšíří zástupný znak na konkrétní sloupce a odvozuje názvy jednotlivých sloupců ze zdrojového sloupce.
Podobně jako explicitní definice sloupců se výrazy se zástupnými cardy při vytváření zobrazení metrik rozbalí. Pokud chcete později vyzvednout sloupce přidané do zdroje, znovu vytvořte zobrazení metriky pomocí CREATE OR REPLACE nebo ALTER.
Zástupné podoby podporují následující formuláře:
| Syntax | Description |
|---|---|
source.* |
Importujte všechny sloupce ze zdroje zobrazení metriky. |
<join>.* |
Importujte všechny sloupce z připojené tabulky, na které odkazuje jeho název spojení. Vnořené spojení používají úplnou tečkovou cestu, například customer.nation.*. |
<target>.* EXCEPT (col1, col2, ...) |
Importujte všechny sloupce z cíle s výjimkou uvedených sloupců. |
<target>.<struct>.* |
Rozbalte pole sloupce do samostatných STRUCT sloupců. |
Následující pravidla platí pro výrazy se zástupnými cardy:
- Pole vynecháte
name. Azure Databricks odvozuje názvy sloupců ze zdroje, takženameve výrazu se zástupnými znaky není povoleno. - Sémantická metadata nejsou povolena pro výraz se zástupným znakem. Nenastavujte
comment,display_name,formatanisynonymsna zástupný znak. Pokud chcete přidat metadata do konkrétního sloupce, vylučte je ze zástupného znakuEXCEPTa definujte je explicitně. -
measuresV definici importuje zástupné kóty pouze ze zdroje zobrazení metriky. Základní tabulky nemají žádné míry, takže zástupný znak se rozbalí na žádné míry, pokud je zdrojem základní tabulka. - Nelze odkazovat na sloupec importovaný zástupným znakem podle jeho odvozeného názvu v pozdějším
fieldsnebomeasuresvýrazu. Místo toho odkazujte na zdrojový sloupec s jeho úplnou cestou.
Řešení kolizí názvů
Když importujete sloupce z více než jednoho zdroje se zástupným znakem, sloupce sdílející název (například id nebo date) koliduje a při uložení definice způsobí chybu. Pokud chcete vyřešit kolize, vyloučte sloupec z každého zástupného znaku a EXCEPTpak ho definujte explicitně jedinečným názvem:
fields:
- expr: source.* EXCEPT (id)
- expr: customer.* EXCEPT (id)
- name: source_id
expr: source.id
- name: customer_id
expr: customer.id
Příklad se zástupnými znaky
Následující definice importuje všechny sloupce ze zdroje a z spojené tabulky, vyloučí dva sloupce a definuje jeden sloupec explicitně pro přidání metadat:
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'
Rozměry oken
Důležité
Tato funkce je experimentální.
Pole window definuje agregace s okny, kumulativními nebo středníky pro míry. Podrobné informace o mírách oken a případech použití najdete v tématu Míry okna.
Každá specifikace okna obsahuje následující pole:
| Pole | Typ | Description |
|---|---|---|
order |
String | Required. Pole, které určuje pořadí okna. (1) |
range |
String | Required. Rozsah okna. Viz Podporované range hodnoty. |
semiadditive |
String | Required. Metoda agregace Podporované hodnoty: first nebo last. |
offset |
String | Optional. Vyžaduje Databricks Runtime 18.1 a specifikaci YAML verze 1.1 nebo vyšší. Posune rámeček okna dopředu nebo dozadu podél order pole o pevný interval. Hodnota je ve formuláři <n> <period>, kde n je celé číslo se signem (záporné pohledy dozadu, kladné pohledy dopředu) a period je jedním z day, , days, month, months, yearnebo years. Příklady: -12 month, 1 year, -3 days, 7 day. Pole order musí být sloupec data nebo časového razítka.
offset nemá žádný vliv na range: all. Pokud posunutý rámec spadá mimo dostupná data, míra se vyhodnotí jako NULL. Informace o použití a pracných příkladech najdete v tématu Jak offset se posune rámec okna. |
(1) Odkazované pole musí být deterministické. Nedeterministické výrazy, jako rand()je například , uuid()nebo current_timestamp() vytvářejí nepředvídatelné řazení oken a můžou vést k nesprávným výsledkům agregace.
Podporované range hodnoty
-
current: Řádky, ve kterých se hodnota pořadí oken rovná hodnotě řádku ukotvení. -
cumulative: Všechny řádky, ve kterých je hodnota pořadí oken menší nebo rovna hodnotě řádku ukotvení. -
trailing <value> <unit> [inclusive | exclusive]: Řádky z řádku ukotvení se posunou dozadu podle zadaných časových jednotek, napříkladtrailing 7 day.inclusiveVolitelný neboexclusivemodifikátor vyžaduje Databricks Runtime 18.1 a specifikaci YAML verze 1.1 nebo vyšší a určuje, jestli je řádek ukotvení součástí okna. Výchozí hodnota jeexclusive. Viz Zahrnutí nebo vyloučení ukotveného řádku. -
leading <value> <unit> [inclusive | exclusive]: Řádky z řádku ukotvení, které se budou blížit zadanými časovými jednotkami, napříkladleading 3 month.inclusiveVolitelný neboexclusivemodifikátor vyžaduje Databricks Runtime 18.1 a specifikaci YAML verze 1.1 nebo vyšší a určuje, jestli je řádek ukotvení součástí okna. Výchozí hodnota jeexclusive. Viz Zahrnutí nebo vyloučení ukotveného řádku. -
all: Všechny řádky bez ohledu na hodnotu pořadí oken.
Příklad míry okna
Následující příklad vypočítá průběžný 7denní počet jedinečných zákazníků:
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
Zhmotnění
Důležité
Tato funkce je ve verzi Public Preview.
Pole materialization konfiguruje automatickou akceleraci dotazů pomocí materializovaných zobrazení. Podrobné informace o tom, jak materializace funguje, požadavky a osvědčené postupy, najdete v tématu Materializace zobrazení metrik.
Note
Zobrazení metrik, které definuje parametry, se nedá materializovat.
Toto materialization pole obsahuje následující pole nejvyšší úrovně:
| Pole | Typ | Description |
|---|---|---|
schedule |
String | Optional. Plán aktualizace Používá stejnou syntaxi jako klauzule schedule v materializovaných zobrazeních. Pokud tuto možnost vynecháte, materializace se aktualizují jenom ručně. Klauzule TRIGGER ON UPDATE není podporována. |
mode |
String | Required. Musí být nastavena na relaxed. |
materialized_views |
Pole | Required. Seznam materializovaných zobrazení, která se mají materializovat Každá položka vyžaduje pole popsaná níže. |
Každá položka obsahuje materialized_views následující pole:
| Pole | Typ | Description |
|---|---|---|
name |
String | Required. Název materializace. |
type |
String | Required. Typ materializace. Podporované hodnoty: aggregated (vyžaduje dimensions, measuresnebo obojí) nebo unaggregated. |
dimensions |
Pole | Podmíněný. Seznam názvů polí, které se mají materializovat Povinný argument, pokud type je aggregated a není zadán.measures |
measures |
Pole | Podmíněný. Seznam názvů měr, které se mají materializovat Povinný argument, pokud type je aggregated a není zadán.dimensions |
cluster_by |
Objekt | Optional. Seskupování sloupců pro materializaci, které odpovídá CLUSTER BY klauzuli v materializovaném zobrazení. Zadejte cols seznam názvů sloupců nebo nastavte auto: true , aby databricks automaticky zvolila sloupce clusteringu. |
partition_by |
Pole | Optional. Seznam sloupců pro rozdělení materializace podle, který odpovídá PARTITION BY klauzuli v materializovaném zobrazení. |
Note
Blok materializace používá dimensions: klíčové slovo místo fields:. Použijte dimensions: při výpisu polí k materializaci, i když definice nejvyšší úrovně používá fields:.
Příklad materializace
Následující příklad definuje zobrazení metriky s více materializacemi:
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
Odkazy na názvy sloupců
Při odkazování na názvy sloupců, které obsahují mezery nebo speciální znaky ve výrazech YAML, uzavřete název sloupce do backticks. Pokud výraz začíná zpětným apostrofem a používá se přímo jako hodnota YAML, uzavřete celý výraz do dvojitých uvozovek. Platné hodnoty YAML nemohou začínat znakem zpětného apostrofu.
Příklady formátování
V následujících příkladech se dozvíte, jak správně formátovat YAML v běžných scénářích.
Odkaz na název sloupce
Následující příklady ukazují, jak formátovat odkazy na sloupce v závislosti na znaky, které obsahují.
Žádné mezery
Zdrojový sloupec: revenue
expr: "revenue"
expr: 'revenue'
expr: revenue
U názvu sloupce používejte dvojité uvozovky, jednoduché uvozovky nebo žádné uvozovky.
Název sloupce s mezerami
Zdrojový sloupec: `First Name`
expr: '`First Name`'
Použijte zpětné uvozovky k úniku mezer. Uzavřete celý výraz do dvojitých uvozovek.
Názvy sloupců s mezerami ve výrazu SQL
Zdrojové sloupce: `First Name`, `Last Name`
expr: CONCAT(`First Name`, ' ', `Last Name`)
Pokud výraz nezačíná zpětným uvozovkou, dvojité uvozovky se nevyžadují.
Název sloupce obsahující uvozovky
Zdrojový sloupec: "name"
expr: '`"name"`'
Pomocí zpětných uvozovek uvozovek v názvu sloupce. Uzavřete výraz do jednoduchých uvozovek.
Výrazy s dvojtečkami
expr: "CASE WHEN `Customer Tier` = 'Enterprise: Premium' THEN 1 ELSE 0 END"
Note
YAML interpretuje necitované dvojtečky jako oddělovače klíč-hodnota. Vždy používejte dvojité uvozovky kolem výrazů, které obsahují dvojtečky.
Víceřádkové výrazy
expr: |
CASE WHEN
revenue > 100 THEN 'High'
ELSE 'Low'
END
Note
| Pro víceřádkové výrazy použijte skalár bloku zaexpr:. Všechny řádky musí být odsazené aspoň dvě mezery za klíč expr, aby byly správně parsovány.
Upgrade na YAML 1.1
Aktualizace pohledu metrik na specifikaci YAML verze 1.1 vyžaduje opatrnost, jelikož komentáře se zpracovávají jinak než v předchozích verzích.
Typy komentářů
-
Komentáře YAML (
#): Vložené nebo jednořádkové komentáře napsané přímo v souboru YAML. - Komentáře k katalogu Unity: Komentáře uložené v katalogu Unity pro zobrazení metriky nebo jeho sloupce Ty jsou oddělené od komentářů YAML.
Důležité informace o upgradu
Vyberte cestu upgradu, která odpovídá způsobu zpracování komentářů v zobrazení metriky.
Možnost 1: Zachování komentářů YAML pomocí poznámkových bloků nebo editoru SQL
Pokud zobrazení metrik obsahuje komentáře YAML,# které chcete zachovat, postupujte takto:
-
ALTER VIEWPoužijte příkaz v poznámkovém bloku nebo editoru SQL. - Zkopírujte původní definici YAML do oddílu
$$..$$zaAS. Změňte hodnotuversionna1.1. - Uložte zobrazení metriky.
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)
$$
Warning
Při spuštění ALTER VIEW se odeberou komentáře katalogu Unity, pokud nejsou explicitně zahrnuty do comment polí definice YAML. Pokud chcete zachovat komentáře zobrazené v katalogu Unity, podívejte se na možnost 2.
Možnost 2: Zachování komentářů katalogu Unity
Note
Následující pokyny platí jenom při použití ALTER VIEW příkazu v poznámkovém bloku nebo editoru SQL. Pokud upgradujete zobrazení metrik na verzi 1.1 pomocí uživatelského rozhraní editoru YAML, uživatelské rozhraní editoru YAML automaticky zachová komentáře katalogu Unity.
- Zkopírujte všechny komentáře katalogu Unity do příslušných
commentpolí v definici YAML. Změňte hodnotuversionna1.1. - Uložte zobrazení metriky.
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"
$$
Informace o historii verzí specifikace YAML a minimálních požadavcích na modul runtime pro každou funkci najdete v tématu Dostupnost funkcí zobrazení metrik.