Co to są tabele na żywo usługi Delta?
Uwaga
Funkcje Delta Live Tables wymagają planu Premium. Aby uzyskać więcej informacji, skontaktuj się z zespołem ds. kont usługi Databricks.
Delta Live Tables to struktura deklaratywna, która upraszcza tworzenie niezawodnych i utrzymywalnych potoków wyodrębniania, przekształcania i ładowania (ETL). Określasz, jakie dane mają być pozyskiwane i jak je przekształcać, a tabele Delta Live Tables automatyzują kluczowe aspekty zarządzania potokiem danych, w tym aranżację, zarządzanie obliczeniami, monitorowanie, wymuszanie jakości danych i obsługę błędów.
Delta Live Tables jest oparta na platformie Apache Spark, ale zamiast definiować potoki danych przy użyciu serii oddzielnych zadań platformy Apache Spark, należy zdefiniować tabele przesyłania strumieniowego i zmaterializowane widoki, które system powinien utworzyć, oraz zapytania wymagane do wypełnienia i zaktualizowania tych tabel przesyłania strumieniowego i zmaterializowanych widoków.
Aby dowiedzieć się więcej o zaletach tworzenia i uruchamiania potoków ETL przy użyciu tabel delta Live Tables, zobacz stronę produktu Delta Live Tables.
korzyści wynikające z funkcji Delta Live Tables w porównaniu z platformą Apache Spark
Apache Spark to wszechstronny aparat analizy ujednoliconej typu open source, w tym ETL. Delta Live Tables opierają się na technologii Spark, aby rozwiązywać określone i typowe zadania przetwarzania ETL. Delta Live Tables może znacznie przyspieszyć ścieżkę do środowiska produkcyjnego, gdy wymagania obejmują te zadania przetwarzania, w tym:
- Pozyskiwanie danych z typowych źródeł.
- Przekształcanie danych przyrostowo.
- Wykonywanie przechwytywania zmian w danych (CDC).
Jednak Delta Live Tables nie nadają się do implementowania niektórych typów logiki proceduralnej. Na przykład wymagania dotyczące przetwarzania, takie jak zapisywanie w tabeli zewnętrznej lub dołączanie warunkowego, który działa w zewnętrznym magazynie plików lub tabelach bazy danych, nie mogą być wykonywane wewnątrz kodu definiującego zestaw danych delta Live Tables. Aby zaimplementować przetwarzanie nieobsługiwane przez Delta Live Tables, Databricks zaleca używanie Apache Spark lub uwzględnienie potoku w zadaniu Databricks, które wykonuje przetwarzanie w osobnym podzadaniu. Zobacz zadanie potoku Delta Live Tables dla pracy.
W poniższej tabeli porównaliśmy tabele delta live z platformą Apache Spark:
Zdolność | Tabele na żywo delty | Apache Spark |
---|---|---|
Przekształcenia danych | Dane można przekształcać przy użyciu języka SQL lub Python. | Dane można przekształcać przy użyciu języków SQL, Python, Scala lub R. |
Przyrostowe przetwarzanie danych | Wiele przekształceń danych jest automatycznie przetwarzanych przyrostowo. | Musisz określić, jakie dane są nowe, aby można było je stopniowo przetwarzać. |
Orkiestracja | Przekształcenia są automatycznie orkiestrowane w odpowiedniej kolejności. | Należy upewnić się, że różne przekształcenia są uruchamiane w odpowiedniej kolejności. |
Paralelizm | Wszystkie przekształcenia są wykonywane z prawidłowym stopniem równoległości. | Aby uruchamiać niepowiązane przekształcenia równolegle, trzeba użyć wątków lub zewnętrznego orkiestratora. |
Obsługa błędów | Błędy są automatycznie ponawiane. | Musisz zdecydować, jak obsługiwać błędy i ponawiać próby. |
Monitorowanie | Metryki i zdarzenia są rejestrowane automatycznie. | Musisz napisać kod, aby zbierać metryki dotyczące wykonywania lub jakości danych. |
Kluczowe Pojęcia Dotyczące Delta Live Tables
Na poniższej ilustracji przedstawiono ważne składniki przepływu pracy Delta Live Tables, a następnie objaśnienie każdego z nich.
Tabela streamingowa
Tabela przesyłania strumieniowego to tabela delty zawierająca co najmniej jeden strumień zapisujący do niej. Tabele przesyłania strumieniowego są często używane do pozyskiwania, ponieważ przetwarzają dane wejściowe dokładnie raz i mogą przetwarzać duże ilości danych tylko do dołączania. Strumieniowe tablice są również przydatne do przekształcania strumieni danych o dużym wolumenie przy niskim opóźnieniu.
Zmaterializowany widok
Zmaterializowany widok to widok, który zawiera wstępnie skompilowane rekordy na podstawie zapytania definiującego zmaterializowany widok. Rekordy w zmaterializowanym widoku są automatycznie aktualizowane przez tabele delta Live Tables na podstawie harmonogramu aktualizacji lub wyzwalaczy potoku. Za każdym razem, gdy zmaterializowany widok jest aktualizowany, gwarantowane jest posiadanie takich samych wyników jak uruchomienie zapytania definiującego dla najnowszych dostępnych danych. Jednak często odbywa się to bez ponownego skompilowania pełnego wyniku od podstaw przy użyciu odświeżania przyrostowego. Zmaterializowane widoki są często używane do przekształceń.
Widoki
Wszystkie widoki w usłudze Azure Databricks obliczają wyniki ze źródłowych zestawów danych podczas wykonywania zapytań, wykorzystując optymalizacje buforowania, gdy są dostępne. Tabele Delta Live nie publikują widoków w katalogu, więc do widoków można odwoływać się tylko w ramach pipeline'u, w którym są zdefiniowane. Widoki są przydatne jako zapytania pośrednie, które nie powinny być widoczne dla użytkowników końcowych lub systemów. Usługa Databricks zaleca używanie widoków do wymuszania ograniczeń jakości danych lub przekształcania i wzbogacania zestawów danych, które obsługują wiele zapytań podrzędnych.
Rurociąg
Pipeline to kolekcja strumieniowych tabel oraz zmaterializowanych widoków, które są aktualizowane razem. Te tabele przesyłania strumieniowego i zmaterializowane widoki są deklarowane w plikach źródłowych języka Python lub SQL. Potok zawiera również konfigurację, która definiuje zasoby obliczeniowe używane do aktualizowania tabel przesyłania strumieniowego i zmaterializowanych widoków podczas uruchamiania potoku. Podobnie jak szablon Terraform definiuje infrastrukturę na koncie chmury, pipeline Delta Live Tables definiuje zestawy danych i przekształcenia na potrzeby przetwarzania danych.
Jak zestawy danych funkcji Delta Live Tables przetwarzają dane?
W poniższej tabeli opisano, jak zmaterializowane widoki, tabele przesyłania strumieniowego i widoki przetwarzają dane:
Typ zestawu danych | W jaki sposób rekordy są przetwarzane za pośrednictwem zdefiniowanych zapytań? |
---|---|
Tabela przesyłania strumieniowego | Każdy rekord jest przetwarzany dokładnie raz. Przyjęto założenie, że źródło tylko do dołączania. |
Zmaterializowany widok | Rekordy są przetwarzane zgodnie z wymaganiami w celu zwrócenia dokładnych wyników dla bieżącego stanu danych. Zmaterializowane widoki powinny być używane do wykonywania zadań przetwarzania danych, takich jak przekształcenia, agregacje, czy wstępne obliczanie wolnych zapytań oraz często używanych obliczeń. |
Widok | Rekordy są przetwarzane za każdym razem, gdy jest wyszukiwany widok. Użyj widoków dla przekształceń pośrednich i kontroli jakości danych, które nie powinny być publikowane w publicznych zestawach danych. |
Deklarowanie pierwszych zestawów danych w tabelach delta live
Funkcja Delta Live Tables wprowadza nową składnię dla języków Python i SQL. Aby poznać podstawy składni potoku, zobacz Develop pipeline code with Python and Develop pipeline code with SQL (Opracowywanie kodu potoku przy użyciu języka Python i programowanie kodu potoku przy użyciu języka SQL).
Uwaga
Delta Live Tables oddziela definicje zestawów danych od przetwarzania aktualizacji, a notesy Delta Live Tables nie są przeznaczone do wykonywania w trybie interaktywnym.
Jak skonfigurować potoki Delta Live Tables?
Ustawienia potoków Delta Live Tables można podzielić na dwie główne kategorie.
- Konfiguracje definiujące kolekcję notesów lub plików (nazywanych kodem źródłowym), które używają składni Delta Live Tables do deklarowania zestawów danych.
- Konfiguracje kontrolujące infrastrukturę potoku, zarządzanie zależnościami, sposób przetwarzania aktualizacji i sposób zapisywania tabel w obszarze roboczym.
Większość konfiguracji jest opcjonalna, ale niektóre wymagają starannej uwagi, zwłaszcza podczas konfigurowania potoków produkcyjnych. Są to następujące funkcje:
- Aby udostępnić dane poza potokiem, należy zadeklarować schemat docelowy do publikowania w magazynie metadanych Hive lub katalog docelowy i schemat docelowy do publikowania w katalogu Unity.
- Uprawnienia dostępu do danych są konfigurowane za pośrednictwem klastra używanego do wykonywania. Upewnij się, że klaster ma odpowiednie uprawnienia skonfigurowane dla źródeł danych oraz docelowej lokalizacji magazynu , jeśli określono.
Aby uzyskać szczegółowe informacje na temat pisania kodu źródłowego dla potoków przy użyciu Python i SQL, zobacz dokumentację języka SQL dla tabel Delta Live Tables i dokumentację języka Python dla tabel Delta Live Tables.
Aby uzyskać więcej informacji na temat ustawień i konfiguracji potoku, zobacz Konfigurowanie potoku Delta Live Tables.
Wdrażanie pierwszego potoku i aktualizacji wyzwalacza
Przed przetworzeniem danych za pomocą tabel Delta Live należy skonfigurować potok danych. Po skonfigurowaniu przepływu możesz uruchomić aktualizację, aby obliczyć wyniki dla każdego zestawu danych w przepływie. Aby rozpocząć korzystanie z potoków usługi Delta Live Tables, zobacz Samouczek: Uruchamianie pierwszego potoku Delta Live Tables.
Co to jest aktualizacja ciągu?
Potoki wdrażają infrastrukturę i rekompilują stan danych po uruchomieniu aktualizacji. Aktualizacja wykonuje następujące czynności:
- Uruchamia klaster z poprawną konfiguracją.
- Odnajduje wszystkie zdefiniowane tabele i widoki oraz sprawdza błędy analizy, takie jak nieprawidłowe nazwy kolumn, brakujące zależności i błędy składni.
- Tworzy lub aktualizuje tabele i widoki z najnowszymi dostępnymi danymi.
Potoki mogą być uruchamiane w sposób ciągły lub zgodnie z harmonogramem w zależności od wymagań dotyczących kosztów i opóźnień przypadku użycia. Zobacz Uruchom aktualizację w potoku Delta Live Tables (Aktualizacja potoku Delta Live Tables).
Pobieranie danych za pomocą Delta Live Tables
Funkcja Delta Live Tables obsługuje wszystkie źródła danych dostępne w usłudze Azure Databricks.
Usługa Databricks zaleca używanie tabel przesyłania strumieniowego w przypadku większości przypadków użycia pozyskiwania. W przypadku plików przychodzących do magazynu obiektów w chmurze usługa Databricks zaleca automatyczne ładowanie. Możesz bezpośrednio pozyskiwać dane z większości magistrali komunikatów za pomocą tabel Delta Live Tables.
Aby uzyskać więcej informacji na temat konfigurowania dostępu do magazynu w chmurze, zobacz Konfiguracja magazynu w chmurze.
W przypadku formatów nieobsługiwanych przez moduł automatycznego ładowania można użyć języka Python lub języka SQL do wykonywania zapytań o dowolny format obsługiwany przez platformę Apache Spark. Zobacz Ładowanie danych przy użyciu Tabel Delta Live.
Monitorowanie i wymuszanie jakości danych
Możesz użyć oczekiwań , aby określić mechanizmy kontroli jakości danych dotyczące zawartości zestawu danych. W przeciwieństwie do ograniczenia CHECK
w tradycyjnej bazie danych, co uniemożliwia dodawanie wszelkich rekordów, które kończą się niepowodzeniem ograniczenia, oczekiwania zapewniają elastyczność podczas przetwarzania danych, które nie spełniają wymagań dotyczących jakości danych. Ta elastyczność umożliwia przetwarzanie i przechowywanie danych, których oczekujesz, że będą niechlujne i dane, które muszą spełniać ścisłe wymagania dotyczące jakości. Zobacz Zarządzanie jakością danych za pomocą oczekiwań potoku.
Jak są powiązane Tabele Delta Live i usługa Delta Lake?
Delta Live Tables rozszerza funkcjonalność usługi Delta Lake. Ponieważ tabele utworzone i zarządzane przez tabele Delta Live są tabelami Delta, mają te same gwarancje i funkcje zapewniane przez usługę Delta Lake. Zobacz Co to jest usługa Delta Lake?.
Funkcja Delta Live Tables dodaje kilka właściwości tabeli oprócz wielu właściwości tabeli, które można ustawić w usłudze Delta Lake. Zobacz właściwości tabel funkcji Delta Live Tables i właściwości tabeli delty .
Jak tabele są tworzone i zarządzane przez Delta Live Tables.
Usługa Azure Databricks automatycznie zarządza tabelami utworzonymi za pomocą tabel delta Live Tables, określając, jak aktualizacje muszą być przetwarzane w celu poprawnego obliczenia bieżącego stanu tabeli i wykonywania szeregu zadań konserwacji i optymalizacji.
W przypadku większości operacji należy zezwolić funkcji Delta Live Tables na przetwarzanie wszystkich aktualizacji, wstawiania i usuwania do tabeli docelowej. Aby uzyskać szczegółowe informacje i ograniczenia, zobacz Zachowywanie ręcznych usuwania lub aktualizacji.
Zadania utrzymania wykonywane przez Delta Live Tables
Delta Live Tables wykonuje zadania konserwacji w ciągu 24 godzin od zaktualizowania tabeli. Konserwacja może zwiększyć wydajność zapytań i obniżyć koszty, usuwając stare wersje tabel. Domyślnie system wykonuje pełną operację OPTIMIZE, po której następuje VACUUM. Można wyłączyć OPTIMIZE dla tabeli, ustawiając pipelines.autoOptimize.managed = false
we właściwościach tabeli dla tabeli. Zadania konserwacji są wykonywane tylko wtedy, gdy aktualizacja potoku została uruchomiona w ciągu 24 godzin przed zaplanowaniem zadań konserwacji.
Ograniczenia
Aby uzyskać listę ograniczeń, zobacz ograniczenia Delta Live Tables.
Aby uzyskać listę wymagań i ograniczeń specyficznych dla używania tabel Delta Live Tables z Unity Catalog, zobacz Use Unity Catalog with your Delta Live Tables pipelines
Dodatkowe zasoby
- Delta Live Tables ma pełne wsparcie w interfejsie API REST usługi Databricks. Zobacz INTERFEJS API DLT.
- Aby uzyskać informacje na temat ustawień potoku i tabeli, zobacz właściwości Delta Live Tables.
- Odniesienie do języka SQL w Delta Live Tables.
- Dokumentacja referencyjna języka Python dla Delta Live Tables.