Co to jest usługa Delta Live Tables?
Uwaga
Usługa Delta Live Tables wymaga 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 konserwowalnych potoków wyodrębniania, przekształcania i ładowania (ETL). Określasz, jakie dane mają być pozyskiwane i jak je przekształcać, a usługa Delta Live Tables automatyzuje kluczowe aspekty zarządzania potokiem danych, w tym aranżację, zarządzanie obliczeniami, monitorowanie, wymuszanie jakości danych i obsługę błędów.
Usługa 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ć tables przesyłania strumieniowego i zmaterializowane views, które system powinien utworzyć, a zapytania wymagane do wypełnienia i update tych tables przesyłania strumieniowego i zmaterializowanego views.
Aby dowiedzieć się więcej na temat zalet tworzenia i uruchamiania potoków ETL za pomocą usługi Delta Live Tables, zobacz stronę produktu Delta Live Tables.
zalety usługi Delta Live Tables w porównaniu z platformą Apache Spark
Apache Spark to wszechstronny aparat analizy ujednoliconej typu open source, w tym ETL. Usługa Delta Live Tables opiera się na platformie Spark w celu rozwiązywania określonych i typowych zadań przetwarzania ETL. Usługa 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 usługa Delta Live Tables nie nadaje się do implementowania niektórych typów logiki proceduralnej. Na przykład, wymagania dotyczące przetwarzania, takie jak zapisywanie do zewnętrznego table lub uwzględnianie warunku działającego na zewnętrznym magazynie plików lub bazie danych tables, nie mogą być wykonywane wewnątrz kodu definiującego zestaw danych Delta Live Tables. W celu implementacji przetwarzania nieobsługiwanego przez Delta Live Tables, Databricks zaleca używanie platformy Apache Spark lub dołączanie pipeline'u w zadaniu Databricks, które wykonuje przetwarzanie w osobnym zadaniu. Zobacz zadanie przepływu Delta Live Tables dla zadań.
Następujące table porównuje Tables Delta Live z platformą Apache Spark:
Zdolność | Usługa Delta Live Tables | 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 usługi Delta Live Tables
Na poniższej ilustracji przedstawiono ważne komponenty pipeline'u Delta Live Tables, a następnie objaśnienie każdego z nich.
Streaming table
Przesyłanie strumieniowe table to Delta table, która ma jeden lub więcej strumieni zapisujących do niej. tables przesyłania strumieniowego są często używane do pozyskiwania, ponieważ przetwarzają dane wejściowe dokładnie raz i mogą przetwarzać duże volumes danych tylko do dołączania. Streaming tables są również przydatne do transformacji strumieni danych o niskiej latencji.
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 usługę Delta Live Tables na podstawie harmonogramu update 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 obliczania pełnego wyniku od podstaw przy użyciu przyrostowych refresh. Zmaterializowane views są często używane do przekształceń.
Views
Wszystkie views 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. Usługa Delta Live Tables nie publikuje views w catalog, dlatego views można się do nich odnosić tylko w rurociągu, w którym są zdefiniowane. Views 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 views w celu 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 zbiór przesyłanych strumieniowo tables i zmaterializowanych views, które są aktualizowane razem. Te dane przesyłania strumieniowego tables i dane zmaterializowane views 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 updatetables przesyłania strumieniowego i zmaterializowane views po uruchomieniu potoku. Podobnie jak szablon Terraform definiuje infrastrukturę w twoim koncie chmury, pipeline Delta Live Tables definiuje zestawy danych i przekształcenia dla przetwarzania danych.
Jak zestawy danych usługi Delta Live Tables przetwarzają dane?
W poniższej table opisano sposób materializacji views, przesyłania strumieniowego tablesi przetwarzania danych views:
Typ zestawu danych | W jaki sposób rekordy są przetwarzane za pośrednictwem zdefiniowanych zapytań? |
---|---|
Przesyłanie strumieniowe table | 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 views powinny być używane do zadań przetwarzania danych, takich jak przekształcenia, agregacje, czy wstępne obliczanie wolnych zapytań i często używanych obliczeń. |
Widok | Rekordy są przetwarzane za każdym razem, gdy jest wyszukiwany widok. Użyj views do przeprowadzania 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 usłudze Delta Live Tables
Usługa 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 update, a notesy usługi Delta Live Tables nie są przeznaczone do wykonywania interakcyjnego.
Jak skonfigurować potoki usługi Delta Live Tables?
Ustawienia potoków usługi Delta Live Tables dzielą się 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 usługi Delta Live Tables do deklarowania zestawów danych.
- Konfiguracje, które kontrolują infrastrukturę potoków, zarządzanie zależnościami, sposób przetwarzania aktualizacji oraz sposób zapisywania tables 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ć docelowy schema w celu publikacji w metastore Hive lub docelowy catalog i docelowy schema w celu publikacji w Unity Catalog.
- 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 języka Python i SQL, zobacz dokumentacja języka Delta Live Tables SQL i dokumentacja języka Delta Live Tables Python.
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ą Delta Live Tables, należy skonfigurować potok. Po skonfigurowaniu potoku można wyzwolić update w celu obliczenia wyników dla każdego zestawu danych w potoku. Aby get rozpocząć korzystanie z potoków usługi Delta Live Tables, zobacz samouczek : uruchamianie pierwszego potoku usługi Delta Live Tables.
Co to jest updatepipeline?
Potoki wdrażają infrastrukturę i rekompilują stan danych po uruchomieniu update. update wykonuje następujące czynności:
- Uruchamia klaster z poprawną konfiguracją.
- Odnajduje wszystkie zdefiniowane tables i views oraz sprawdza błędy analizy, takie jak nieprawidłowe nazwy column, brakujące zależności i błędy składni.
- Tworzy lub aktualizuje tables i views 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 , jak uruchomić update na potoku Delta Live Tables.
Przetwarzanie danych z użyciem Delta Live Tables
Usługa Delta Live Tables obsługuje wszystkie źródła danych dostępne w usłudze Azure Databricks.
Databricks zaleca używanie przesyłania strumieniowego tables w przypadku większości przypadków zastosowań pozyskiwania. W przypadku plików przychodzących do magazynu obiektów w chmurze usługa Databricks zaleca automatyczne ładowanie. Dane można pozyskiwać bezpośrednio za pomocą funkcji 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ą Delta Live Tables.
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 CHECK
constraint w tradycyjnej bazie danych, które uniemożliwiają dodawanie rekordów niespełniających constraint, oczekiwania oferują elastyczność w przetwarzaniu 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ą usługi Delta Live Tables.
W jaki sposób powiązane są Delta Live Tables i Delta Lake?
Usługa Delta Live Tables rozszerza funkcjonalność usługi Delta Lake. Ponieważ tables utworzone i zarządzane przez Delta Live Tables są Delta tables, mają te same gwarancje i funkcje udostępniane przez Delta Lake. Zobacz Co to jest usługa Delta Lake?.
Usługa Delta Live Tables dodaje kilka właściwości table oprócz wielu właściwości table, które mogą być set w usłudze Delta Lake. Zobacz odniesienia do właściwości Delta Live pod
Jak tables są tworzone i zarządzane przez usługę Delta Live Tables
Usługa Azure Databricks automatycznie zarządza tables utworzonym za pomocą usługi Delta Live Tables, określając, jak aktualizacje muszą być przetwarzane w celu poprawnego obliczenia bieżącego stanu table i wykonywania szeregu zadań konserwacji i optymalizacji.
W przypadku większości operacji należy zezwolić usłudze Delta Live Tables na przetwarzanie wszystkich aktualizacji, wstawek i usunięć dla docelowego table. Aby uzyskać szczegółowe informacje i ograniczenia, zobacz Zachowywanie ręcznych usuwania lub aktualizacji.
Zadania konserwacji wykonywane przez usługę Delta Live Tables
Usługa Delta Live Tables wykonuje zadania konserwacji w ciągu 24 godzin od aktualizacji table. Konserwacja może poprawić wydajność zapytań i obniżyć koszty, usuwając stare wersje tables. Domyślnie system wykonuje pełną operację OPTIMIZE, po której następuje VACUUM.
OPTIMIZE dla table można wyłączyć, ustawiając pipelines.autoOptimize.managed = false
we właściwościach table dla table. Zadania konserwacji są wykonywane tylko wtedy, jeśli potok update został uruchomiony w ciągu 24 godzin przed ich zaplanowaniem.
Ograniczenia
Aby uzyskać list ograniczeń, zobacz Ograniczenia usługi Delta Live Tables.
Aby uzyskać informacje o list wymaganiach i ograniczeniach specyficznych dla korzystania z Delta Live Tables z Unity Catalog, zobacz Używanie Unity Catalog z potokami Delta Live Tables
Dodatkowe zasoby
- Usługa Delta Live Tables ma pełną obsługę interfejsu API REST usługi Databricks. Zobacz INTERFEJS API DLT.
- Aby zapoznać się z ustawieniami potoku i table, zobacz odniesienie do właściwości Delta Live Tables.
- Referencja języka SQL dla usługi Delta Live Tables SQL.
- Delta Live Tables odniesienie do języka Python.