Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Sprzężenia w widokach metryk obsługują zarówno bezpośrednie sprzężenia z tabeli faktów do tabel wymiarów (schemat gwiazdy) i sprzężenia przechodzące z tabeli faktów do tabel wymiarów, a następnie do tabel wymiarów podrzędnych, umożliwiając sprzężenia wieloskokowe w znormalizowanych tabelach wymiarów (schematy płatków śniegu). Na tej stronie wyjaśniono, jak zdefiniować sprzężenia w definicji YAML widoku metryki.
Uwaga / Notatka
Tabele sprzężone nie mogą zawierać MAP kolumn typów. Aby dowiedzieć się, jak rozpakować wartości z MAP kolumn typu, zobacz Eksploduj zagnieżdżone elementy z mapy lub tablicy.
Modele schematów gwiazdy
W schemacie source gwiazdy jest tabelą faktów i łączy się z co najmniej jedną tabelą wymiarów przy użyciu elementu LEFT OUTER JOIN. Widoki metryk łączą tabele faktów i wymiarów potrzebne dla określonego zapytania na podstawie wybranych wymiarów i miar.
Określ kolumny sprzężenia w widoku metryki przy użyciu ON klauzuli lub klauzuli USING .
-
ONklauzula: używa wyrażenia logicznego do zdefiniowania warunku sprzężenia. -
USINGklauzula: Wyświetla kolumny o tej samej nazwie zarówno w tabeli nadrzędnej, jak i tabeli sprzężonej. W przypadku sprzężeń pierwszego poziomu element nadrzędny jest źródłem widoku metryki. W przypadku sprzężeń zagnieżdżonych w schemacie płatka śniegu element nadrzędny jest bezpośrednim sprzężenia nadrzędnego.
Połączenie powinno być zgodne z relacją wiele do jednego. W przypadku wielu do wielu wybierany jest pierwszy pasujący wiersz ze sprzężonej tabeli wymiarów.
Uwaga / Notatka
Analizatory YAML 1.1 (takie jak PyYAML) mogą błędnie interpretować niektóre niekwestionowane klucze, takie jak on, , offyes, nolub NO, jako wartości logiczne. Może to spowodować błędy sprzężenia. Aby uniknąć tego problemu, opakuj te klucze w cudzysłowie. Przykład: 'on': source.dim_fk = dim.pk
source: catalog.schema.fact_table
joins:
# The on clause supports a boolean expression
- name: dimension_table_1
source: catalog.schema.dimension_table_1
on: source.dimension_table_1_fk = dimension_table_1.pk
# The using clause supports an array of columns
# found in both of the tables being joined.
- name: dimension_table_2
source: catalog.schema.dimension_table_2
using:
- dimension_table_2_key_a
- dimension_table_2_key_b
dimensions:
# Dimension referencing a join column from dimension_table_1 using dot notation
- name: Dimension table 1 key
expr: dimension_table_1.pk
measures:
# Measure referencing a join column from dimension_table_1
- name: Count of dimension table 1 keys
expr: COUNT(dimension_table_1.pk)
Uwaga / Notatka
Przestrzeń nazw source odnosi się do kolumn ze źródła widoku metryk, podczas gdy sprzężenie name odnosi się do kolumn z połączonej tabeli. Na przykład w warunku sprzężenia source.dimension_table_1_fk = dimension_table_1.pk, source odnosi się do tabeli źródłowej widoku metryk (fact_table), a dimension_table_1 odnosi się do tabeli sprzężonej. Odwołanie jest domyślnie ustawione na tabelę sprzężeń, gdy w klauzuli on nie podano żadnego prefiksu.
Schemat płatka śniegu modelu
Schemat płatka śniegu rozszerza schemat gwiazdy, normalizując tabele wymiarów i łącząc je z podwymiarowymi. Spowoduje to utworzenie wielowymiarowej struktury sprzężenia, która może być zgodna z głębią modelu danych.
Uwaga / Notatka
Sprzężenia snowflake wymagają środowiska Databricks Runtime compute 17.1 lub nowszego.
Aby zdefiniować sprzężenie, które modeluje schemat płatka śniegu:
- Utwórz widok metryki.
- Dodaj sprzężenia pierwszego poziomu (schemat gwiazdy).
- Łączenie z innymi tabelami wymiarów.
- Uwidocznij zagnieżdżone wymiary, dodając wymiary w widoku.
W poniższym przykładzie użyto zestawu danych TPCH, aby zilustrować sposób modelowania schematu płatka śniegu. Dostęp do zestawu danych TPCH można uzyskać w samples katalogu w obszarze roboczym usługi Azure Databricks.
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
joins:
- name: region
source: samples.tpch.region
on: nation.n_regionkey = region.r_regionkey
dimensions:
- name: clerk
expr: o_clerk
- name: customer
expr: customer # returns the full customer row as a struct
- name: customer_name
expr: customer.c_name
- name: nation
expr: customer.nation
- name: nation_name
expr: customer.nation.n_name