Na czym polega architektura lakehouse typu medallion?
Architektura medalionu opisuje serię warstw danych, które określają jakość danych przechowywanych w Lakehouse. Usługa Azure Databricks zaleca zastosowanie wielowarstwowego podejścia do stworzenia jednego źródła prawdy dla produktów danych korporacyjnych.
Ta architektura gwarantuje niepodzielność, spójność, izolację i trwałość, ponieważ dane przechodzą przez wiele warstw weryfikacji i przekształceń przed zapisaniem w układzie zoptymalizowanym pod kątem wydajnej analizy. Terminy brązowe (surowe), srebrne (zweryfikowane) i złote (wzbogacone) opisują jakość danych w każdej z tych warstw.
Architektura medalionu jako wzorzec projektowania danych
Architektura medalionu to wzorzec projektowania danych używany do logicznego organizowania danych. Jej celem jest przyrostowe i stopniowe ulepszanie struktury i jakości danych w miarę ich przepływu przez poszczególne warstwy architektury (od tabel warstwy Bronze ⇒ Silver ⇒ Gold). Architektury medalionowe są czasami określane również jako architektury wieloskokowe.
Postępując zgodnie z postępem danych w tych warstwach, organizacje mogą przyrostowo poprawić jakość i niezawodność danych, dzięki czemu będą bardziej odpowiednie dla aplikacji do analizy biznesowej i uczenia maszynowego.
Stosowanie architektury medalonu jest zalecanym najlepszym rozwiązaniem, ale nie wymaganiem.
Pytanie | Brąz | Srebrny | Złoty |
---|---|---|---|
Co się dzieje w tej warstwie? | Pozyskiwanie nieprzetworzonych danych | Czyszczenie i walidacja danych | Modelowanie wymiarowe i agregacja |
Kto jest zamierzonym użytkownikiem? |
|
|
|
Przykładowa architektura medalionu
W tym przykładzie architektury medalionu przedstawiono brązowe, srebrne i złote warstwy do użycia przez zespół ds. operacji biznesowych. Każda warstwa jest przechowywana w innym schemacie wykazu operacji.
-
Warstwa brązowa (
ops.bronze
): Pobiera nieprzetworzone dane z takich źródeł jak magazyn w chmurze, platforma Kafka i usługa Salesforce. W tym miejscu nie jest przeprowadzane czyszczenie danych ani walidacja. -
Warstwa srebrna (
ops.silver
): czyszczenie i walidacja danych są wykonywane w tej warstwie.- Dane dotyczące klientów i transakcji są czyszczone przez usuwanie pustych wartości oraz separowanie nieprawidłowych rekordów. Te zestawy danych są przyłączone do nowego zestawu danych o nazwie
customer_transactions
. Analitycy danych mogą używać tego zestawu danych do analizy predykcyjnej. - Podobnie konta i zestawy danych okazji sprzedaży z Salesforce są łączone w celu utworzenia
account_opportunities
, rozszerzonego o dane dotyczące konta. - Dane
leads_raw
są czyszczone w zestawie danych o nazwieleads_cleaned
.
- Dane dotyczące klientów i transakcji są czyszczone przez usuwanie pustych wartości oraz separowanie nieprawidłowych rekordów. Te zestawy danych są przyłączone do nowego zestawu danych o nazwie
-
Warstwa złota (
ops.gold
): ta warstwa jest przeznaczona dla użytkowników biznesowych. Zawiera mniej zestawów danych niż srebro i złoto.-
customer_spending
: Średnie i łączne wydatki dla każdego klienta. -
account_performance
: Dzienna wydajność dla każdego konta. -
sales_pipeline_summary
: informacje na temat całościowego potoku sprzedaży. -
business_summary
: Wysoce zagregowane informacje dla kadry kierowniczej.
-
Pozyskiwanie danych pierwotnych do warstwy z brązu
Warstwa brązowa zawiera nieprzetworzone, niewalidowane dane. Dane pozyskane w warstwie brązu zwykle mają następujące cechy:
- Zawiera i utrzymuje stan pierwotny źródła danych w oryginalnych formatach.
- Dołączany jest stopniowo i rośnie wraz z upływem czasu.
- Jest przeznaczony do używania przez obciążenia, które wzbogacają dane dla tabel srebrnych, a nie do uzyskiwania dostępu przez analityków i data scientistów.
- Służy jako pojedyncze źródło prawdy, zachowując wierność danych.
- Umożliwia ponowne przetwarzanie i inspekcję przez przechowywanie wszystkich danych historycznych.
- Może to być dowolna kombinacja transakcji strumieniowych i wsadowych ze źródeł, w tym magazynów obiektów w chmurze (na przykład S3, GCS, ADLS), magistral komunikatów (na przykład Kafka, Kinesis itp.) i systemów federacyjnych (na przykład Lakehouse Federation).
Ograniczanie oczyszczania lub walidacji danych
Minimalna weryfikacja danych jest wykonywana w warstwie brązowej. Aby zapewnić ochronę przed porzuconymi danymi, usługa Azure Databricks zaleca przechowywanie większości pól jako ciągów, wariantów lub plików binarnych w celu ochrony przed nieoczekiwanymi zmianami schematu. Kolumny metadanych mogą być dodawane, takie jak pochodzenie lub źródło danych (na przykład _metadata.file_name
).
Weryfikowanie i deduplikowanie danych w warstwie srebrnej
Czyszczenie i walidacja danych są wykonywane w warstwie srebrnej.
Buduj srebrne stoły z warstwy brązu
Aby utworzyć warstwę srebrną, odczytaj dane z co najmniej jednej tabeli z brązu lub srebra i zapisuj dane do tabel srebrnych.
Usługa Azure Databricks nie zaleca bezpośredniego zapisu do srebrnych tabel w trakcie pozyskiwania danych. Jeśli zapisujesz bezpośrednio z procesu pozyskiwania danych, wprowadzisz błędy spowodowane zmianami schematu lub uszkodzonymi rekordami w źródłach danych. Zakładając, że wszystkie źródła są tylko dodawane, skonfiguruj większość odczytów z warstwy bronze jako odczyty strumieniowe. Odczyty wsadowe powinny być zarezerwowane dla małych zestawów danych (na przykład małych tabel wymiarowych).
Warstwa srebrna reprezentuje zweryfikowane, oczyszczone i wzbogacone wersje danych. Warstwa srebra:
- Zawsze należy uwzględnić co najmniej jedną zweryfikowaną, niegregowaną reprezentację każdego rekordu. Jeśli reprezentacje zagregowane napędzają wiele obciążeń podrzędnych, te reprezentacje mogą znajdować się w warstwie srebrnej, ale zazwyczaj znajdują się w warstwie złota.
- To miejsce, w którym wykonujesz czyszczenie danych, deduplikację i normalizację.
- Poprawia jakość danych, poprawiając błędy i niespójności.
- Strukturyzuje dane w bardziej przystępnym formacie do dalszego przetwarzania.
Wymuszanie jakości danych
W tabelach silver są wykonywane następujące operacje:
- Wymuszanie schematów
- Obsługa wartości null i brakujących wartości
- Deduplikacja danych
- Rozwiązywanie problemów z danymi nieuporządkowanymi i późno przybywającymi
- Kontrole jakości danych i egzekwowanie
- Ewolucja schematu
- Rzutowanie typów
- Połączenia
Rozpoczynanie modelowania danych
Często rozpoczyna się modelowanie danych w warstwie srebrnej, w tym wybieranie sposobu reprezentowania silnie zagnieżdżonych lub częściowo ustrukturyzowanych danych:
- Użyj
VARIANT
typu danych. - Użyj
JSON
ciągów. - Tworzenie struktur, map i tablic.
- Spłaszczanie schematu lub normalizacja danych w wielu tabelach.
Analiza zużycia energii z warstwą złota
Warstwa złota reprezentuje wysoce wyrafinowane widoki danych, które napędzają analizę podrzędną, pulpity nawigacyjne, uczenie maszynowe i aplikacje. Dane warstwy złotej są często wysoce agregowane i filtrowane dla określonych okresów lub regionów geograficznych. Zawiera on semantycznie znaczące zestawy danych, które są mapowane na funkcje i potrzeby biznesowe.
Warstwa złota:
- Składa się z zagregowanych danych dostosowanych do analizy i raportowania.
- Jest zgodna z logiką biznesową i wymaganiami.
- Jest zoptymalizowany pod kątem wydajności zapytań i dashboardów.
Dopasowanie do logiki biznesowej i wymagań
Warstwa złota to miejsce, w którym modelujesz dane na potrzeby raportowania i analizy przy użyciu modelu wymiarowego, ustanawiając relacje i definiując miary. Analitycy z dostępem do danych w złocie powinni mieć możliwość znajdowania danych specyficznych dla domeny i odpowiadania na pytania.
Ponieważ warstwa złota modeluje domenę biznesową, niektórzy klienci tworzą wiele warstw złota, aby spełnić różne potrzeby biznesowe, takie jak kadry, finanse i dział IT.
Tworzenie agregacji dostosowanych do analizy i raportowania
Organizacje często muszą tworzyć funkcje agregujące dla miar, takich jak średnie, liczby, maksimum i minimum. Jeśli na przykład twoja firma musi odpowiedzieć na pytania dotyczące łącznej sprzedaży tygodniowej, możesz utworzyć zmaterializowany widok o nazwie weekly_sales
, który poprzedza te dane, aby analitycy i inni nie musieli ponownie tworzyć często używanych zmaterializowanych widoków.
CREATE OR REPLACE MATERIALIZED VIEW weekly_sales AS
SELECT week,
prod_id,
region,
SUM(units) AS total_units,
SUM(units * rate) AS total_sales
FROM orders
GROUP BY week, prod_id, region
Optymalizowanie pod kątem wydajności zapytań i pulpitów nawigacyjnych
Optymalizacja tabel warstw złota pod kątem wydajności jest najlepszym rozwiązaniem, ponieważ te zestawy danych są często odpytywane. Duże ilości danych historycznych są zwykle dostępne w warstwie sliver i nie są materializowane w warstwie złota.
Kontrolowanie kosztów przez dostosowanie częstotliwości pozyskiwania danych
Kontrolowanie kosztów przez określenie, jak często pozyskiwać dane.
Częstotliwość pozyskiwania danych | Koszt | Opóźnienie | Przykłady deklaratywne | Przykłady proceduralne |
---|---|---|---|---|
Ciągłe przyrostowe wchłanianie | Wyższa | Obniżyć |
|
|
Wyzwalane pozyskiwanie przyrostowe | niższy | Wyższa |
|
|
Pozyskiwanie wsadowe przy użyciu ręcznego pozyskiwania przyrostowego | Obniżyć | Najwyższy, ze względu na rzadkie uruchomienia. |
|