Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här handledningen skapar du en mätvärdesvy för försäljningsanalys på datauppsättningen TPC-H. I slutet har du en metrikvy som:
- Kopplar beställningar och kunder till flera tabeller med hjälp av ett snowflake-schema.
- Definierar fält (kallas även dimensioner) för tids-, geografi- och orderattribut.
- Beräknar enkla och komplexa mått, inklusive kvoter, filtrerade aggregeringar och fönstermått.
- Använder komponerbarhet för att bygga komplexa mått från enklare mätvärden.
- Definierar en parameter för att tillämpa en diskonteringsränta vid frågetillfället.
- Innehåller agentmetadata för instrumentpaneler och AI-verktyg.
Om du är nybörjare på måttvyer börjar du med Skapa en måttvy för att lära dig grunderna. Den här handledningen utökar den grunden med reell komplexitet.
Requirements
Du behöver följande för att kunna slutföra den här självstudiekursen:
- En arbetsyta aktiverad för Unity Catalog.
- En SQL-lager- eller beräkningsresurs som kör Databricks Runtime 17.3 eller senare.
En fullständig lista över behörigheter som krävs för att skapa en måttvy finns i Krav.
Note
Du kan skapa en måttvy på Databricks Runtime 16.4 och senare. I den här självstudien används funktioner som kräver Databricks Runtime 17.3 eller högre, och vissa steg kräver en ännu senare Runtime-version. Information om den lägsta körtiden för varje funktion finns i Tillgänglighet för funktioner i måttvyn.
Datamodellen
TPC-H-datamängden modellerar en grossistleveranskedja. I den här handledningen används tre tabeller som är anslutna i ett snowflake-schema.
-
ordersansluter tillcustomerpåo_custkey = c_custkey -
customeransluter tillnationpåc_nationkey = n_nationkey
| Tabell | Befattning | Nyckelkolumner |
|---|---|---|
orders |
Faktatabell (ordertransaktioner) |
o_orderkey, o_custkey, o_totalprice, , , o_orderdateo_orderstatus |
customer |
Dimensionstabell (kundinformation) |
c_custkey, c_name, , c_mktsegmentc_nationkey |
nation |
Dimensionstabell (lands- eller regionreferens) |
n_nationkey, , n_namen_regionkey |
Steg 1: Skapa måttvyn och öppna redigeraren
Du kan skapa den här måttvyn i katalogutforskarens användargränssnitt, generera den med Genie Code eller skriva den fullständiga YAML-definitionen direkt. Alla tre metoderna resulterar i en enda YAML-definition som modellerar metrikvyn. I varje steg som följer väljer du fliken Katalogutforskarens användargränssnitt eller YAML-redigerare för att följa önskad metod. Om du använder YAML-redigeraren är exempelkoden i varje steg den del av YAML-definitionen som motsvarar det du skapar i det steget.
Note
YAML-exemplen i den här självstudiekursen använder nyckelordet fields. När du skapar en mätvärdesvy i low-code-redigeraren använder den YAML som genereras i stället det motsvarande nyckelordet dimensions. Se Fält.
Om du inte känner till användargränssnittet för att skapa måttvyer kan du läsa Skapa en måttvy.
Så här skapar du mätvyn i Katalogutforskaren:
- Sök efter
samples.tpch.orders. - Klicka på tabellnamnet.
- Klicka på Skapa>måttvy och ge vyn namnet.
Detaljerade steg för att skapa finns i Skapa en måttvy. När redigeraren öppnas använder du fliken Användargränssnitt för att skapa interaktivt eller klickar på <> knappen för att redigera YAML-definitionen direkt.
Steg 2: Konfigurera måttvyn
Ange en version och en beskrivning för måttvyn.
version avgör versionen av YAML-specifikationen, och comment dokumenterar syftet med måttvyn, som visas i Catalog Explorer. Azure Databricks hanterar versionen åt dig.
Katalogutforskaren-användargränssnitt
Versionen har definierats åt dig. Så här lägger du till eller redigerar beskrivningen när du har sparat måttvyn:
- I Katalogutforskaren söker du efter måttvyn och klickar på dess namn.
- Klicka på Beskrivning och ange sedan en beskrivning av måttvyn. Du kan använda exempelbeskrivningen som visas på fliken YAML-redigerare .
Den här texten motsvarar fältet comment i YAML-definitionen. Fler sätt att redigera en måttvy finns i Redigera en måttvy.
YAML-redigerare
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
Steg 3: Definiera källan och kopplingarna
Definiera den primära källtabellen och kopplingsrelaterade tabeller:
-
sourceanger faktatabellen (order) som korn. -
joinstar in kunddata med hjälp av en många-till-en-relation. - Den kapslade
nation-joinen demonstrerar ett snowflake-schemamönster och går viacustomerför att nå geografiska data, där nation är en underdimension till kund.
Katalogutforskaren-användargränssnitt
Det här exemplet lägger till två sammanslagningar, båda av typen många-till-en, för att modellera snöflingeschemat.
Så här lägger du till customer kopplingen:
- I redigeraren klickar du på Anslut i det övre högra hörnet för att öppna dialogrutan Lägg till koppling .
- Sök efter
samples.tpch.customer, klicka på tabellnamnet och klicka sedan på Lägg till. - Ange kopplingsvillkoret till
o_custkey = c_custkey. - Under Anslut kardinalitet väljer du Många-till-en. Vägledning om hur du väljer kardinalitet finns i Anslut kardinalitet.
Lägg sedan till den kapslade nation kopplingen. Upprepa stegen från customer kopplingen och anslut samples.tpch.nation på c_nationkey = n_nationkey. Att kapsla in sammanfogningen under customer modellerar nation som en underdimension av kund.
De fullständiga dialogrutorna för koppling finns i Steg 2: Lägg till en koppling.
YAML-redigerare
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
Steg 4: Definiera ett filter
En filter begränsar källdata och gäller för alla frågor i måttvyn. Den här självstudien begränsar måttvyn till senaste data.
Katalogutforskaren-användargränssnitt
Så här definierar du filtret:
- I redigeraren klickar du på
Filtrera i det övre högra hörnet.
- Använd de nedrullningsbara menyerna för att ange Kolumnen till
o_orderdate, Operator till>=och Värdet till1995-01-01.
Mer information om filter finns i Steg 3: Definiera ett filter.
YAML-redigerare
filter: o_orderdate >= '1995-01-01'
Steg 5: Definiera fält
Fält är attributen som användare grupperar och filtrerar efter. Ett fält kan vara en kategorisk kolumn (till exempel region eller status) eller en oaggregerad numerisk kolumn (till exempel ålder eller kvantitet) som användarna aggregerar vid frågetillfället.
Agentmetadata
Varje fält och mått i den här handledningen har egenskaper för agentmetadata som förbättrar hur din metrikvy fungerar med instrumentpaneler och AI-verktyg:
-
display_name: En läsbar etikett som visas i visualiseringar i stället för det tekniska kolumnnamnet. -
synonyms: Alternativa namn som hjälper AI-verktyg som Genie att identifiera fält och mått via frågor på naturligt språk. -
format: Hur värden visas på underordnade ytor, till exempel instrumentpaneler, notebook-filer och SQL-frågeresultat, till exempel valuta, tal eller procent.
De här egenskaperna är valfria men rekommenderas. Fält- och måttdefinitionerna i följande steg inkluderar dem direkt i texten.
Fältdefinitioner
Den här självstudiekursen lägger till:
-
Tidsfält:
order_date,order_month, ochorder_yeari flera detaljnivåer för att stödja olika analysbehov. -
Transformerade fält:
order_statusochorder_priority, som använderCASEochSPLITkonverterar källkoder till läsbara etiketter. -
Kopplade fält:
customer_name,market_segment, ochcustomer_nation, som refererar till anslutna tabeller med kopplingsnamnet. Kapslade sammanslagningskolumner använder den kedjade punktnotationen, till exempelcustomer.nation.n_name, för att navigera i snowflake-schemat.
Katalogutforskaren-användargränssnitt
Redigeraren lägger automatiskt till alla källkolumner på fliken Fält . Redigera, byt namn på, ta bort och lägg till fält så att måttvyn definierar exakt följande. För varje fält klickar du på dess namn för att redigera det eller klickar på
till för att skapa det och anger sedan uttrycket i Builder - eller Anpassat läge. Ange visningsnamn och synonymer för varje fält som det visas.
order_date: Välj kolumnen i
o_orderdate. Ange visningsnamn tillOrder Date.order_month: I anpassat läge anger du
DATE_TRUNC('MONTH', order_date). Ange visningsnamn tillOrder Month.order_year: I anpassat läge anger du
YEAR(order_date). Ange visningsnamn tillOrder Year.order_status: Ange följande uttryck i anpassat läge. Ange visningsnamn till
Order Statusoch synonymer tillstatus,fulfillment status.CASE o_orderstatus WHEN 'O' THEN 'Open' WHEN 'P' THEN 'Processing' WHEN 'F' THEN 'Fulfilled' ENDorder_priority: I anpassat läge anger du
SPLIT(o_orderpriority, '-')[0]. Ange visningsnamn tillPriority.customer_name: I Builder-läge väljer du
c_namekolumnen från den anslutnacustomertabellen. Ange visningsnamn tillCustomer Name.market_segment: I Builder-läge väljer du
c_mktsegmentkolumnen från den anslutnacustomertabellen. Ange visningsnamn tillMarket Segmentoch synonymer tillsegment,industry.customer_nation: I läget Anpassat anger du
customer.nation.n_nameför att hänvisa till den nästladenation-sammanfogningen. Ange visningsnamn tillCountryoch synonymer tillnation,country.
De fullständiga fältstegen finns i Steg 4: Lägg till fält.
YAML-redigerare
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
Steg 6: Definiera parametrar
Med parametrar kan du skicka värden till måttvyn när du kör frågor mot den, så att en enskild definition kan hantera många frågevarianter. Den här självstudien lägger till en parameter discount som ett senare mått använder för att beräkna rabatterade intäkter. Parametern har standardvärdet 0, så frågor som inte skickar ett värde returnerar intäkter som inte har redovisats. Mer information om parametrar finns i Använda parametrar med måttvyer.
Katalogutforskaren-användargränssnitt
I redigeringsrubriken klickar du på Lägg till parameter. Ange discount som namn och ange sedan ett standardvärde för 0 och välj double datatyp.
YAML-redigerare
parameters:
- name: discount
data_type: double
default: 0
Steg 7: Definiera mått
Måttvärden är de beräkningar som användarna vill analysera. Definiera atomiska mått först och använd sedan sammansättning för att skapa komplexa mått som refererar till tidigare definierade mått med MEASURE() funktionen. Ange display_name, format och synonyms för varje mätvärde enligt beskrivningen i Agentmetadata. Den här självstudiekursen lägger till:
-
Atomiska mått:
order_count,total_revenueochunique_customers, de enkla aggregeringar som utgör byggstenarna. -
Sammansatta mått:
avg_order_valueochrevenue_per_customer, som refererar till tidigare definierade mått medMEASURE()i stället för att duplicera aggregeringslogik. Omtotal_revenueändras använder dessa åtgärder automatiskt den uppdaterade definitionen. Se Komponerbarhet. -
Filtrerade mått:
open_order_revenueochfulfilled_order_revenue, som användsFILTER (WHERE ...)för att skapa villkorsstyrda mått utan separata fält. -
Parameteriserat mått:
discounted_revenue, som refererar till parameterndiscountför att tillämpa en diskonteringsränta. Se Använd parametrar med måttvyer. -
Fönstermått:
t7d_customers, som beräknar ett rullande 7-dagars antal unika kunder. Se Fönstermått för fler mönster för fönstermått.
Katalogutforskaren-användargränssnitt
Redigeraren lägger till ett exempelmått COUNT(*) automatiskt. Redigera eller ta bort den och lägg till mått så att måttvyn definierar exakt följande. För varje mått klickar du på
Lägg till och anger sedan uttrycket i Builder - eller Anpassat läge. Ange visningsnamn, format och synonymer som visas. Använd 2 decimaler för valutaformat och 0 decimaler för talformat.
-
order_count: I läget Builder väljer du aggregeringen Antal unika för
o_orderkey. Ange visningsnamn somOrder Count, format som Tal. -
total_revenue: I Builder-läge väljer du summaaggregering på
o_totalprice. Ange visningsnamn tillTotal Revenue, format till Valuta (USD), synonymer tillrevenue,sales. -
discounted_revenue: I läget Anpassat anger du
SUM(o_totalprice * (1 - discount)). Ange visningsnamn tillDiscounted Revenue, format till Valuta (USD). -
unique_customers: I läget Builder väljer du aggregeringen Antal distinkta för
o_custkey. Ange visningsnamn somUnique Customers, format som Tal. -
avg_order_value: I anpassat läge anger du
MEASURE(total_revenue) / MEASURE(order_count). Ange visningsnamn tillAvg Order Value, format till Valuta (USD), synonymer tillAOV. -
revenue_per_customer: I Anpassat-läge, ange
MEASURE(total_revenue) / MEASURE(unique_customers). Ange visningsnamn tillRevenue per Customer, format till Valuta (USD). -
open_order_revenue: I anpassat läge anger du
SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'O'). Ange visningsnamn tillOpen Order Revenue, format till Valuta (USD), synonymer tillbacklog. -
fulfilled_order_revenue: I läget Custom anger du
SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'F'). Ange visningsnamn tillFulfilled Revenue, format till Valuta (USD). -
t7d_customers: I Anpassat läge anger du
COUNT(DISTINCT o_custkey). Klicka sedan på + Fönster och konfigurera ett fönster ordnat efterorder_datemed intervallettrailing 7 dayoch medlasthalvadditiv aggregering. Ange visningsnamn som7-Day Rolling Customers, format som Tal.
De fullständiga måttstegen finns i Steg 5: Lägg till mått.
YAML-redigerare
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
Granska den fullständiga definitionen
När du har slutfört stegen ovan har din måttvy följande fullständiga definition:
Visa den fullständiga YAML-definitionen
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
Skapa måttvyn med hjälp av SQL
Om du skapar den här definitionen utanför Catalog Explorer kör du följande SQL för att skapa måttvyn:
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
$$;
Andra sätt att skapa en måttvy finns i Skapa en måttvy.
Steg 8: Utför en fråga på din måttvy
Sök i metrikvyn med hjälp av verksamhetsanpassad syntax. Funktionen MEASURE() aggregerar ett mått i kornet för de fält som du väljer.
Aggregerade mått efter dimension
Det här exemplet aggregerar mått över flera fält. Den returnerar totala intäkter, orderantal och genomsnittligt ordervärde per kundnation och marknadssegment, rangordnat efter högsta intäkter först:
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;
Analysera en månatlig trend
I det här exemplet kombineras ett tidsfält med mått för att spåra en trend. Den returnerar totala intäkter och öppna orderintäkter (kvarvarande uppgifter) per månad och orderstatus:
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;
Skicka ett parametervärde
Eftersom måttvyn definierar en parameter kan du anropa den som en tabellvärdesfunktion och skicka ett värde vid frågetillfället. Följande fråga tillämpar en rabatt på 10%. Eftersom discount har standardvärdet 0returnerar frågor som utelämnar argumentet intäkter som inte redovisats:
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;
Det här har du lärt dig
Du har skapat en måttvy som visar:
| Feature | Example |
|---|---|
| Snowflake-schemasammanfogningar | Beställningar från kund till land (kapslade många-till-en-sammanfogningar) |
| Tidsfält | Datum, månad, årkornighet |
| Transformerade fält |
CASE instruktioner, SPLIT funktioner |
| Enkla mått |
COUNT, SUM |
| Komposbarhet |
avg_order_value och revenue_per_customer referera till tidigare definierade mått med hjälp av MEASURE() |
| Filtrerade mått |
FILTER (WHERE ...) för villkorsstyrda aggregeringar |
| Fönstermått | Rullande 7-dagars kundantal med hjälp av trailing 7 day |
| Parameters |
discountparameter som används i måttet discounted_revenue |
| Agentmetadata |
display_name, format, synonyms för fält och mått |
Ytterligare resurser
- Fönstermått för att beräkna löpande medelvärden och hittills i år.
- Materialisering av metrikvyer för att förbättra frågeprestanda för stora datamängder.
- Använd måttvyer för att använda din måttvy i AI/BI-instrumentpaneler.