Referenční informace ke syntaxi YAML zobrazení metrik

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:

  • ON klauzule: Pomocí logického výrazu definuje podmínku join.
  • USING klauzule: 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 fields definici, 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 SUM jsou 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že name ve 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, formatani synonyms na zástupný znak. Pokud chcete přidat metadata do konkrétního sloupce, vylučte je ze zástupného znaku EXCEPT a definujte je explicitně.
  • measures V 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 fields nebo measures vý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říklad trailing 7 day. inclusive Volitelný nebo exclusive modifiká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 je exclusive. 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říklad leading 3 month. inclusive Volitelný nebo exclusive modifiká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 je exclusive. 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:

  1. ALTER VIEW Použijte příkaz v poznámkovém bloku nebo editoru SQL.
  2. Zkopírujte původní definici YAML do oddílu $$..$$ za AS. Změňte hodnotu version na 1.1.
  3. 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.

  1. Zkopírujte všechny komentáře katalogu Unity do příslušných comment polí v definici YAML. Změňte hodnotu version na 1.1.
  2. 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.