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.
Zobrazení metrik vytvářejí sémantickou vrstvu pro vaše data, transformují tabulky a zobrazení na standardizované obchodní metriky. Definují, co se má měřit, jak ho agregovat a jak ho segmentovat. V důsledku toho každý uživatel v organizaci hlásí stejnou hodnotu stejného klíčového ukazatele výkonu, což eliminuje nekonzistentní generování sestav a umožňuje flexibilní analýzu napříč všemi poli.
Základní komponenty, které definujete, jsou zdroje, spojení, filtry, pole a míry.
Úplný příklad s spojeními, poli, mírami a metadaty agenta najdete v kurzu: Vytvoření zobrazení metriky s spojeními a modelováním dat.
Základní komponenty
Zobrazení metriky se skládá z následujících prvků:
| Součást | Description | Example |
|---|---|---|
| Zdroj | Základní tabulka, zobrazení nebo dotaz SQL obsahující data. | samples.tpch.orders |
| se připojuje k | Relace mezi tabulkami, zobrazeními a zobrazeními metrik za účelem obohacení dat | Spojení orders tabulky s customers tabulkou na customer_key |
| Filtry | Podmínky použitá na zdrojová data k definování rozsahu. |
|
| Fields | Sloupce používané k seskupení, filtrování a agregaci metrik Zahrnuje sloupce kategorií a neagregované číselné sloupce. Označuje se také jako dimenze. | Kategorie produktu, Měsíc objednávky, Jednotková cena |
| Opatření | Agregace sloupců, které vytvářejí metriky |
COUNT(o_orderkey) jako počet objednávek, SUM(o_totalprice) jako celkový příjem |
Definování zdroje
Jako zdroj zobrazení metrik můžete použít prostředek podobný tabulce nebo dotaz SQL. Musíte mít minimálně SELECT oprávnění k libovolnému odkazovanému prostředku.
Prostředek podobný tabulce je jakýkoli objekt katalogu Unity, který zveřejňuje tabulkové schéma a podporuje SELECT dotazy, včetně tabulek, zobrazení, materializovaných zobrazení, streamovaných tabulek, cizích tabulek, systémových tabulek a zobrazení metrik.
Použití prostředku podobného tabulce jako zdroje
Pokud chcete jako zdroj použít prostředek podobný tabulce, zadejte plně kvalifikovaný název. Například: samples.tpch.orders.
Použití zobrazení metriky jako zdroje
Jako zdroj nového zobrazení metriky můžete použít existující zobrazení metrik:
version: 1.1
source: views.examples.source_metric_view
fields:
- name: Order month
expr: '`Order Month`'
measures:
- name: Latest order month
expr: MAX(`Order month`)
- name: Latest order year
expr: "DATE_TRUNC('year', MEASURE(`Latest order month`))"
Při použití zobrazení metriky jako zdroje platí stejná pravidla kompozability pro odkazování na pole a míry. Viz Možnosti kompilace.
Použití dotazu SQL jako zdroje
Pokud chcete použít dotaz SQL, napište text dotazu přímo do YAML:
version: 1.1
source: SELECT * FROM samples.tpch.orders o LEFT JOIN samples.tpch.customer c ON o.o_custkey
= c.c_custkey
fields:
- name: Order key
expr: o_orderkey
measures:
- name: Order Count
expr: COUNT(o_orderkey)
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ů. Viz 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í.
Pole
Pole, označovaná také jako dimenze, jsou sloupce zobrazení metrik, které můžete při zadávání dotazu použít v klauzulích SELECT, WHERE a GROUP BY. Pole může být sloupec kategorií, například oblast nebo stav, nebo neagregovaný číselný sloupec, jako je cena nebo množství, které můžete agregovat v době dotazu. Každý výraz pole musí vrátit skalární hodnotu. Může odkazovat na sloupce ze zdrojových dat nebo polí definovaných dříve v zobrazení metriky. Každé pole se skládá ze dvou součástí:
-
name: Alias sloupce -
expr: Výraz SQL, který odkazuje na zdrojová data nebo dříve definovaná pole v zobrazení metriky
Warning
Pole zobrazení metrik podobná řetězcům jsou vždy STRING, i když má zdrojový sloupec typ CHAR 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á hodnotě CHAR(10) ve zdrojové tabulce (která je doplněna mezerami), ale ne v poli zobrazení metrik.
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á míra se skládá z následujících součástí:
-
name: Alias míry -
expr: Agregovaný výraz SQL, který může obsahovat agregační funkce SQL
Následující příklad ukazuje běžné vzory měr pro analýzu dat o objednávkách a výnosech. Tyto příklady používají tabulku objednávek TPC-H, která obsahuje údaje o prodejních transakcích, včetně cen objednávek (o_totalprice), identifikátorů zákazníků (o_custkey), klíčů objednávek (o_orderkey), dat objednávek (o_orderdate) a úrovní priority (o_orderpriority):
measures:
# Simple count measure
- name: Order Count
expr: COUNT(1)
# Sum aggregation measure
- name: Total Revenue
expr: SUM(o_totalprice)
# Distinct count measure
- name: Unique Customers
expr: COUNT(DISTINCT o_custkey)
# Calculated measure combining multiple aggregations
- name: Average Order Value
expr: SUM(o_totalprice) / COUNT(DISTINCT o_orderkey)
# Filtered measure with WHERE condition
- name: High Priority Order Revenue
expr: SUM(o_totalprice) FILTER (WHERE o_orderpriority = '1-URGENT')
# Measure using a field
- name: Average Revenue per Month
expr: SUM(o_totalprice) / COUNT(DISTINCT DATE_TRUNC('MONTH', o_orderdate))
Seznam agregačních funkcí najdete v části Agregační funkce .
Použití filtrů
Filtr se vztahuje na všechny dotazy, které odkazují na zobrazení metriky. Pokud chcete definovat filtr v uživatelském rozhraní, přečtěte si krok 3: Definování filtru.
Pokud chcete definovat filtr v definici YAML, napište logický výraz. Následující příklad ukazuje běžné vzory filtru:
# Single condition
filter: o_orderdate > '2024-01-01'
# Multiple conditions
filter: o_orderdate > '2024-01-01' AND o_orderstatus = 'F'
# IN clause
filter: o_orderstatus IN ('F', 'P') AND o_orderdate >= '2024-01-01'
Práce s spojeními
Zobrazení metrik podporují spojení pro obohacení zdrojových dat o atributy ze souvisejících tabulek. Můžete modelovat hvězdicová schémata (tabulka faktů spojená s tabulkami dimenzí), schémata typu vločka (víceúrovňová spojení dimenzí) a vztahy jedna ku mnoha (rozšíření tabulky faktů z dimenzního zdroje). Podrobnosti o typech spojení, kardinalitě, vzorech schématu a omezeních najdete v tématu Spojení v zobrazeních metrik.
Pokud chcete definovat spojení v uživatelském rozhraní, přečtěte si krok 2: Přidání spojení. Pokud chcete definovat spojení v definici YAML, použijte vzory v následujících částech.
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.
Modely hvězdicových schémat
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 polí a měr.
Zadejte sloupce pro spojení pomocí klauzule on (logický výraz) nebo klauzule using (shodné názvy sloupců). Spojení musí následovat po relaci M:1. V případě vztahu mnoho k mnoha mechanismus vybere první odpovídající řádek z připojené tabulky dimenzí.
Následující příklad připojí orders (tabulku faktů) k customer (tabulce dimenzí) a zpřístupní atributy zákazníka jako pole. Nastavení rely.at_most_one_match: true deklaruje, že spojení je M:1 (každá objednávka má přesně jednoho zákazníka), což modulu umožňuje optimalizovat dotazy, které filtrují pole z připojené tabulky.
Warning
Nastavit at_most_one_match: true pouze v případech, kdy je relace M:1. Tato vlastnost není ověřena za běhu. Pokud spojení vytvoří rozvětvení, metriky vrátí nesprávné výsledky.
Vizte optimalizaci spojení pomocí rely.
version: 1.1
source: samples.tpch.orders
joins:
- name: customer
source: samples.tpch.customer
on: source.o_custkey = customer.c_custkey
fields:
- name: Customer name
expr: customer.c_name
measures:
- name: Total revenue
expr: SUM(o_totalprice)
Syntaxe a formátování YAML
Definice zobrazení metrik se řídí standardní syntaxí notace YAML. Informace o požadované syntaxi a formátování najdete v referenční dokumentaci syntaxe YAML pro zobrazení metrik .
Osvědčené postupy
Při modelování zobrazení metrik použijte následující pokyny:
-
Model atomických měr: Začněte definováním nejjednodušších měr (například
SUM(revenue),COUNT(DISTINCT customer_id)). Vytváření složitých měr pomocí kompozability -
Standardizace hodnot polí: Pomocí transformací (například
CASEpříkazů) můžete převést kódy databáze na jasné obchodní názvy (například převést stav objednávky "O" na "Otevřít" a "F" na "Splněno"). - Definujte obor s filtry: Pokud by zobrazení metriky mělo obsahovat jenom dokončené objednávky, definujte tento filtr v zobrazení metriky, aby uživatelé nemohli omylem zahrnout neúplná data.
-
Používejte jasné pojmenování: Názvy metrik by měly být rozpoznatelné pro firemní uživatele (například "Hodnota životnosti zákazníka" místo
cltv_agg_measure). - Samostatná časová pole: Zahrňte podrobná časová pole (například Datum objednávky) a zkrácená časová pole (například "Měsíc objednávky" nebo "Týden objednávky") a povolte analýzu podrobností i trendu.