Czym są tabele Delta Live Tables?

Delta Live Tables to deklaratywna struktura do tworzenia niezawodnych, konserwowalnych i testowalnych potoków przetwarzania danych. Przekształcenia, które mają być wykonywane na danych, a usługa Delta Live Tables zarządza orkiestracją zadań, zarządzaniem klastrem, monitorowaniem, jakością danych i obsługą błędów.

Uwaga

Delta Live Tables wymaga planu Premium. Aby uzyskać więcej informacji, skontaktuj się z zespołem ds. kont usługi Databricks.

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 tworzyć i aktualizować. Funkcja Delta Live Tables zarządza sposobem przekształcania danych na podstawie zapytań zdefiniowanych dla każdego kroku przetwarzania. Możesz również wymusić jakość danych z oczekiwaniami funkcji Delta Live Tables, które umożliwiają zdefiniowanie oczekiwanej jakości danych i określenie sposobu obsługi rekordów, które nie spełniają tych oczekiwań.

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.

Co to są zestawy danych usługi Delta Live Tables?

Zestawy danych delta Live Tables to tabele przesyłania strumieniowego, zmaterializowane widoki i widoki przechowywane jako wyniki zapytań deklaratywnych. W poniższej tabeli opisano sposób przetwarzania każdego zestawu danych:

Typ zestawu danych W jaki sposób rekordy są przetwarzane za pośrednictwem zdefiniowanych zapytań?
Przesyłanie strumieniowe tabeli Każdy rekord jest przetwarzany dokładnie raz. Przyjęto założenie, że źródło tylko do dołączania.
Zmaterializowane widoki 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 w przypadku źródeł danych z aktualizacjami, usunięciami lub agregacjami oraz przetwarzania przechwytywania zmian (CDC).
Widoki 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.

Poniższe sekcje zawierają bardziej szczegółowe opisy każdego typu zestawu danych. Aby dowiedzieć się więcej na temat wybierania typów zestawów danych w celu zaimplementowania wymagań dotyczących przetwarzania danych, zobacz Kiedy używać widoków, zmaterializowanych widoków i tabel przesyłania strumieniowego.

Przesyłanie strumieniowe tabeli

Tabela przesyłania strumieniowego to tabela delty z dodatkową obsługą przesyłania strumieniowego lub przyrostowego przetwarzania danych. Tabele przesyłania strumieniowego umożliwiają przetwarzanie rosnącego zestawu danych, które obsługują każdy wiersz tylko raz. Ponieważ większość zestawów danych stale rośnie wraz z upływem czasu, tabele przesyłania strumieniowego są dobre dla większości obciążeń pozyskiwania. Tabele przesyłania strumieniowego są optymalne dla potoków, które wymagają świeżości danych i małych opóźnień. Tabele przesyłania strumieniowego mogą być również przydatne w przypadku transformacji na dużą skalę, ponieważ wyniki mogą być obliczane przyrostowo w miarę nadejścia nowych danych, zapewniając aktualność wyników bez konieczności pełnej ponownej kompilacji wszystkich danych źródłowych przy każdej aktualizacji. Tabele przesyłania strumieniowego są przeznaczone dla źródeł danych, które są tylko dołączane.

Uwaga

Mimo że domyślnie tabele przesyłania strumieniowego wymagają źródeł danych tylko do dołączania, gdy źródło przesyłania strumieniowego jest inną tabelą przesyłania strumieniowego, która wymaga aktualizacji lub usunięcia, można zastąpić to zachowanie flagą skipChangeCommits.

Zmaterializowany widok

Zmaterializowany widok (lub tabela na żywo) to widok, w którym wyniki zostały wstępnie skompilowane. Zmaterializowane widoki są odświeżane zgodnie z harmonogramem aktualizacji potoku, w którym są zawarte. Zmaterializowane widoki są zaawansowane, ponieważ mogą obsługiwać wszelkie zmiany w danych wejściowych. Za każdym razem, gdy potok aktualizuje, wyniki zapytań są ponownie obliczane w celu odzwierciedlenia zmian w nadrzędnych zestawach danych, które mogły wystąpić z powodu zgodności, poprawek, agregacji lub ogólnej usługi CDC. Delta Live Tables implementuje zmaterializowane widoki jako tabele delty, ale abstrahuje od złożoności związanych z wydajnym stosowaniem aktualizacji, co pozwala użytkownikom skupić się na pisaniu zapytań.

Widoki

Wszystkie widoki w usłudze Azure Databricks obliczają wyniki ze źródłowych zestawów danych w miarę ich wykonywania, wykorzystując optymalizacje buforowania, gdy są dostępne. Tabele na żywo funkcji Delta nie publikują widoków w wykazie, więc widoki mogą być przywołyane tylko w potoku, 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.

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 rozpocząć pracę ze składnią delta live tables, zobacz przykłady języka Python i SQL w artykule Samouczek: uruchamianie pierwszego potoku delta live tables.

Uwaga

Delta Live Tables oddziela definicje zestawów danych od przetwarzania aktualizacji, a notesy delta Live Tables nie są przeznaczone do wykonywania interakcyjnego. Zobacz Co to jest potok delta live tables?.

Co to jest potok delta live tables?

Potok jest główną jednostką używaną do konfigurowania i uruchamiania przepływów pracy przetwarzania danych za pomocą tabel delta Live Tables.

Potok zawiera zmaterializowane widoki i tabele przesyłania strumieniowego zadeklarowane w plikach źródłowych języka Python lub SQL. Różnicowe tabele na żywo wywnioskuje zależności między tymi tabelami, zapewniając, że aktualizacje są wykonywane w odpowiedniej kolejności. Dla każdego zestawu danych tabele delta live porównuje bieżący stan z żądanym stanem i przechodzi do tworzenia lub aktualizowania zestawów danych przy użyciu wydajnych metod przetwarzania.

Ustawienia potoków tabel na żywo delty należą do dwóch szerokich kategorii:

  1. Konfiguracje definiujące kolekcję notesów lub plików (nazywanych kodem źródłowym lub bibliotekami), które używają składni delta Live Tables do deklarowania zestawów danych.
  2. 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. Należą do nich następujące funkcje:

  • Aby udostępnić dane poza potokiem, należy zadeklarować schemat docelowy do publikowania w magazynie metadanych Programu Hive lub katalogu docelowego i schematu docelowego w celu opublikowania w wykazie aparatu 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 i docelowej lokalizacji magazynu, jeśli określono.

Aby uzyskać szczegółowe informacje na temat używania języka Python i SQL do pisania kodu źródłowego dla potoków, zobacz Delta Live Tables SQL language reference (Dokumentacja języka SQL tabel delta live tables) i Delta Live Tables Python language reference (Dokumentacja języka Python w tabelach delta live tables).

Aby uzyskać więcej informacji na temat ustawień i konfiguracji potoku, zobacz Zarządzanie konfiguracją potoków tabel na żywo delty.

Wdrażanie pierwszego potoku i aktualizacji wyzwalacza

Przed przetworzeniem danych za pomocą tabel delta live należy skonfigurować potok. Po skonfigurowaniu potoku można wyzwolić aktualizację w celu obliczenia wyników dla każdego zestawu danych w potoku. Aby rozpocząć korzystanie z potoków usługi Delta Live Tables, zobacz Samouczek: uruchamianie pierwszego potoku tabel delta live tables.

Co to jest aktualizacja potoku?

Potoki wdrażają infrastrukturę i rekompilują stan danych podczas uruchamiania 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 Run an update on a Delta Live Tables pipeline (Uruchamianie aktualizacji potoku tabel na żywo funkcji Delta).

Pozyskiwanie danych za pomocą tabel delta live

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 za pomocą tabel delta Live Tables z większości magistrali komunikatów.

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 za pomocą 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. CHECK W przeciwieństwie do ograniczenia 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ą tabel delta live.

Delta Live Tables rozszerza funkcjonalność usługi Delta Lake. Ponieważ tabele utworzone i zarządzane przez tabele delta live są tabelami delty, mają te same gwarancje i funkcje udostępniane 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 Odwołania do właściwości tabel delta Live Tables i Dokumentacja właściwości tabeli delty.

Jak tabele są tworzone i zarządzane przez tabele 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 konserwacji wykonywane przez tabele na żywo usługi Delta

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 funkcja VACUUM. Optymalizację dla tabeli można wyłączyć, ustawiając pipelines.autoOptimize.managed = falsewłaściwości tabeli w właściwościach tabeli. Zadania konserwacji są wykonywane tylko wtedy, gdy aktualizacja potoku została uruchomiona w ciągu 24 godzin przed zaplanowaniem zadań konserwacji.

Ograniczenia

Obowiązują następujące ograniczenia:

  • Wszystkie tabele utworzone i zaktualizowane przez tabele delta live są tabelami delty.
  • Tabele tabel delta Live Tables można zdefiniować tylko raz, co oznacza, że mogą one być celem tylko jednej operacji we wszystkich potokach tabel na żywo delty.
  • Kolumny tożsamości nie są obsługiwane w przypadku tabel, które są elementem docelowym APPLY CHANGES INTO i mogą zostać ponownie skompilowane podczas aktualizacji dla zmaterializowanych widoków. Z tego powodu usługa Databricks zaleca używanie tylko kolumn tożsamości z tabelami przesyłania strumieniowego w tabelach usługi Delta Live Tables. Zobacz Używanie kolumn tożsamości w usłudze Delta Lake.
  • Obszar roboczy usługi Azure Databricks jest ograniczony do 100 równoczesnych aktualizacji potoku.

Dodatkowe zasoby