Udostępnij za pośrednictwem


Opracowywanie potoków usługi Delta Live Tables

Programowanie i testowanie kodu potoku różni się od innych obciążeń platformy Apache Spark. Ten artykuł zawiera omówienie obsługiwanych funkcji, najlepszych praktyk i zagadnień dotyczących tworzenia kodu potoku. Aby uzyskać więcej zaleceń i najlepszych rozwiązań, zobacz Stosowanie tworzenia oprogramowania & Najlepszych rozwiązań devOps dotyczących potoków tabel delta Live Table.

Notatka

Aby zweryfikować kod lub uruchomić aktualizację, należy dodać kod źródłowy do konfiguracji potoku. Zobacz Konfigurowanie potoku Delta Live Tables.

Jakie pliki są prawidłowe dla kodu źródłowego potoku?

Kod dla przepływu Delta Live Tables może być napisany w języku Python lub SQL. Możesz mieć mieszankę plików kodu źródłowego Python i SQL wspierających pojedynczy potok, ale każdy plik może zawierać tylko jeden język. Zobacz Opracuj kod potoku przy użyciu Pythona oraz Opracuj kod potoku przy użyciu SQL.

Podczas określania kodu źródłowego dla potoku można skorzystać z notatników i plików obszaru roboczego. Pliki obszaru roboczego reprezentują skrypty języka Python lub SQL utworzone w preferowanym środowisku IDE lub edytorze plików usługi Databricks. Zobacz Co to są pliki obszaru roboczego?.

Jeśli tworzysz kod języka Python jako moduły lub biblioteki, musisz zainstalować i zaimportować kod, a następnie wywołać metody z notesu języka Python lub pliku obszaru roboczego skonfigurowanego jako kod źródłowy. Zobacz Zarządzanie zależnościami Pythona dla potoków tabel na żywo Delta.

Notatka

Jeśli musisz użyć dowolnych poleceń SQL w notesie języka Python, możesz użyć wzorca składni spark.sql("<QUERY>") do uruchamiania kodu SQL jako kodu w języku Python.

Funkcje Katalogu Unity umożliwiają rejestrowanie dowolnych funkcji języka Python zdefiniowanych przez użytkownika do użycia w SQL. Zobacz funkcje zdefiniowane przez użytkownika w Unity Catalog (UDF).

Omówienie funkcji programowania usługi Delta Live Tables

Delta Live Tables rozszerza i wykorzystuje wiele funkcji usługi Azure Databricks oraz wprowadza nowe funkcje i pojęcia. Poniższa tabela zawiera krótkie omówienie pojęć i funkcji, które obsługują tworzenie kodu potoku:

Cecha Opis
Tryb programowania Nowe potoki są domyślnie skonfigurowane do uruchamiania w trybie deweloperskim. Usługa Databricks zaleca korzystanie z trybu programowania interaktywnego i testowania. Zobacz Tryby programowania i produkcji.
Zatwierdzać Aktualizacja Validate weryfikuje poprawność kodu źródłowego potoku bez aktualizowania jakichkolwiek tabel. Zobacz Sprawdź potok pod kątem błędów bez czekania na aktualizację tabel.
Notebooki Notesy skonfigurowane jako źródło kodu dla potoku Delta Live Tables oferują interaktywne opcje weryfikacji kodu i uruchamiania aktualizacji. Zobacz Tworzenie i debugowanie potoków Delta Live Tables w notesach.
Parametry Wykorzystuj parametry w konfiguracjach kodu źródłowego i potoków, aby uprościć testowanie i rozszerzalność. Zobacz Używanie parametrów z przepływami pracy Delta Live Tables.
Pakiety zasobów Databricks Pakiety zasobów Databricks umożliwiają przenoszenie konfiguracji potoku oraz kodu źródłowego między obszarami roboczymi. Zobacz Konwertowanie potoku Delta Live Tables na projekt pakietu zasobów Databricks.

Tworzenie przykładowych zestawów danych na potrzeby programowania i testowania

Usługa Databricks zaleca tworzenie i testowanie zestawów danych do testowania logiki potoku z oczekiwanymi danymi i potencjalnie nieprawidłowo sformułowanymi lub uszkodzonymi rekordami. Istnieje wiele sposobów tworzenia zestawów danych, które mogą być przydatne do programowania i testowania, w tym:

  • Wybierz podzbiór danych z produkcyjnego zestawu danych.
  • Użyj anonimowych lub sztucznie wygenerowanych danych dla źródeł zawierających dane osobowe.
  • Tworzenie danych testowych z dobrze zdefiniowanymi wynikami na podstawie logiki transformacji podrzędnej.
  • Przewidywanie potencjalnych uszkodzeń danych, nieprawidłowo sformułowanych rekordów i zmian danych nadrzędnych przez utworzenie rekordów, które przerywają oczekiwania schematu danych.

Jeśli na przykład masz notes, który definiuje zestaw danych przy użyciu następującego kodu:

CREATE OR REFRESH STREAMING TABLE input_data AS SELECT * FROM read_files("/production/data", "json")

Możesz utworzyć przykładowy zestaw danych zawierający określone rekordy przy użyciu zapytania, takiego jak następujące:

CREATE OR REFRESH MATERIALIZED VIEW input_data AS
SELECT "2021/09/04" AS date, 22.4 as sensor_reading UNION ALL
SELECT "2021/09/05" AS date, 21.5 as sensor_reading

W poniższym przykładzie pokazano filtrowanie opublikowanych danych w celu utworzenia podzestawu danych produkcyjnych na potrzeby programowania lub testowania:

CREATE OR REFRESH MATERIALIZED VIEW input_data AS SELECT * FROM prod.input_data WHERE date > current_date() - INTERVAL 1 DAY

Aby użyć tych różnych zestawów danych, utwórz wiele potoków za pomocą notatników implementujących logikę przekształcania. Każdy potok może pobierać dane z zestawu danych input_data, ale jest skonfigurowany tak, aby uwzględniać notatnik, który tworzy zestaw danych specyficzny dla środowiska.