Wdrażanie pakietu za pomocą Databricks CLI

Ukończone

Wskazówka

Aby uzyskać więcej szczegółów, zobacz kartę Tekst i obrazy .

Po skonfigurowaniu przez zespół pakietu deklaratywnej automatyzacji wdrożenie go w Azure Databricks staje się kolejnym zadaniem. Databricks CLI udostępnia bezpośrednią ścieżkę z lokalnego środowiska deweloperskiego do środowisk produkcyjnych. Możesz kontrolować, kiedy i gdzie uruchamiane są potoki danych, zadania i inne zasoby. Zrozumienie tego przepływu pracy wdrażania umożliwia niezawodne przenoszenie kodu między środowiskami przy zachowaniu spójności.

Uwaga / Notatka

Ta jednostka koncentruje się na wdrożeniu opartym na interfejsie wiersza poleceń (CLI), co jest zalecanym podejściem do automatyzacji CI/CD (ciągłej integracji/ciągłego wdrażania). Pakietami automatyzacji deklaratywnej można również zarządzać za pomocą interfejsu użytkownika obszaru roboczego Azure Databricks, co jest przydatne w przypadku współpracy ad hoc bez instalowania interfejsu wiersza polecenia. Zobacz Współpraca nad pakietami w obszarze roboczym.

Diagram przedstawiający różne kroki wdrażania pakietu za pomocą interfejsu wiersza polecenia usługi Databricks.

Weryfikowanie konfiguracji pakietu

Przed wdrożeniem upewnij się, że konfiguracja pakietu jest poprawna pod względem składni i kompletna. Polecenie bundle validate sprawdza pliki konfiguracji i zgłasza wszelkie problemy, które mogłyby zapobiec pomyślnemu wdrożeniu.

databricks bundle validate

Po pomyślnym zakończeniu walidacji zostanie wyświetlone podsumowanie tożsamości pakietu:

Name: my_data_pipeline
Target: dev
Workspace:
  Host: https://adb-1234567890123456.7.azuredatabricks.net
  User: someone@example.com
  Path: /Users/someone@example.com/.bundle/my_data_pipeline/dev

Validation OK!

Te dane wyjściowe potwierdzają nazwę pakietu, środowisko docelowe i szczegóły obszaru roboczego. Jeśli konfiguracja zawiera błędy, takie jak brakujące wymagane pola lub nieprawidłowe nazwy właściwości, polecenie generuje ostrzeżenia lub błędy, które należy rozwiązać przed kontynuowaniem.

Wskazówka

Uruchom polecenie bundle validate po wprowadzeniu zmian w plikach konfiguracji pakietu. Wczesne przechwytywanie błędów składni pozwala zaoszczędzić czas w porównaniu z odnajdywaniem ich podczas wdrażania.

Podgląd zmian wdrożenia

Po weryfikacji możesz wyświetlić podgląd zasobów tworzonych, aktualizowanych lub usuwanych przez wdrożenie bez wprowadzania rzeczywistych zmian. Polecenie bundle plan kompiluje pakiet i wyświetla planowane akcje.

databricks bundle plan

Dane wyjściowe zawierają listę zasobów, na które ma wpływ wdrożenie:

Building python_artifact...
create jobs.data_ingestion_job
create pipelines.transform_pipeline

Ta wersja zapoznawcza umożliwia sprawdzenie, czy wdrożenie jest zgodne z oczekiwaniami. Jeśli zobaczysz nieoczekiwane zmiany, takie jak usunięte zasoby, które chcesz zachować, dostosuj konfigurację przed zatwierdzeniem wdrożenia. W przypadku obiektów docelowych innych niż domyślne określ element docelowy:

databricks bundle plan -t production

Wdrażanie pakietu w docelowym obszarze roboczym

Po zakończeniu weryfikacji i przejrzeniu planu wdrożysz pakiet przy użyciu bundle deploy polecenia . To polecenie przekazuje artefakty i tworzy lub aktualizuje zasoby w docelowym obszarze roboczym.

databricks bundle deploy

Domyślnie wdrożenie używa domyślnego elementu docelowego zdefiniowanego w konfiguracji pakietu. Aby wdrożyć w określonym miejscu docelowym, takim jak development, staging lub produkcja, użyj flagi -t.

databricks bundle deploy -t dev

Podczas wdrażania interfejs wiersza polecenia śledzi zasoby tworzone przez przechowywanie stanu w obszarze roboczym. To śledzenie umożliwia wykonanie kilku zachowań:

  • Nowe zasoby zdefiniowane w konfiguracji są tworzone w obszarze roboczym
  • Istniejące zasoby , które zostały wcześniej wdrożone, są aktualizowane tak, aby były zgodne z bieżącą konfiguracją
  • Usunięte zasoby , które nie są już wyświetlane w konfiguracji, są usuwane z obszaru roboczego

Ważne

Każde wdrożenie pakietu ma unikatową tożsamość na podstawie nazwy pakietu, nazwy docelowej i tożsamości użytkownika wdrażającego. Jeśli wielu członków zespołu wdraża ten sam bundle w tym samym elemencie docelowym, ich wdrożenia powodują konflikt. Koordynuj z zespołem, aby ustalić, kto wdraża do wspólnych środowisk.

W przypadku wdrożeń automatycznych w potokach ciągłej integracji/ciągłego wdrażania dodaj flagę --auto-approve , aby pominąć monity o potwierdzenie:

databricks bundle deploy -t production --auto-approve

Weryfikowanie wdrożonych zasobów

Po zakończeniu wdrażania sprawdź, czy zasoby są dostępne i skonfigurowane poprawnie w obszarze roboczym. Polecenie bundle summary zwraca informacje o wdrożonych zasobach, w tym linki bezpośrednie , aby wyświetlić je w interfejsie użytkownika usługi Azure Databricks:

databricks bundle summary
Name: my_data_pipeline
Target: dev
Workspace:
  Host: https://adb-1234567890123456.7.azuredatabricks.net
  User: someone@example.com
  Path: /Users/someone@example.com/.bundle/my_data_pipeline/dev
Resources:
  Jobs:
    data_ingestion_job:
      Name: [dev someone] data_ingestion_job
      URL:  https://adb-1234567890123456.7.azuredatabricks.net/jobs/123456789?o=1234567890123456
  Pipelines:
    transform_pipeline:
      Name: [dev someone] transform_pipeline
      URL:  https://adb-1234567890123456.7.azuredatabricks.net/pipelines/abc-123-def?o=1234567890123456

Możesz również przejść bezpośrednio do określonego zasobu przy użyciu bundle open polecenia :

databricks bundle open data_ingestion_job

To polecenie otwiera zasób w przeglądarce w środowisku Azure Databricks.

Rozwiązywanie typowych problemów z wdrażaniem

Nawet przy starannym przygotowaniu wdrożenia czasami napotykają problemy. Poniżej przedstawiono typowe problemy i sposoby ich rozwiązywania:

Błędy uwierzytelniania: jeśli widzisz błędy odmowy uprawnień lub uwierzytelniania, sprawdź, czy interfejs wiersza polecenia jest skonfigurowany przy użyciu prawidłowych poświadczeń. Sprawdź konfigurację profilu lub ponownie uwierzytelnij się w obszarze roboczym.

databricks auth login --host https://adb-1234567890123456.7.azuredatabricks.net

Konflikty blokad: gdy wdrożenie jest w toku, interfejs wiersza polecenia usługi Databricks uzyskuje blokadę , aby zapobiec współbieżnym modyfikacjom. Jeśli poprzednie wdrożenie zostało przerwane i pozostawiło osieroconą blokadę, mogą pojawić się błędy blokady. Użyj flagi --force-lock, aby zastąpić blokadę, i tylko wtedy, gdy masz pewność, że żadne inne wdrożenie nie jest uruchomione.

databricks bundle deploy --force-lock

Konflikty z aktywnymi uruchomieniami: jeśli zadania lub potoki przetwarzania z pakietu są obecnie uruchomione, wdrożenie może je zakłócić. Dodaj flagę --fail-on-active-runs, aby wdrożenie nie powiodło się po wykryciu aktywnych zadań, lub obsłuż zasoby aktualnie w użyciu w strategii wdrażania.

Ostrzeżenia dotyczące walidacji: jeśli bundle validate zgłasza ostrzeżenia dotyczące nieznanych właściwości, konfiguracja może odwoływać się do funkcji niedostępnych w bieżącej wersji interfejsu wiersza polecenia lub obszarze roboczym. Zaktualizuj interfejs wiersza polecenia lub przejrzyj nazwy właściwości względem bieżącego schematu.

Za pomocą tych poleceń wdrażania można niezawodnie przenieść pracę z inżynierią danych z etapu rozwoju, przez etap testowy, do środowisk produkcyjnych, zachowując kontrolę nad tym, co i kiedy jest wdrażane.