Udostępnij przez


Opracowywanie deklaratywnych potoków Lakeflow Spark przy użyciu 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 deklaratywne potoki Lakeflow Spark. Zobacz Co to są pakiety zasobów usługi Databricks?.

Na tej stronie opisano sposób tworzenia pakietu w celu programowego zarządzania potokiem. Zobacz Lakeflow Spark Declarative Pipelines. Pakiet jest tworzony przy użyciu domyślnego szablonu pakietu Asset Bundles usługi Databricks dla języka Python, który definiuje potok ETL i zadanie uruchamiające go. 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 Azure Databricks lub API i które chcesz przenieść do pakietów, musisz zdefiniować je w plikach konfiguracyjnych danego pakietu. Usługa Databricks zaleca, aby najpierw utworzyć pakiet, wykonując poniższe kroki, a następnie dodać konfigurację i inne źródła do pakietu. Zobacz Pobieranie istniejącej definicji potoku przy użyciu interfejsu użytkownika.

Wymagania

(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 potoków deklaratywnych platformy Spark w usłudze Lakeflow, 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 biblioteki DLT.

Krok 1. Konfigurowanie uwierzytelniania

Najpierw skonfiguruj uwierzytelnianie między interfejsem wiersza polecenia usługi Databricks na maszynie deweloperskim a obszarem roboczym usługi Azure Databricks. Na tej stronie 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óbowania 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 Autoryzowanie dostępu jednostki usługi do usługi Azure Databricks przy użyciu protokołu OAuth.

  1. 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ład https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. 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 polecenie databricks auth env --profile <profile-name>.

  3. W przeglądarce internetowej wykonaj instrukcje na ekranie, aby zalogować się do obszaru roboczego usługi Azure Databricks.

  4. 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 wartości --host, może być konieczne określenie opcji --host oraz -p w celu ułatwienia interfejsowi wiersza polecenia Databricks znalezienia 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.

  1. Użyj terminalu lub wiersza polecenia, aby przełączyć się do katalogu na lokalnej maszynie deweloperskiej, która będzie zawierać wygenerowany pakiet szablonu.

  2. Użyj Databricks CLI, aby uruchomić polecenie bundle init.

    databricks bundle init
    
  3. W polu Template to use pozostaw domyślną wartość default-python, naciskając Enter.

  4. W polu Unique name for this projectpozostaw wartość my_projectdomyślną , lub wpisz inną wartość, a następnie naciśnij Enter. Określa nazwę katalogu głównego dla tego pakietu. Ten katalog główny jest tworzony w bieżącym katalogu roboczym.

  5. W przypadku Include a job that runs a notebookwybierz pozycję no i naciśnij Enter. Przykładowy notatnik skojarzony z tą opcją nie zawiera kodu pipeline.

  6. W polu Include an ETL pipeline pozostaw domyślną wartość yes, naciskając Enter. Spowoduje to dodanie przykładowego kodu potoku i definicji potoku.

  7. W przypadku Include a stub (sample) Python packagewybierz pozycję no i naciśnij Enter.

  8. W przypadku Use serverlesswybierz pozycję yes i naciśnij Enter. Spowoduje to, że interfejs wiersza polecenia usługi Databricks skonfiguruje pakiet do uruchamiania na bezserwerowych obliczeniach.

  9. W polu Default catalog for any tables created by this project [hive_metastore] wprowadź nazwę istniejącego katalogu Unity Catalog.

  10. W polu Use a personal schema for each user working on this project.wybierz pozycję yes.

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łania do plików pakietu, definiuje zmienne katalogu i schematu oraz określa ustawienia docelowych obszarów roboczych.
  • resources/sample_job.yml i resources/<project-name>_etl_pipeline.yml: Te pliki definiują zadanie zawierające zadanie odświeżania potoku oraz ustawienia potoku. Aby uzyskać informacje o ustawieniach kanału, zobacz pipeline.
  • src/: Ten folder zawiera pliki źródłowe, eksploracje i przekształcenia przykładowego potoku.
  • tests/ i fixtures/: Te foldery zawierają przykładowe testy jednostkowe dla potoku i elementów pomocniczych dla zestawów danych.
  • README.md: Ten plik zawiera dodatkowe informacje na temat rozpoczynania pracy i korzystania z tego szablonu pakietu.

Krok 4. Weryfikowanie konfiguracji pakietu

Teraz sprawdź, czy konfiguracja pakietu jest prawidłowa.

  1. Z katalogu głównego użyj CLI Databricks, aby uruchomić polecenie bundle validate.

    databricks bundle validate
    
  2. 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.

Krok 5. Wdrażanie pakietu w zdalnym obszarze roboczym

Następnie wdróż pakiet w zdalnym obszarze roboczym usługi Azure Databricks i sprawdź potok w obszarze roboczym.

  1. W katalogu głównym pakietu użyj CLI Databricks, aby uruchomić polecenie bundle deploy.

    databricks bundle deploy --target dev
    

    Uwaga

    Szablon domyślny zawiera zadanie, które uruchamia potok każdego dnia, ale jest to wstrzymane dla docelowego dev trybu wdrażania. Zobacz Tryby wdrażania zasobów pakietu usługi Databricks.

  2. Upewnij się, że pakiet został wdrożony:

    1. Na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Obszar roboczy.
    2. Kliknij folder Users ><your-username>>.bundle i znajdź projekt pakietu.
  3. Sprawdź, czy potok został utworzony:

    1. Na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Zadania i potoki.
    2. Opcjonalnie wybierz filtry Potoki i Należące do mnie .
    3. Kliknij [dev <your-username>] <project-name>_etl.

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 potoku

Teraz wyzwól uruchomienie potoku w obszarze roboczym z poziomu wiersza polecenia.

  1. W katalogu głównym użyj interfejsu wiersza polecenia Databricks, aby uruchomić polecenie bundle run, zastępując <project-name> nazwą projektu.

    databricks bundle run --target dev <project-name>_etl
    
  2. Skopiuj wartość Update URL wyświetlaną w terminalu i wklej tę wartość w przeglądarce internetowej, aby otworzyć obszar roboczy usługi Azure Databricks.

  3. W obszarze roboczym usługi Azure Databricks po pomyślnym zakończeniu przebiegu potoku kliknij zmaterializowane widoki, aby wyświetlić szczegóły każdego widoku.

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. Uruchamianie testów

Na koniec użyj polecenia pytest , aby uruchamiać testy lokalnie:

uv run pytest

Krok 8. Czyszczenie

W tym kroku usuniesz wdrożony pakiet i potok z obszaru roboczego.

  1. Z katalogu głównego użyj CLI Databricks, aby uruchomić polecenie bundle destroy.

    databricks bundle destroy --target dev
    
  2. Po wyświetleniu monitu o trwałe zniszczenie zasobów, potoku oraz tabel i widoków nim zarządzanych, wpisz y i naciśnij Enter.

  3. Jeśli chcesz również usunąć pakiet z komputera dewelopera, możesz teraz usunąć lokalny katalog projektu.