Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym samouczku utworzysz widok metryk analizy sprzedaży na zbiorze danych TPC-H. Na koniec będziesz mieć widok metryczny, który:
- Łączy zamówienia i klientów w wielu tabelach przy użyciu schematu płatka śniegu.
- Definiuje pola (nazywane również wymiarami) dla atrybutów czasu, geografii i kolejności.
- Oblicza proste i złożone miary, w tym współczynniki, przefiltrowane agregacje i miary okien.
- Wykorzystuje składalność do tworzenia złożonych metryk z prostszych miar.
- Definiuje parametr, aby zastosować stawkę rabatu w czasie zapytania.
- Zawiera metadane agenta dla pulpitów nawigacyjnych i narzędzi sztucznej inteligencji.
Jeśli dopiero zaczynasz korzystać z widoków metryk, zacznij od sekcji Tworzenie widoku metryki , aby poznać podstawy. Ten samouczek rozszerza tę podstawę o rzeczywistą złożoność.
Wymagania
Do ukończenia tego samouczka niezbędne są następujące elementy:
- Obszar roboczy z włączonym Unity Catalog.
- Usługa SQL Warehouse lub zasób obliczeniowy z uruchomionym środowiskiem Databricks Runtime w wersji 17.3 lub nowszej.
Aby uzyskać pełną listę uprawnień wymaganych do utworzenia widoku metryki, zobacz Wymagania wstępne.
Note
Tworzenie widoku metryk jest dostępne w Databricks Runtime 16.4 i nowszych. Ten samouczek wykorzystuje funkcje, które wymagają środowiska Databricks Runtime w wersji 17.3 lub nowszej, a niektóre kroki wymagają jeszcze nowszej wersji środowiska Databricks Runtime. Aby sprawdzić minimalną wersję środowiska uruchomieniowego dla poszczególnych funkcji, zobacz Dostępność funkcji widoku metryk.
Model danych
Zestaw danych TPC-H modeluje hurtowy łańcuch dostaw. Samouczek używa trzech tabel połączonych w schemacie płatka śniegu.
-
ordersłączy się zcustomernao_custkey = c_custkey -
customerłączy się znationnac_nationkey = n_nationkey
| Tabela | Rola | Kolumny kluczy |
|---|---|---|
orders |
Tabela faktów (transakcje zamówień) |
o_orderkey, o_custkey, , o_totalprice, o_orderdateo_orderstatus |
customer |
Tabela wymiarowa (szczegóły klienta) |
c_custkey, , c_name, , c_mktsegmentc_nationkey |
nation |
Tabela wymiarowa (odniesienie do kraju lub regionu) |
n_nationkey, , n_namen_regionkey |
Krok 1. Utwórz widok metryki i otwórz edytor
Ten widok metryki można utworzyć w interfejsie użytkownika Eksploratora wykazu, wygenerować go przy użyciu kodu Genie lub napisać pełną definicję YAML bezpośrednio. Wszystkie trzy metody sprowadzają się do pojedynczej definicji YAML, która opisuje widok metryki. W każdym z poniższych kroków wybierz kartę Interfejs użytkownika eksploratora wykazu lub edytor YAML , aby postępować zgodnie z preferowaną metodą. Jeśli używasz edytora YAML, przykładowy kod w każdym kroku jest częścią definicji YAML, która odpowiada kompilacji w tym kroku.
Note
Przykłady YAML w tym samouczku używają słowa kluczowego fields. Podczas tworzenia widoku metrycznego w edytorze low-code generowany plik YAML zamiast tego używa równoważnego słowa kluczowego dimensions. Zobacz Pola.
Jeśli nie znasz interfejsu użytkownika służącego do tworzenia widoku metryki, zobacz Utwórz widok metryki.
Aby utworzyć widok metryczny, w Eksploratorze katalogu:
- Wyszukaj
samples.tpch.orders. - Kliknij nazwę tabeli.
- Kliknij pozycję Utwórz>widok metryki i nadaj widokowi nazwę.
Szczegółowe instrukcje tworzenia znajdziesz w artykule Tworzenie widoku metryk. Po otwarciu edytora użyj karty UI, aby tworzyć interaktywnie, lub kliknij przycisk <>, aby edytować definicję YAML bezpośrednio.
Krok 2. Konfigurowanie widoku metryki
Ustaw wersję i opis widoku metryk. Element version określa wersję specyfikacji YAML, a element comment opisuje cel widoku wskaźnika, widoczny w Catalog Explorer. Azure Databricks zarządza wersją za ciebie.
Interfejs użytkownika Eksploratora wykazu
Wersja jest zdefiniowana dla Ciebie. Aby dodać lub edytować opis po zapisaniu widoku metryki:
- W Catalog Explorer wyszukaj widok miary i kliknij jego nazwę.
- Kliknij element Opis, a następnie wprowadź opis widoku metryki. Możesz użyć przykładowego opisu pokazanego na karcie edytora YAML .
Ten tekst odpowiada comment polu w definicji YAML. Aby uzyskać więcej sposobów edytowania widoku metryki, zobacz Edytowanie widoku metryki.
Edytor 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. Definiowanie źródła i sprzężeń
Zdefiniuj główną tabelę źródłową i połącz powiązane tabele:
-
sourceustawia tabelę faktów (zamówienia) jako ziarno. -
joinsumożliwia korzystanie z danych klientów przy użyciu relacji wiele-do-jednego. - Sprzężenie zagnieżdżone
nationdemonstruje wzorzec schematu płatka śniegu, łącząc się wcustomercelu uzyskania dostępu do danych geograficznych, gdzie naród jest podwymiarowym klientem.
Interfejs użytkownika Eksploratora wykazu
W tym przykładzie dodano dwa połączenia, oba typu wiele do jednego, w celu zamodelowania schematu śnieżynki.
Aby dodać sprzężenie customer :
- W edytorze kliknij pozycję Złączenie w prawym górnym narożniku, aby otworzyć okno dialogowe Dodaj złączenie.
- Wyszukaj
samples.tpch.customer, kliknij nazwę tabeli, a następnie kliknij Dodaj. - Ustaw warunek łączenia na
o_custkey = c_custkey. - W obszarze Dołącz kardynalność wybierz pozycję Wiele do jednego. Aby uzyskać wskazówki dotyczące wybierania kardynalności, zobacz Łączenie kardynalności.
Następnie dodaj zagnieżdżone połączenie nation. Powtórz kroki dla sprzężenia customer, łącząc samples.tpch.nation na c_nationkey = n_nationkey. Zagnieżdżenie złączenia pod customer modeluje nation jako podwymiar klienta.
Instrukcje dotyczące okna dialogowego złączenia pełnego znajdują się w sekcji Krok 2: Dodaj złączenie.
Edytor 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. Definiowanie filtru
filter ogranicza dane źródłowe i ma zastosowanie do wszystkich zapytań w widoku metryki. Ten samouczek ogranicza widok metryk do najnowszych danych.
Interfejs użytkownika Eksploratora wykazu
Aby zdefiniować filtr:
- W edytorze kliknij
Filtruj w prawym górnym rogu.
- Użyj menu rozwijanych, aby ustawić kolumnę na
o_orderdate, operator na>=, a wartość na1995-01-01.
Aby uzyskać więcej informacji na temat filtrów, zobacz Krok 3. Definiowanie filtru.
Edytor YAML
filter: o_orderdate >= '1995-01-01'
Krok 5. Definiowanie pól
Pola to atrybuty, według których użytkownicy grupują i filtrują. Pole może być kolumną kategorii (np. regionem lub stanem) lub nieagregowaną kolumną liczbową (taką jak wiek lub ilość), którą użytkownicy agregują w czasie zapytania.
Metadane agenta
Każde pole i każda miara w tym samouczku zawiera właściwości metadanych agenta, które usprawniają współpracę widoku metryk z pulpitami nawigacyjnymi i narzędziami AI:
-
display_name: Czytelna etykieta wyświetlana w wizualizacjach zamiast nazwy kolumny technicznej. -
synonyms: Alternatywne nazwy, które pomagają narzędziom sztucznej inteligencji, takim jak Genie, odnajdywać pola i miary za pomocą zapytań w języku naturalnym. -
format: Jak wartości są wyświetlane na powierzchniach podrzędnych, takich jak pulpity nawigacyjne, notesy i wyniki zapytania SQL, na przykład waluta, liczba lub procent.
Te właściwości są opcjonalne, ale zalecane. Definicje pól i miar w poniższych krokach są podane bezpośrednio w ich treści.
Definicje pola
Ten samouczek dodaje następujące elementy:
-
Pola czasowe:
order_date,order_monthiorder_yearna wielu stopniach szczegółowości, aby obsługiwać różne potrzeby analizy. -
Przekształcone pola:
order_statusiorder_priority, które wykorzystująCASEiSPLITdo przekształcania kodów źródłowych w czytelne etykiety. -
Pola sprzężone:
customer_name,market_segmenticustomer_nation, odwołujące się do tabel sprzężonych przy użyciu nazwy sprzężenia. Zagnieżdżone kolumny łączenia używają łańcuchowej notacji kropkowej, na przykładcustomer.nation.n_name, do poruszania się po schemacie typu snowflake.
Interfejs użytkownika Eksploratora wykazu
Edytor automatycznie dodaje wszystkie kolumny źródłowe do karty Pola . Edytuj, zmień nazwę, usuń i dodaj pola, aby widok metryki zdefiniował dokładnie następujące elementy. Dla każdego pola kliknij jego nazwę, aby go edytować, lub kliknij
Dodaj , aby go utworzyć, a następnie ustaw wyrażenie w konstruktorze lub trybie niestandardowym . Ustaw nazwę wyświetlaną i synonimy dla każdego pola, jak pokazano.
order_date: w trybie Builder wybierz kolumnę
o_orderdate. Ustaw nazwę wyświetlaną naOrder Date.order_month: W trybie Własny wprowadź
DATE_TRUNC('MONTH', order_date). Ustaw nazwę wyświetlaną naOrder Month.order_year: W trybie niestandardowym wprowadź
YEAR(order_date). Ustaw nazwę wyświetlaną naOrder Year.order_status: W trybie niestandardowym wprowadź następujące wyrażenie. Ustaw nazwę wyświetlaną na
Order Statusi synonimy nastatus,fulfillment status.CASE o_orderstatus WHEN 'O' THEN 'Open' WHEN 'P' THEN 'Processing' WHEN 'F' THEN 'Fulfilled' ENDorder_priority: W trybie Custom wprowadź
SPLIT(o_orderpriority, '-')[0]. Ustaw nazwę wyświetlaną naPriority.customer_name: W trybie Builder wybierz z dołączonej tabeli
c_namekolumnęcustomer. Ustaw nazwę wyświetlaną naCustomer Name.market_segment: W trybie Builder wybierz kolumnę
c_mktsegmentz połączonej tabelicustomer. Ustaw nazwę wyświetlaną naMarket Segmenti synonimy nasegment,industry.customer_nation: W trybie Niestandardowy wprowadź
customer.nation.n_name, aby odwołać się do zagnieżdżonegonationzłączenia. Ustaw nazwę wyświetlaną naCountryi synonimy nanation,country.
Aby zapoznać się z pełną procedurą dodawania pól, zobacz Krok 4: Dodawanie pól.
Edytor 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. Definiowanie parametrów
Parametry umożliwiają przekazywanie wartości do widoku metryki podczas wykonywania zapytania, dzięki czemu pojedyncza definicja może obsługiwać wiele wariantów zapytań. Ten samouczek dodaje parametr discount, który późniejsza miara wykorzystuje do obliczania przychodów po rabacie. Parametr ma wartość domyślną 0, więc zapytania, które nie przekazują wartości, zwracają przychód bez rabatu. Aby uzyskać więcej informacji na temat parametrów, zobacz Używanie parametrów z widokami metryk.
Interfejs użytkownika Eksploratora wykazu
W nagłówku edytora kliknij pozycję Dodaj parametr. Wprowadź discount jako nazwę, a następnie wprowadź wartość domyślną 0 i wybierz typ danych double.
Edytor YAML
parameters:
- name: discount
data_type: double
default: 0
Krok 7. Definiowanie miar
Miary to obliczenia, które użytkownicy chcą analizować. Najpierw zdefiniuj miary atomowe, a następnie zastosuj kompozycję do budowy złożonych metryk, które odwołują się do wcześniej zdefiniowanych miar za pomocą funkcji MEASURE(). Ustaw display_name, format i synonyms dla każdego pomiaru zgodnie z opisem w sekcji Metadane agenta. Ten samouczek dodaje następujące elementy:
-
Miary atomowe:
order_count,total_revenueiunique_customers, proste agregacje stanowiące podstawowe elementy składowe. -
Miary złożone:
avg_order_valueirevenue_per_customer, które odwołują się do wcześniej zdefiniowanych miar zMEASURE()zamiast duplikować logikę agregacji. W przypadkutotal_revenuezmian te miary automatycznie używają zaktualizowanej definicji. Zobacz Kompozycyjność. -
Przefiltrowane miary:
open_order_revenueifulfilled_order_revenue, które służąFILTER (WHERE ...)do tworzenia metryk warunkowych bez oddzielnych pól. -
Miara sparametryzowana:
discounted_revenue, która odwołuje się do parametrudiscount, aby zastosować stawkę rabatową. Zobacz Używanie parametrów w widokach metryk. -
Miara okna czasowego:
t7d_customers, która oblicza kroczącą 7-dniową liczbę unikatowych klientów. Zobacz Miary okien , aby uzyskać więcej wzorców miar okien.
Interfejs użytkownika Eksploratora wykazu
Edytor automatycznie dodaje przykładową COUNT(*) miarę. Edytuj lub usuń je i dodaj miary, aby widok metryki zdefiniował dokładnie następujące elementy. Dla każdej miary kliknij
Dodaj, a następnie ustaw wyrażenie w trybie Builder lub Custom. Ustaw nazwę wyświetlaną, format i synonimy , jak pokazano. Użyj 2 miejsc dziesiętnych dla formatów walut i 0 miejsc dziesiętnych dla formatów liczb.
-
order_count: W trybie Builder wybierz agregację Count distinct dla
o_orderkey. Ustaw nazwę wyświetlaną naOrder Count, format na Liczba. -
total_revenue: W trybie Builder wybierz agregację Suma dla
o_totalprice. Ustaw nazwę wyświetlaną naTotal Revenue, format na Waluta (USD), synonimy narevenue,sales. -
discounted_revenue: W trybie Custom wprowadź
SUM(o_totalprice * (1 - discount)). Ustaw nazwę wyświetlaną naDiscounted Revenue, format na Waluta (USD). -
unique_customers: W trybie Builder wybierz agregację Liczba unikalnych wartości dla
o_custkey. Ustaw nazwę wyświetlaną naUnique Customers, format na Liczba. -
avg_order_value: w trybie niestandardowym wprowadź
MEASURE(total_revenue) / MEASURE(order_count). Ustaw nazwę wyświetlaną naAvg Order Value, format na Waluta (USD), synonimy naAOV. -
revenue_per_customer: W trybie Niestandardowym wprowadź
MEASURE(total_revenue) / MEASURE(unique_customers). Ustaw nazwę wyświetlaną naRevenue per Customer, format na Waluta (USD). -
open_order_revenue: w trybie niestandardowym wprowadź wartość
SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'O'). Ustaw nazwę wyświetlaną naOpen Order Revenue, format na Waluta (USD), synonimy nabacklog. -
fulfilled_order_revenue: W trybie niestandardowym wprowadź
SUM(o_totalprice) FILTER (WHERE o_orderstatus = 'F'). Ustaw nazwę wyświetlaną naFulfilled Revenue, format na Waluta (USD). -
t7d_customers: W trybie Custom wprowadź
COUNT(DISTINCT o_custkey). Następnie kliknij pozycję + Okno i skonfiguruj okno uporządkowane wedługorder_datez zakresemtrailing 7 dayilastagregacją częściową. Ustaw nazwę wyświetlaną na7-Day Rolling Customers, format na Liczba.
Aby zapoznać się z pełnymi krokami miary, zobacz Krok 5. Dodawanie miar.
Edytor 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
Przejrzyj pełną definicję
Po wykonaniu powyższych kroków widok metryki ma następującą pełną definicję:
Wyświetlanie pełnej definicji 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
Tworzenie widoku metryk przy użyciu języka SQL
Jeśli tworzysz tę definicję poza Eksploratorem wykazu, uruchom następujący kod SQL, aby utworzyć widok metryki:
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
$$;
Aby uzyskać inne sposoby tworzenia widoku metryki, zobacz Tworzenie widoku metryki.
Krok 8. Wykonywanie zapytań względem widoku metryk
Wykonywanie zapytań względem widoku metryki przy użyciu przyjaznej dla firmy składni. Funkcja MEASURE() agreguje miarę na poziomie szczegółowości wybranych pól.
Agregowanie miar według wymiaru
Ten przykład agreguje miary w wielu polach. Zwraca całkowity przychód, liczbę zamówień i średnią wartość zamówienia według kraju klienta i segmentu rynkowego w pierwszej kolejności według najwyższych przychodów:
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;
Analizowanie trendu miesięcznego
Ten przykład łączy pole czasu z miarami w celu śledzenia trendu. Zwraca całkowity przychód i przychód z zamówienia otwartego (zaległości) według miesiąca i stanu zamówienia:
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;
Przekazywanie wartości parametru
Ponieważ widok metryki definiuje parametr, można go wywołać jako funkcję wartości tabeli i przekazać wartość w czasie zapytania. Poniższe zapytanie stosuje 10% rabatu. Ponieważ discount ma wartość domyślną 0, zapytania, które pomijają argument zwraca niezdyskrywany przychód:
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;
Zdobytą wiedzę
Utworzono widok metryki, który pokazuje:
| Funkcja | Example |
|---|---|
| Sprzężenia schematu płatka śniegu | Zamówienia z klienta do narodu (zagnieżdżone łączenia wiele do jednego) |
| Pola czasu | Granularność daty, miesiąca, roku |
| Przekształcone pola |
CASE instrukcje, SPLIT funkcje |
| Proste działania |
COUNT, SUM |
| Możliwość komponowania |
avg_order_value i revenue_per_customer odwołują się do wcześniej zdefiniowanych miar przy użyciu MEASURE() |
| Przefiltrowane miary |
FILTER (WHERE ...) dla agregacji warunkowych |
| Miary okien | Przesuwająca się liczba klientów w okresie 7-dniowym za pomocą trailing 7 day |
| Parametry |
discount parametr zastosowany w discounted_revenue mierze |
| Metadane agenta |
display_name, format, synonyms dotyczące pól i miar |
Dodatkowe zasoby
- Mechanizmy okienkowe do obliczania średnich kroczących oraz sum narastających od początku roku.
- Materializacja widoków metryk w celu zwiększenia wydajności zapytań dla dużych zestawów danych.
- Użyj widoków metryk , aby użyć widoku metryki w pulpitach nawigacyjnych sztucznej inteligencji/analizy biznesowej.