Opracowywanie potoków tabel delta live za pomocą pakietów zasobów usługi Databricks
Pakiety zasobów usługi Databricks, znane również po prostu jako pakiety, umożliwiają programowe weryfikowanie, wdrażanie i uruchamianie zasobów usługi Azure Databricks, takich jak potoki tabel delta live. Zobacz Co to są pakiety zasobów usługi Databricks?.
W tym artykule opisano sposób tworzenia pakietu w celu programowego zarządzania potokiem. Zobacz Co to jest delta live tables?. Pakiet jest tworzony przy użyciu domyślnego szablonu pakietu zasobów usługi Databricks dla języka Python, który składa się z notesu sparowanego z definicją potoku i zadania do jego uruchomienia. Następnie należy zweryfikować, wdrożyć i uruchomić wdrożony potok w obszarze roboczym usługi Azure Databricks.
Napiwek
Jeśli masz istniejące potoki, które zostały utworzone przy użyciu interfejsu użytkownika usługi Azure Databricks lub interfejsu API, który chcesz przenieść do pakietów, musisz zdefiniować je w plikach konfiguracji pakietu. Usługa Databricks zaleca najpierw utworzenie pakietu, wykonując poniższe kroki, a następnie sprawdzenie, czy pakiet działa. Następnie możesz dodać do pakietu dodatkowe definicje, notesy i inne źródła. Zobacz Dodawanie istniejącej definicji potoku do pakietu.
Wymagania
- Interfejs wiersza polecenia usługi Databricks w wersji 0.218.0 lub nowszej. Aby sprawdzić zainstalowaną wersję interfejsu wiersza polecenia usługi Databricks, uruchom polecenie
databricks -v
. Aby zainstalować interfejs wiersza polecenia usługi Databricks, zobacz Instalowanie lub aktualizowanie interfejsu wiersza polecenia usługi Databricks. - Zdalny obszar roboczy musi mieć włączone pliki obszaru roboczego. Zobacz Co to są pliki obszaru roboczego?.
(Opcjonalnie) Instalowanie modułu języka Python w celu obsługi programowania potoków lokalnych
Usługa Databricks udostępnia moduł języka Python, który ułatwia lokalne opracowywanie kodu potoku delta Live Tables, zapewniając sprawdzanie składni, autouzupełnianie i sprawdzanie typu danych podczas pisania kodu w środowisku IDE.
Moduł języka Python na potrzeby programowania lokalnego jest dostępny w witrynie PyPi. Aby zainstalować moduł, zobacz wycinkę języka Python dla tabel delta Live Tables.
Tworzenie pakietu przy użyciu szablonu projektu
Utwórz pakiet przy użyciu domyślnego szablonu pakietu usługi Azure Databricks dla języka Python. Ten szablon składa się z notesu, który definiuje potok Delta Live Tables, który filtruje dane z oryginalnego zestawu danych. Aby uzyskać więcej informacji na temat szablonów pakietów, zobacz Szablony projektów pakietu zasobów usługi Databricks.
Jeśli chcesz utworzyć pakiet od podstaw, zobacz Ręczne tworzenie pakietu.
Krok 1. Konfigurowanie uwierzytelniania
W tym kroku skonfigurujesz uwierzytelnianie między interfejsem wiersza polecenia usługi Databricks na komputerze deweloperskim a obszarem roboczym usługi Azure Databricks. W tym artykule założono, że chcesz użyć uwierzytelniania użytkownika do komputera (U2M) OAuth i odpowiedniego profilu konfiguracji usługi Azure Databricks o nazwie DEFAULT
na potrzeby uwierzytelniania.
Uwaga
Uwierzytelnianie U2M jest odpowiednie do wypróbowanie tych kroków w czasie rzeczywistym. W przypadku w pełni zautomatyzowanych przepływów pracy usługa Databricks zaleca zamiast tego użycie uwierzytelniania maszynowego do maszyny OAuth (M2M). Zobacz instrukcje dotyczące konfigurowania uwierzytelniania M2M w temacie Uwierzytelnianie.
Użyj interfejsu wiersza polecenia usługi Databricks, aby lokalnie zainicjować zarządzanie tokenami OAuth, uruchamiając następujące polecenie dla każdego docelowego obszaru roboczego.
W poniższym poleceniu zastąp ciąg
<workspace-url>
adresem URL usługi Azure Databricks na obszar roboczy, na przykładhttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Interfejs wiersza polecenia usługi Databricks monituje o zapisanie informacji wprowadzonych jako profil konfiguracji usługi Azure Databricks. Naciśnij
Enter
, aby zaakceptować sugerowaną nazwę profilu lub wprowadź nazwę nowego lub istniejącego profilu. Każdy istniejący profil o tej samej nazwie zostanie zastąpiony wprowadzonymi informacjami. Profile umożliwiają szybkie przełączanie kontekstu uwierzytelniania między wieloma obszarami roboczymi.Aby uzyskać listę wszystkich istniejących profilów, w osobnym terminalu lub wierszu polecenia użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić polecenie
databricks auth profiles
. Aby wyświetlić istniejące ustawienia określonego profilu, uruchom poleceniedatabricks auth env --profile <profile-name>
.W przeglądarce internetowej wykonaj instrukcje na ekranie, aby zalogować się do obszaru roboczego usługi Azure Databricks.
Aby wyświetlić bieżącą wartość tokenu OAuth profilu i zbliżający się znacznik czasu wygaśnięcia tokenu, uruchom jedno z następujących poleceń:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Jeśli masz wiele profilów o tej samej
--host
wartości, może być konieczne określenie--host
opcji i-p
, aby ułatwić interfejsowi wiersza polecenia usługi Databricks znalezienie prawidłowych pasujących informacji o tokenie OAuth.
Krok 2. Tworzenie pakietu
Zainicjuj pakiet przy użyciu domyślnego szablonu projektu pakietu języka Python.
Użyj terminalu lub wiersza polecenia, aby przełączyć się do katalogu na lokalnej maszynie deweloperskiej, która będzie zawierać wygenerowany pakiet szablonu.
Użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić
bundle init
polecenie:databricks bundle init
W polu
Template to use
pozostaw wartośćdefault-python
domyślną ciągu , naciskającEnter
.W polu
Unique name for this project
pozostaw wartośćmy_project
domyślną , lub wpisz inną wartość, a następnie naciśnijEnter
. Określa nazwę katalogu głównego dla tego pakietu. Ten katalog główny jest tworzony w bieżącym katalogu roboczym.W polu
Include a stub (sample) notebook
wybierz ino
naciśnijEnter
. Spowoduje to, że interfejs wiersza polecenia usługi Databricks nie doda w tym momencie przykładowego notesu, ponieważ przykładowy notes skojarzony z tą opcją nie ma w nim kodu delta Live Tables.W polu
Include a stub (sample) DLT pipeline
pozostaw wartośćyes
domyślną ciągu , naciskającEnter
. Spowoduje to, że interfejs wiersza polecenia usługi Databricks doda przykładowy notes z kodem delta Live Tables.W polu
Include a stub (sample) Python package
wybierz ino
naciśnijEnter
. Powoduje to, że interfejs wiersza polecenia usługi Databricks nie dodaje przykładowych plików pakietu wheel języka Python ani powiązanych instrukcji kompilacji do pakietu.
Krok 3. Eksplorowanie pakietu
Aby wyświetlić pliki wygenerowane przez szablon, przejdź do katalogu głównego nowo utworzonego pakietu. Pliki o szczególnym znaczeniu obejmują następujące elementy:
databricks.yml
: Ten plik określa nazwę programową pakietu, zawiera odwołanie do definicji potoku i określa ustawienia docelowego obszaru roboczego.resources/<project-name>_job.yml
iresources/<project-name>_pipeline.yml
: Te pliki definiują zadanie zawierające zadanie odświeżania potoku oraz ustawienia potoku.src/dlt_pipeline.ipynb
: ten plik jest notesem, który podczas uruchamiania wykonuje potok.
W przypadku dostosowywania potoków mapowania w deklaracji potoku odpowiadają ładunkowi żądania operacji tworzenia potoku zgodnie z definicją w pliku POST /api/2.0/pipelines w odwołaniu interfejsu API REST wyrażonym w formacie YAML.
Krok 4. Weryfikowanie pliku konfiguracji pakietu projektu
W tym kroku sprawdzisz, czy konfiguracja pakietu jest prawidłowa.
Z katalogu głównego użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić
bundle validate
polecenie w następujący sposób:databricks bundle validate
Jeśli zostanie zwrócone podsumowanie konfiguracji pakietu, walidacja zakończyła się pomyślnie. Jeśli zostaną zwrócone jakiekolwiek błędy, napraw błędy, a następnie powtórz ten krok.
Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, należy powtórzyć ten krok, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa.
Krok 5. Wdrażanie projektu lokalnego w zdalnym obszarze roboczym
W tym kroku wdrożysz notes lokalny w zdalnym obszarze roboczym usługi Azure Databricks i utworzysz potok Delta Live Tables w obszarze roboczym.
W katalogu głównym pakietu użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić
bundle deploy
polecenie w następujący sposób:databricks bundle deploy -t dev
Sprawdź, czy notes lokalny został wdrożony: na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Obszar roboczy.
Kliknij folder src pliki > deweloperskie > Użytkownicy>
<your-username>
> .bundle.><project-name>
> Notes powinien znajdować się w tym folderze.Sprawdź, czy potok został utworzony: na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Delta Live Tables.
Na karcie Tabele na żywo delty kliknij pozycję [dev
<your-username>
]<project-name>
_pipeline.
Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, powtórz kroki od 4 do 5, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa, a następnie ponownie wdrożyć projekt.
Krok 6. Uruchamianie wdrożonego projektu
W tym kroku uruchomisz potok Delta Live Tables w obszarze roboczym z poziomu wiersza polecenia.
Z katalogu głównego użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić
bundle run
polecenie w następujący sposób, zastępując<project-name>
ciąg nazwą projektu z kroku 2:databricks bundle run -t dev <project-name>_pipeline
Skopiuj wartość
Update URL
wyświetlaną w terminalu i wklej tę wartość w przeglądarce internetowej, aby otworzyć obszar roboczy usługi Azure Databricks.W obszarze roboczym usługi Azure Databricks po pomyślnym zakończeniu potoku kliknij widok taxi_raw i zmaterializowany widok filtered_taxis , aby wyświetlić szczegóły.
Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, powtórz kroki od 4 do 6, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa, ponownie wdrożyć projekt i uruchomić ponownie wdrożony projekt.
Krok 7. Czyszczenie
W tym kroku usuniesz wdrożony notes i potok z obszaru roboczego.
Z katalogu głównego użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić
bundle destroy
polecenie w następujący sposób:databricks bundle destroy -t dev
Potwierdź żądanie usunięcia potoku: po wyświetleniu monitu o trwałe zniszczenie zasobów wpisz
y
i naciśnijEnter
.Potwierdź żądanie usunięcia notesu: po wyświetleniu monitu o trwałe zniszczenie wcześniej wdrożonego folderu i wszystkich jego plików wpisz
y
i naciśnijEnter
.Jeśli chcesz również usunąć pakiet z komputera dewelopera, możesz teraz usunąć katalog lokalny z kroku 2.
Dodawanie istniejącej definicji potoku do pakietu
Możesz użyć istniejącej definicji potoku delta Live Tables jako podstawy, aby zdefiniować nowy potok w pliku konfiguracji pakietu. Aby uzyskać istniejącą definicję potoku, możesz pobrać ją ręcznie przy użyciu interfejsu użytkownika lub wygenerować ją programowo przy użyciu interfejsu wiersza polecenia usługi Databricks.
Pobieranie istniejącej definicji potoku przy użyciu interfejsu użytkownika
Aby uzyskać reprezentację YAML istniejącej definicji potoku z interfejsu użytkownika obszaru roboczego usługi Azure Databricks:
Na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Przepływy pracy.
Na karcie Delta Live Tables (Tabele na żywo delty) kliknij link Nazwa potoku.
Obok przycisku Programowanie kliknij kebab, a następnie kliknij pozycję Wyświetl ustawienia YAML.
Skopiuj plik YAML definicji potoku w oknie dialogowym Ustawienia potoku YAML do lokalnego schowka, klikając ikonę kopiowania.
Dodaj plik YAML skopiowany do pliku pakietu
databricks.yml
lub utwórz plik konfiguracji dla potoku wresources
folderze projektu pakietu i odwołaj się do niego zdatabricks.yml
pliku. Zobacz zasoby.Pobierz i dodaj wszystkie pliki i notesy języka Python, do których odwołuje się źródło projektu pakietu. Zazwyczaj artefakty pakietu znajdują się w
src
katalogu w pakiecie.Napiwek
Istniejący notes można wyeksportować z obszaru roboczego usługi Azure Databricks do
.ipynb
formatu, klikając pozycję Eksportuj notes IPython z > > poziomu interfejsu użytkownika notesu usługi Azure Databricks.Po dodaniu notesów, plików języka Python i innych artefaktów do pakietu upewnij się, że definicja potoku prawidłowo odwołuje się do nich. Na przykład w przypadku notesu o nazwie
hello.ipynb
, który znajduje się wsrc/
katalogu pakietu:resources: pipelines: hello-pipeline: name: hello-pipeline libraries: - notebook: path: ../src/hello.ipynb
Generowanie istniejącej definicji potoku przy użyciu interfejsu wiersza polecenia usługi Databricks
Aby programowo wygenerować konfigurację pakietu dla istniejącego potoku:
Pobierz identyfikator istniejącego potoku z panelu bocznego Szczegóły potoku dla potoku w interfejsie użytkownika lub użyj polecenia interfejsu wiersza polecenia
databricks pipelines list-pipelines
usługi Databricks.Uruchom polecenie interfejsu
bundle generate pipeline
wiersza polecenia usługi Databricks, ustawiając identyfikator potoku:databricks bundle generate pipeline --existing-pipeline-id 6565621249
To polecenie tworzy plik konfiguracji pakietu dla potoku w folderze pakietu
resources
i pobiera wszystkie przywołyne artefakty dosrc
folderu.Napiwek
Jeśli najpierw używasz
bundle deployment bind
do powiązania zasobu w pakiecie z jednym w obszarze roboczym, zasób w obszarze roboczym zostanie zaktualizowany na podstawie konfiguracji zdefiniowanej w pakiecie, do którego jest powiązany po następnymbundle deploy
. Aby uzyskać informacje nabundle deployment bind
temat programu , zobacz Bind bundle resources (Powiązane zasoby pakietu).