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.
V tomto kurzu vytvoříte zobrazení metrik analýzy prodeje na TPC-H datové sadě. Na konci budete mít zobrazení metriky, které:
- Spojí objednávky a zákazníky napříč několika tabulkami pomocí schématu snowflake.
- Definuje pole (označovaná také jako dimenze) pro atributy času, zeměpisu a pořadí.
- Vypočítá jednoduché a složité míry včetně poměrů, filtrovaných agregací a měr oken.
- Používá kompozičnost k vytváření složitých metrik z jednodušších měr.
- Definuje parametr, který použije diskontní sazbu v době dotazu.
- Obsahuje metadata agenta pro řídicí panely a nástroje AI.
Pokud s zobrazeními metrik začínáte, začněte vytvořením zobrazení metrik a seznamte se se základy. Tento kurz rozšiřuje tento základ o skutečnou složitost.
Požadavky
K dokončení tohoto kurzu potřebujete:
- Pracovní prostor s podporou Unity Catalog.
- SQL Warehouse nebo výpočetní prostředek, na kterém běží Databricks Runtime 17.3 nebo novější.
Úplný seznam oprávnění potřebných k vytvoření zobrazení metrik najdete v tématu Požadavky.
Note
Vytvoření zobrazení metrik se podporuje v Databricks Runtime 16.4 a novějších. Tento návod používá funkce, které vyžadují Databricks Runtime ve verzi 17.3 nebo novější, a některé kroky vyžadují novější verzi runtime. Informace o minimální verzi runtime pro každou funkci najdete na stránce Dostupnost funkce zobrazení metrik.
Datový model
Datová sada TPC-H modeluje velkoobchodní dodavatelský řetězec. V tomto kurzu se používají tři tabulky spojené ve schématu sněhové vločky:
-
ordersse připojuje kcustomernao_custkey = c_custkey -
customerse připojuje knationnac_nationkey = n_nationkey
| Tabulka | Úloha | Klíčové sloupce |
|---|---|---|
orders |
Tabulka faktů (transakce objednávek) |
o_orderkey, o_custkey, o_totalprice, , o_orderdateo_orderstatus |
customer |
Dimenzionální tabulka (podrobnosti o zákaznících) |
c_custkey, c_name, , c_mktsegmentc_nationkey |
nation |
Tabulka dimenzí (odkaz na zemi nebo oblast) |
n_nationkey, n_name, n_regionkey |
Krok 1: Vytvoření zobrazení metrik a otevření editoru
Toto zobrazení metrik můžete sestavit v uživatelském rozhraní Průzkumníka katalogu, vygenerovat ho pomocí kódu Genie nebo přímo napsat úplnou definici YAML. Všechny tři metody se přeloží na jednu definici YAML, která modeluje zobrazení metrik. V každém následujícím kroku vyberte kartu editoru Průzkumníka katalogů nebo editor YAML a postupujte podle preferované metody. Pokud používáte editor YAML, ukázkový kód v každém kroku je část definice YAML, která odpovídá tomu, co v tomto kroku vytvoříte.
Note
Příklady YAML v tomto kurzu používají fields klíčové slovo. Když v editoru low-code vytvoříte zobrazení metrik, YAML, který se při tom vygeneruje, místo něj používá odpovídající klíčové slovo dimensions. Viz pole.
Pokud neznáte uživatelské rozhraní pro vytváření zobrazení metrik, přečtěte si téma Vytvoření zobrazení metriky.
Chcete-li v Průzkumníku katalogu vytvořit zobrazení metrik:
- Vyhledejte
samples.tpch.orders. - Klikněte na název tabulky.
- Klikněte na Vytvořit>zobrazení metriky a pojmenujte zobrazení.
Podrobný postup vytvoření najdete v tématu Vytvoření zobrazení metriky. Po otevření editoru můžete interaktivně vytvořit pomocí karty uživatelského rozhraní nebo kliknutím na <> tlačítko upravit definici YAML přímo.
Krok 2: Nastavení zobrazení metriky
Nastavte verzi a popis zobrazení metriky.
version určuje verzi specifikace YAML a comment popisuje účel zobrazení metrik, který se zobrazuje v Průzkumníku katalogu. Azure Databricks spravuje verzi za vás.
Uživatelské rozhraní Průzkumníka katalogů
Verze je pro vás definovaná. Přidání nebo úprava popisu po uložení zobrazení metriky:
- V Průzkumníku katalogu vyhledejte zobrazení metriky a klikněte na jeho název.
- Klikněte na Popis a zadejte popis zobrazení metriky. Můžete použít ukázkový popis zobrazený na kartě YAML editor.
Tento text odpovídá comment poli v definici YAML. Další způsoby, jak upravit zobrazení metriky, najdete v tématu Úprava zobrazení metriky.
Editor YAML
version: 1.1
comment: |-
Sales analytics metric view for order performance analysis.
Joins orders with customers and geography.
Owner: Analytics Team
Last updated: 2025-01-15
Krok 3: Definování zdroje a spojení
Definujte primární zdrojovou tabulku a připojte související tabulky:
-
sourcenastaví tabulku faktů (objednávky) jako základní úroveň detailu. -
joinsimportuje zákaznická data pomocí relace M:1. - Vnořené
nationspojení demonstruje vzor schématu sněhové vločky a propojuje se přescustomerke geografickým datům, kde země je subdimenzí zákazníka.
Uživatelské rozhraní Průzkumníka katalogů
Tento příklad přidává dvě vazby, obě Many-to-one, pro modelování schématu snowflake.
Přidání spojení customer:
- V editoru kliknutím na Připojit v pravém horním rohu otevřete dialogové okno Přidat spojení .
- Vyhledejte
samples.tpch.customerpoložku , klikněte na název tabulky a potom klikněte na Přidat. - Nastavte podmínku spojení na
o_custkey = c_custkey. - V části Kardinalita spojení vyberte možnost Mnoho k jednomu. Pokyny k volbě kardinality najdete v tématu Kardinalita spojení.
Potom přidejte vnořené nation spojení. Opakujte kroky ze spojení customer, přičemž připojíte samples.tpch.nation k c_nationkey = n_nationkey. Vnoření spojení pod customer modeluje stát jako subdimenzi zákazníka.
Postup úplného dialogového okna připojení najdete v kroku 2: Přidání spojení.
Editor YAML
source: SELECT * FROM samples.tpch.orders
joins:
- name: customer
source: samples.tpch.customer
'on': o_custkey = c_custkey
joins:
- name: nation
source: samples.tpch.nation
'on': c_nationkey = n_nationkey
Krok 4: Definování filtru
filter omezuje zdrojová data a vztahuje se na všechny dotazy nad zobrazením metrik. Tento návod omezuje zobrazení metrik pouze na nejnovější data.
Uživatelské rozhraní Průzkumníka katalogů
Definování filtru:
- V editoru klikněte na
Filtrujte v pravém horním rohu.
- Pomocí rozevíracích nabídek nastavte Sloupec na
o_orderdate, Operátor na>=a Hodnota na1995-01-01.
Další informace o filtrech najdete v kroku 3: Definování filtru.
Editor YAML
filter: o_orderdate >= '1995-01-01'
Krok 5: Definování polí
Pole jsou atributy, podle které uživatelé seskupují a filtrují. Pole může být sloupec kategorií (například oblast nebo stav) nebo neagregovaný číselný sloupec (například věk nebo množství), který uživatelé agregují v době dotazu.
Metadata agenta
Každé pole a míra v tomto kurzu zahrnují vlastnosti metadat agenta , které zlepšují fungování zobrazení metrik s řídicími panely a nástroji AI:
-
display_name: Čitelný popisek, který se zobrazí ve vizualizacích místo názvu technického sloupce. -
synonyms: Alternativní názvy, které pomáhají nástrojům umělé inteligence, jako je Genie, zjišťovat pole a míry prostřednictvím dotazů v přirozeném jazyce. -
format: Jak se hodnoty zobrazují v podřízených plochách, jako jsou řídicí panely, poznámkové bloky a výsledky dotazů SQL, například měna, číslo nebo procento.
Tyto vlastnosti jsou volitelné, ale doporučuje se. Definice polí a měr jsou v následujících krocích uvedeny přímo.
Definice polí
Tento kurz zahrnuje:
-
Časová pole:
order_dateorder_monthaorder_years několika podrobnostmi, které podporují různé potřeby analýzy. -
Transformovaná pole:
order_statusaorder_priority, které používajíCASEaSPLITpřevádějí zdrojové kódy na čitelné popisky. -
Spojená pole:
customer_name,market_segmentacustomer_nation, které odkazují na spojené tabulky pomocí názvu spojení. Sloupce vnořeného spojení používají řetězenou tečkovanou notaci, napříkladcustomer.nation.n_name, k procházení schématu typu sněhová vločka.
Uživatelské rozhraní Průzkumníka katalogů
Editor přidá všechny zdrojové sloupce na kartu Pole automaticky. Upravte, přejmenujte, odeberte a přidejte pole tak, aby zobrazení metrik přesně definovalo následující. U každého pole klikněte na jeho název a upravte ho nebo klikněte na
a pak nastavte výraz v Tvůrci nebo vlastním režimu. Nastavte zobrazovaný název a synonyma pro každé pole, jak je znázorněno.
order_date: V režimu Sestavitel vyberte sloupec
o_orderdate. Nastavte zobrazovaný název naOrder Date.order_month: Ve vlastním režimu zadejte
DATE_TRUNC('MONTH', order_date). Nastavte zobrazovaný název naOrder Month.order_year: Ve vlastním režimu zadejte
YEAR(order_date). Nastavte zobrazovaný název naOrder Year.order_status: Ve vlastním režimu zadejte následující výraz. Nastavte zobrazovaný název na
Order Statusa synonyma nastatus,fulfillment status.CASE o_orderstatus WHEN 'O' THEN 'Open' WHEN 'P' THEN 'Processing' WHEN 'F' THEN 'Fulfilled' ENDorder_priority: Ve vlastním režimu zadejte
SPLIT(o_orderpriority, '-')[0]. Nastavte zobrazovaný název naPriority.customer_name: V režimu Tvůrce vyberte
c_namesloupec ze spojenécustomertabulky. Nastavte zobrazovaný název naCustomer Name.market_segment: V režimu Builder vyberte sloupec
c_mktsegmentz připojené tabulkycustomer. Nastavte zobrazovaný název naMarket Segmenta synonyma nasegment,industry.customer_nation: V režimu Custom zadejte
customer.nation.n_name, chcete-li odkázat na vnořené spojenínation. Nastavte zobrazovaný název naCountrya synonyma nanation,country.
Úplný postup pole najdete v kroku 4: Přidání polí.
Editor YAML
fields:
- name: order_date
expr: o_orderdate
display_name: Order Date
- name: order_month
expr: "DATE_TRUNC('MONTH', order_date)"
display_name: Order Month
- name: order_year
expr: YEAR(order_date)
display_name: Order Year
- name: order_status
expr: |-
CASE o_orderstatus
WHEN 'O' THEN 'Open'
WHEN 'P' THEN 'Processing'
WHEN 'F' THEN 'Fulfilled'
END
display_name: Order Status
synonyms:
- status
- fulfillment status
- name: order_priority
expr: "SPLIT(o_orderpriority, '-')[0]"
display_name: Priority
- name: customer_name
expr: customer.c_name
display_name: Customer Name
- name: market_segment
expr: customer.c_mktsegment
display_name: Market Segment
synonyms:
- segment
- industry
- name: customer_nation
expr: customer.nation.n_name
display_name: Country
synonyms:
- nation
- country
Krok 6: Definování parametrů
Parametry umožňují předávat hodnoty do zobrazení metrik při dotazování, takže jedna definice může obsluhovat mnoho variant dotazů. Tento kurz přidává parametr discount, který později použitá metrika využívá k výpočtu diskontovaných výnosů. Parametr má výchozí hodnotu 0, takže dotazy, které nepředávají žádnou hodnotu, vrátí nezlevněné výnosy. Další informace o parametrech najdete v části Použití parametrů v zobrazeních metrik.
Uživatelské rozhraní Průzkumníka katalogů
V záhlaví editoru klikněte na Přidat parametr. Jako název zadejte discount, poté zadejte výchozí hodnotu 0 a vyberte datový typ double.
Editor YAML
parameters:
- name: discount
data_type: double
default: 0
Krok 7: Definování měr
Míry jsou výpočty, které uživatelé chtějí analyzovat. Nejprve definujte atomické míry a pak pomocí kompozitability sestavte komplexní metriky, které odkazují na dříve definované míry s MEASURE() funkcí. Nastavte display_name, format a synonyms pro každou metriku, jak je popsáno v metadatech agenta. Tento návod přidává:
-
Atomické míry:
order_counttotal_revenueaunique_customersjednoduché agregace, které tvoří stavební bloky. -
Složené metriky:
avg_order_valuearevenue_per_customer, které odkazují na dříve definované metriky pomocíMEASURE()místo duplikování logiky agregace. Pokudtotal_revenuese změní, tyto míry automaticky používají aktualizovanou definici. Viz Možnosti kompilace. -
Filtrované metriky:
open_order_revenueafulfilled_order_revenue, které pomocíFILTER (WHERE ...)vytvářejí podmíněné metriky bez samostatných polí. -
Parametrizovaná míra:
discounted_revenue, která odkazuje na parametrdiscountk použití diskontní sazby. Viz Použití parametrů se zobrazeními metrik. -
Míra okna:
t7d_customers, která počítá průběžný 7denní počet jedinečných zákazníků. Další vzory měr oken najdete v tématu Míry okna .
Uživatelské rozhraní Průzkumníka katalogů
Editor přidá ukázkovou COUNT(*) míru automaticky. Upravte nebo odeberte a přidejte míry tak, aby zobrazení metrik definovalo přesně toto. U každé míry klikněte na
Přidat a pak nastavte výraz v Tvůrci nebo vlastním režimu. Nastavte zobrazovaný název, formát a synonyma , jak je znázorněno. Použijte 2 desetinná místa pro formáty měny a 0 desetinných míst pro formáty čísel.
-
order_count: V režimu Sestavovač vyberte agregaci Počet jedinečných hodnot u
o_orderkey. Nastavte zobrazovaný název naOrder Count, formát na Číslo. -
total_revenue: V režimu Builder vyberte agregaci Součet u
o_totalprice. Nastavte zobrazovaný název naTotal Revenue, formát na Měna (USD), synonyma narevenue,sales. -
discounted_revenue: Ve vlastním režimu zadejte
SUM(o_totalprice * (1 - discount)). Nastavte zobrazovaný název naDiscounted Revenue, formát na Měna (USD). -
unique_customers: V režimu Builder vyberte agregaci Počet různých hodnot u
o_custkey. Nastavte zobrazovaný název naUnique Customers, formát na Číslo. -
avg_order_value: Ve vlastním režimu zadejte
MEASURE(total_revenue) / MEASURE(order_count). Nastavte zobrazovaný název naAvg Order Value, formát na Měna (USD), synonyma naAOV. -
revenue_per_customer: Ve vlastním režimu zadejte
MEASURE(total_revenue) / MEASURE(unique_customers). Nastavte zobrazovaný název naRevenue per Customer, formát na Měna (USD). -
open_order_revenue: Ve vlastním režimu zadejte
SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'O'). Nastavte zobrazovaný název naOpen Order Revenue, formát na Měna (USD), synonyma nabacklog. -
fulfilled_order_revenue: Ve vlastním režimu zadejte
SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'F'). Nastavte zobrazovaný název naFulfilled Revenue, formát na Měna (USD). -
t7d_customers: Ve vlastním režimu zadejte
COUNT(DISTINCT o_custkey). Potom klikněte na + Okno a nakonfigurujte okno seřazené podleorder_date, s rozsahemtrailing 7 dayalastsemiaditivní agregací. Nastavte zobrazovaný název na7-Day Rolling Customers, formát na Číslo.
Úplný postup míry najdete v kroku 5: Přidání měr.
Editor YAML
measures:
- name: order_count
expr: COUNT(DISTINCT o_orderkey)
display_name: Order Count
format:
type: number
decimal_places:
type: exact
places: 0
abbreviation: compact
- name: total_revenue
expr: SUM(o_totalprice)
display_name: Total Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- revenue
- sales
- name: discounted_revenue
expr: SUM(o_totalprice * (1 - discount))
display_name: Discounted Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: unique_customers
expr: COUNT(DISTINCT o_custkey)
display_name: Unique Customers
format:
type: number
decimal_places:
type: exact
places: 0
abbreviation: compact
- name: avg_order_value
expr: MEASURE(total_revenue) / MEASURE(order_count)
display_name: Avg Order Value
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- AOV
- name: revenue_per_customer
expr: MEASURE(total_revenue) / MEASURE(unique_customers)
display_name: Revenue per Customer
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: open_order_revenue
expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'O')
display_name: Open Order Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- backlog
- name: fulfilled_order_revenue
expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'F')
display_name: Fulfilled Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: t7d_customers
expr: COUNT(DISTINCT o_custkey)
window:
- order: order_date
semiadditive: last
range: trailing 7 day
display_name: 7-Day Rolling Customers
format:
type: number
decimal_places:
type: exact
places: 0
Kontrola úplné definice
Po dokončení výše uvedených kroků má zobrazení metrik následující úplnou definici:
Zobrazení úplné definice YAML
version: 1.1
parameters:
- name: discount
data_type: double
default: 0
source: SELECT * FROM samples.tpch.orders
joins:
- name: customer
source: samples.tpch.customer
'on': o_custkey = c_custkey
joins:
- name: nation
source: samples.tpch.nation
'on': c_nationkey = n_nationkey
filter: o_orderdate >= '1995-01-01'
comment: |-
Sales analytics metric view for order performance analysis.
Joins orders with customers and geography.
Owner: Analytics Team
Last updated: 2025-01-15
fields:
- name: order_date
expr: o_orderdate
display_name: Order Date
- name: order_month
expr: "DATE_TRUNC('MONTH', order_date)"
display_name: Order Month
- name: order_year
expr: YEAR(order_date)
display_name: Order Year
- name: order_status
expr: |-
CASE o_orderstatus
WHEN 'O' THEN 'Open'
WHEN 'P' THEN 'Processing'
WHEN 'F' THEN 'Fulfilled'
END
display_name: Order Status
synonyms:
- status
- fulfillment status
- name: order_priority
expr: "SPLIT(o_orderpriority, '-')[0]"
display_name: Priority
- name: customer_name
expr: customer.c_name
display_name: Customer Name
- name: market_segment
expr: customer.c_mktsegment
display_name: Market Segment
synonyms:
- segment
- industry
- name: customer_nation
expr: customer.nation.n_name
display_name: Country
synonyms:
- nation
- country
measures:
- name: order_count
expr: COUNT(DISTINCT o_orderkey)
display_name: Order Count
format:
type: number
decimal_places:
type: exact
places: 0
abbreviation: compact
- name: total_revenue
expr: SUM(o_totalprice)
display_name: Total Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- revenue
- sales
- name: discounted_revenue
expr: SUM(o_totalprice * (1 - discount))
display_name: Discounted Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: unique_customers
expr: COUNT(DISTINCT o_custkey)
display_name: Unique Customers
format:
type: number
decimal_places:
type: exact
places: 0
abbreviation: compact
- name: avg_order_value
expr: MEASURE(total_revenue) / MEASURE(order_count)
display_name: Avg Order Value
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- AOV
- name: revenue_per_customer
expr: MEASURE(total_revenue) / MEASURE(unique_customers)
display_name: Revenue per Customer
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: open_order_revenue
expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'O')
display_name: Open Order Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- backlog
- name: fulfilled_order_revenue
expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'F')
display_name: Fulfilled Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: t7d_customers
expr: COUNT(DISTINCT o_custkey)
window:
- order: order_date
semiadditive: last
range: trailing 7 day
display_name: 7-Day Rolling Customers
format:
type: number
decimal_places:
type: exact
places: 0
Vytvoření zobrazení metrik pomocí SQL
Pokud vytváříte tuto definici mimo Průzkumníka katalogu, spusťte následující příkaz SQL a vytvořte zobrazení metriky:
CREATE OR REPLACE VIEW catalog.schema.tpch_sales_analytics
WITH METRICS
LANGUAGE YAML
AS $$
version: 1.1
parameters:
- name: discount
data_type: double
default: 0
source: SELECT * FROM samples.tpch.orders
joins:
- name: customer
source: samples.tpch.customer
'on': o_custkey = c_custkey
joins:
- name: nation
source: samples.tpch.nation
'on': c_nationkey = n_nationkey
filter: o_orderdate >= '1995-01-01'
comment: |-
Sales analytics metric view for order performance analysis.
Joins orders with customers and geography.
Owner: Analytics Team
Last updated: 2025-01-15
fields:
- name: order_date
expr: o_orderdate
display_name: Order Date
- name: order_month
expr: "DATE_TRUNC('MONTH', order_date)"
display_name: Order Month
- name: order_year
expr: YEAR(order_date)
display_name: Order Year
- name: order_status
expr: |-
CASE o_orderstatus
WHEN 'O' THEN 'Open'
WHEN 'P' THEN 'Processing'
WHEN 'F' THEN 'Fulfilled'
END
display_name: Order Status
synonyms:
- status
- fulfillment status
- name: order_priority
expr: "SPLIT(o_orderpriority, '-')[0]"
display_name: Priority
- name: customer_name
expr: customer.c_name
display_name: Customer Name
- name: market_segment
expr: customer.c_mktsegment
display_name: Market Segment
synonyms:
- segment
- industry
- name: customer_nation
expr: customer.nation.n_name
display_name: Country
synonyms:
- nation
- country
measures:
- name: order_count
expr: COUNT(DISTINCT o_orderkey)
display_name: Order Count
format:
type: number
decimal_places:
type: exact
places: 0
abbreviation: compact
- name: total_revenue
expr: SUM(o_totalprice)
display_name: Total Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- revenue
- sales
- name: discounted_revenue
expr: SUM(o_totalprice * (1 - discount))
display_name: Discounted Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: unique_customers
expr: COUNT(DISTINCT o_custkey)
display_name: Unique Customers
format:
type: number
decimal_places:
type: exact
places: 0
abbreviation: compact
- name: avg_order_value
expr: MEASURE(total_revenue) / MEASURE(order_count)
display_name: Avg Order Value
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- AOV
- name: revenue_per_customer
expr: MEASURE(total_revenue) / MEASURE(unique_customers)
display_name: Revenue per Customer
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: open_order_revenue
expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'O')
display_name: Open Order Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
synonyms:
- backlog
- name: fulfilled_order_revenue
expr: SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'F')
display_name: Fulfilled Revenue
format:
type: currency
currency_code: USD
decimal_places:
type: exact
places: 2
abbreviation: compact
- name: t7d_customers
expr: COUNT(DISTINCT o_custkey)
window:
- order: order_date
semiadditive: last
range: trailing 7 day
display_name: 7-Day Rolling Customers
format:
type: number
decimal_places:
type: exact
places: 0
$$;
Další způsoby vytvoření zobrazení metrik najdete v tématu Vytvoření zobrazení metriky.
Krok 8: Dotazování zobrazení metrik
Dotazování zobrazení metrik pomocí syntaxe vhodné pro firmy Funkce MEASURE() agreguje metriku na úrovni podrobnosti polí, která vyberete.
Agregace měr podle dimenzí
Tento příklad agreguje míry napříč více poli. Vrátí celkové výnosy, počet objednávek a průměrnou hodnotu objednávky podle země zákazníka a tržního segmentu, seřazené sestupně podle celkových výnosů:
SELECT
customer_nation,
market_segment,
MEASURE(total_revenue) AS total_revenue,
MEASURE(order_count) AS order_count,
MEASURE(avg_order_value) AS avg_order_value
FROM catalog.schema.tpch_sales_analytics
GROUP BY customer_nation, market_segment
ORDER BY total_revenue DESC;
Analýza měsíčního trendu
Tento příklad kombinuje časové pole s mírami ke sledování trendu. Vrátí celkové výnosy a výnosy z otevřené objednávky (backlog) podle měsíce a stavu objednávky:
SELECT
order_month,
order_status,
MEASURE(total_revenue) AS total_revenue,
MEASURE(open_order_revenue) AS open_order_revenue
FROM catalog.schema.tpch_sales_analytics
GROUP BY order_month, order_status
ORDER BY order_month;
Předání hodnoty parametru
Vzhledem k tomu, že zobrazení metriky definuje parametr, můžete ho volat jako funkci s hodnotou tabulky a předat hodnotu v době dotazu. Následující dotaz použije slevu 10%. Protože discount má výchozí hodnotu 0, dotazy, které vynechají argument, vracejí nediskontované výnosy:
SELECT
customer_nation,
MEASURE(total_revenue) AS total_revenue,
MEASURE(discounted_revenue) AS discounted_revenue
FROM catalog.schema.tpch_sales_analytics(discount => 0.1)
GROUP BY customer_nation
ORDER BY discounted_revenue DESC;
Co jste se naučili
Vytvořili jste zobrazení metriky, které ukazuje:
| funkce | Example |
|---|---|
| Spojení schématu Snowflake | Objednávky zákazníkům na národ (vnořené spojení M:1) |
| Časová pole | Datum, měsíc, členitost roku |
| Transformovaná pole |
CASE příkazy, SPLIT funkce |
| Jednoduchá opatření |
COUNT, SUM |
| Kompozičnost |
avg_order_value a revenue_per_customer odkazují na dříve definovaná opatření pomocí MEASURE() |
| Filtrovaná opatření |
FILTER (WHERE ...) pro podmíněné agregace |
| Míry oken | Průběžný 7denní počet zákazníků s využitím trailing 7 day |
| Parameters |
discount parametr použitý v discounted_revenue míře |
| Metadata agenta |
display_name, format, synonyms u polí a měřítek |
Další zdroje informací
- Míry oken pro výpočet průběžných průměrů a součtů od roku do data.
- Materializace zobrazení metrik pro zlepšení výkonu dotazů u velkých datových sad.
- Použijte zobrazení metrik na řídicích panelech AI/BI.