Co to są pakiety zasobów usługi Databricks?
Pakiety zasobów usługi Databricks (DAB) to narzędzie ułatwiające wdrażanie najlepszych rozwiązań w zakresie inżynierii oprogramowania, w tym kontroli źródła, przeglądu kodu, testowania oraz ciągłej integracji i ciągłego dostarczania (CI/CD) dla danych i projektów sztucznej inteligencji. Pakiety umożliwiają opisywanie zasobów usługi Databricks, takich jak zadania, potoki i notesy jako pliki źródłowe. Te pliki źródłowe zapewniają kompleksową definicję projektu, w tym sposób, w jaki powinien on być ustrukturyzowany, przetestowany i wdrożony, co ułatwia współpracę nad projektami podczas aktywnego opracowywania.
Pakiety umożliwiają dołączanie metadanych wraz z plikami źródłowymi projektu. Podczas wdrażania projektu przy użyciu pakietów te metadane są używane do aprowizowania infrastruktury i innych zasobów. Kolekcja plików źródłowych i metadanych projektu jest następnie wdrażana jako pojedynczy pakiet w środowisku docelowym. Pakiet zawiera następujące części:
- Wymagana infrastruktura chmury i konfiguracje obszaru roboczego
- Pliki źródłowe, takie jak notesy i pliki języka Python, które obejmują logikę biznesową
- Definicje i ustawienia zasobów usługi Databricks, takich jak zadania usługi Azure Databricks, potoki delta live tables, punkty końcowe obsługujące model, eksperymenty MLflow i zarejestrowane modele MLflow
- Testy jednostkowe i testy integracji
Na poniższym diagramie przedstawiono ogólny widok potoku programowania i ciągłej integracji/ciągłego wdrażania z pakietami:
Kiedy należy używać pakietów zasobów usługi Databricks?
Pakiety zasobów usługi Databricks to podejście infrastruktury jako kodu (IaC) do zarządzania projektami usługi Databricks. Używaj ich, gdy chcesz zarządzać złożonymi projektami, w których wiele współautorów i automatyzacja jest niezbędnych, a ciągła integracja i ciągłe wdrażanie (CI/CD) są wymagane. Ponieważ pakiety są definiowane i zarządzane za pomocą szablonów YAML i plików tworzonych i utrzymywanych wraz z kodem źródłowym, są one mapowane dobrze na scenariusze, w których IaC jest odpowiednim podejściem.
Oto kilka idealnych scenariuszy dla pakietów:
- Opracowywanie projektów danych, analiz i uczenia maszynowego w środowisku opartym na zespole. Pakiety mogą ułatwić efektywne organizowanie różnych plików źródłowych i zarządzanie nimi. Zapewnia to bezproblemową współpracę i usprawnione procesy.
- Szybsze iterowanie problemów z uczeniem maszynowym. Zarządzanie zasobami potoku uczenia maszynowego (takimi jak zadania trenowania i wnioskowania wsadowego) przy użyciu projektów uczenia maszynowego, które są zgodne z najlepszymi rozwiązaniami produkcyjnymi od początku.
- Ustaw standardy organizacyjne dla nowych projektów, tworząc szablony pakietów niestandardowych, które obejmują domyślne uprawnienia, jednostki usługi i konfiguracje ciągłej integracji/ciągłego wdrażania.
- Zgodność z przepisami: W branżach, w których zgodność z przepisami jest istotnym problemem, pakiety mogą pomóc w utrzymaniu historii wersji kodu i pracy infrastruktury. Pomaga to w zapewnianiu ładu i zapewnia spełnienie niezbędnych standardów zgodności.
Jak działają pakiety zasobów usługi Databricks?
Metadane pakietu są definiowane przy użyciu plików YAML określających artefakty, zasoby i konfigurację projektu usługi Databricks. Ten plik YAML można utworzyć ręcznie lub wygenerować przy użyciu szablonu pakietu. Interfejs wiersza polecenia usługi Databricks może następnie służyć do weryfikowania, wdrażania i uruchamiania pakietów przy użyciu tych plików YAML pakietu. Projekty pakietów można uruchamiać bezpośrednio z środowisk IDE, terminali lub bezpośrednio w usłudze Databricks. W tym artykule jest używany interfejs wiersza polecenia usługi Databricks.
Pakiety można tworzyć ręcznie lub na podstawie szablonu. Interfejs wiersza polecenia usługi Databricks udostępnia szablony domyślne dla prostych przypadków użycia, ale w przypadku bardziej szczegółowych lub złożonych zadań można utworzyć niestandardowe szablony pakietów w celu zaimplementowania najlepszych rozwiązań zespołu i zachowania spójności typowych konfiguracji.
Aby uzyskać więcej informacji na temat konfiguracji YAML używanej do wyrażania pakietów zasobów usługi Databricks, zobacz Konfiguracja pakietu zasobów usługi Databricks.
Konfigurowanie środowiska pod kątem używania pakietów
Użyj interfejsu wiersza polecenia usługi Databricks, aby łatwo wdrożyć pakiety z wiersza polecenia. Aby zainstalować interfejs wiersza polecenia usługi Databricks, zobacz Instalowanie lub aktualizowanie interfejsu wiersza polecenia usługi Databricks.
Pakiety zasobów usługi Databricks są dostępne w interfejsie wiersza polecenia usługi Databricks w wersji 0.218.0 lub nowszej. Aby znaleźć zainstalowaną wersję interfejsu wiersza polecenia usługi Databricks, uruchom następujące polecenie:
databricks --version
Po zainstalowaniu interfejsu wiersza polecenia usługi Databricks sprawdź, czy zdalne obszary robocze usługi Databricks są poprawnie skonfigurowane. Pakiety wymagają włączenia funkcji plików obszaru roboczego, ponieważ ta funkcja obsługuje pracę z plikami innymi niż notesy usługi Databricks, takich jak .py
i .yml
. Jeśli używasz środowiska Databricks Runtime w wersji 11.3 LTS lub nowszej, ta funkcja jest domyślnie włączona.
Uwierzytelnianie
Usługa Azure Databricks udostępnia kilka metod uwierzytelniania:
- W przypadku obsługiwanych scenariuszy uwierzytelniania, takich jak ręczne przepływy pracy, w których używasz przeglądarki internetowej do logowania się do docelowego obszaru roboczego usługi Azure Databricks (po wyświetleniu monitu przez interfejs wiersza polecenia usługi Databricks), użyj uwierzytelniania użytkownika do maszyny OAuth (U2M). Ta metoda jest idealna do eksperymentowania z samouczkami wprowadzającymi dla pakietów zasobów usługi Databricks lub szybkiego tworzenia pakietów.
- W przypadku scenariuszy uwierzytelniania nienadzorowanego , takich jak w pełni zautomatyzowane przepływy pracy, w których nie ma możliwości użycia przeglądarki internetowej do zalogowania się do docelowego obszaru roboczego usługi Azure Databricks w tym czasie, użyj uwierzytelniania maszyny do maszyny OAuth (M2M). Ta metoda wymaga użycia jednostek usługi Azure Databricks i jest idealna do używania pakietów zasobów usługi Databricks z systemami ciągłej integracji/ciągłego wdrażania, takimi jak GitHub.
W przypadku uwierzytelniania OAuth U2M wykonaj następujące czynności:
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.
Nazwy tego profilu konfiguracji można używać na co najmniej jeden z następujących sposobów podczas walidacji, wdrażania, uruchamiania lub niszczenia pakietów:
- Za pomocą opcji
-p <profile-name>
wiersza polecenia dołączono do poleceńdatabricks bundle validate
,databricks bundle deploy
, lubdatabricks bundle run
databricks bundle destroy
. Zobacz Programowanie pakietów zasobów usługi Databricks. - Jako wartość
profile
mapowania w pliku konfiguracji pakietu mapowanie najwyższego poziomuworkspace
(chociaż usługa Databricks zaleca użyciehost
mapowania ustawionego na adres URL obszaru roboczego usługi Azure Databricks zamiastprofile
mapowania, ponieważ sprawia, że pliki konfiguracji pakietu są bardziej przenośne). Zobacz pokrycieprofile
mapowania w obszarze roboczym. - Jeśli nazwa profilu konfiguracji to
DEFAULT
, jest używana domyślnie, gdy nie określono opcji-p <profile-name>
wiersza polecenia lubprofile
mapowania (lubhost
).
W przypadku uwierzytelniania OAuth M2M wykonaj następujące czynności:
Wykonaj instrukcje dotyczące konfigurowania uwierzytelniania OAuth M2M. Zobacz Uwierzytelnianie dostępu do usługi Azure Databricks przy użyciu jednostki usługi przy użyciu protokołu OAuth (OAuth M2M).
Zainstaluj interfejs wiersza polecenia usługi Databricks w docelowym zasobie obliczeniowym na jeden z następujących sposobów:
- Aby ręcznie zainstalować interfejs wiersza polecenia usługi Databricks w zasobie obliczeniowym w czasie rzeczywistym, zobacz Instalowanie lub aktualizowanie interfejsu wiersza polecenia usługi Databricks.
- Aby użyć funkcji GitHub Actions do automatycznego instalowania interfejsu wiersza polecenia usługi Databricks na maszynie wirtualnej usługi GitHub, zobacz setup-cli in GitHub (Konfigurowanie interfejsu wiersza polecenia w usłudze GitHub).
- Aby użyć innych systemów ciągłej integracji/ciągłego wdrażania do automatycznego instalowania interfejsu wiersza polecenia usługi Databricks na maszynie wirtualnej, zobacz dokumentację dostawcy systemu ciągłej integracji/ciągłego wdrażania i instalowanie lub aktualizowanie interfejsu wiersza polecenia usługi Databricks.
Ustaw następujące zmienne środowiskowe dla zasobu obliczeniowego w następujący sposób:
DATABRICKS_HOST
, ustaw adres URL usługi Azure Databricks na obszar roboczy, na przykładhttps://adb-1234567890123456.7.azuredatabricks.net
.DATABRICKS_CLIENT_ID
, ustaw wartość identyfikatora aplikacji jednostki usługi Azure Databricks.DATABRICKS_CLIENT_SECRET
, ustaw wartość klucza tajnego OAuth jednostki usługi Azure Databricks.
Aby ustawić te zmienne środowiskowe, zapoznaj się z dokumentacją systemu operacyjnego docelowego zasobu obliczeniowego lub systemu ciągłej integracji/ciągłego wdrażania.
Opracowywanie pierwszego pakietu zasobów usługi Databricks
Najszybszym sposobem rozpoczęcia tworzenia pakietów jest użycie szablonu projektu pakietu. Utwórz swój pierwszy projekt pakietu przy użyciu polecenia init pakietu interfejsu wiersza polecenia usługi Databricks. To polecenie przedstawia wybór domyślnych szablonów pakietów udostępnianych przez usługę Databricks i zadaje serię pytań w celu zainicjowania zmiennych projektu.
databricks bundle init
Tworzenie pakietu to pierwszy krok w cyklu życia pakietu. Drugim krokiem jest opracowanie pakietu, który jest kluczowym elementem definiowania ustawień pakietu i zasobów w databricks.yml
plikach konfiguracji zasobów i . Aby uzyskać informacje na temat konfiguracji pakietu, zobacz Konfiguracja pakietu zasobów usługi Databricks.
Napiwek
Przykłady konfiguracji pakietu można znaleźć w przykładach konfiguracji pakietu i repozytorium Przykłady pakietów w usłudze GitHub.
Następne kroki
- Utwórz pakiet, który wdraża notes w obszarze roboczym usługi Azure Databricks, a następnie uruchamia ten notes jako zadanie usługi Azure Databricks. Zobacz Tworzenie zadania w usłudze Azure Databricks przy użyciu pakietów zasobów usługi Databricks.
- Utwórz pakiet, który wdraża notes w obszarze roboczym usługi Azure Databricks, a następnie uruchamia ten notes jako potok Delta Live Tables. Zobacz Tworzenie potoków tabel delta live z pakietami zasobów usługi Databricks.
- Utwórz pakiet, który wdraża i uruchamia stos MLOps. Zobacz Pakiety zasobów usługi Databricks dla stosów MLOps.
- Dodaj pakiet do przepływu pracy ciągłej integracji/ciągłego wdrażania w usłudze GitHub. Zobacz Uruchamianie przepływu pracy ciągłej integracji/ciągłego wdrażania za pomocą pakietu zasobów usługi Databricks i funkcji GitHub Actions.
- Utwórz pakiet, który kompiluje, wdraża i wywołuje plik wheel języka Python. Zobacz Develop a Python wheel file using Databricks Asset Bundles (Tworzenie pliku wheel języka Python przy użyciu pakietów zasobów usługi Databricks).
- Utwórz szablon niestandardowy, którego ty i inni mogą użyć do utworzenia pakietu. Szablon niestandardowy może zawierać uprawnienia domyślne, jednostki usługi i niestandardową konfigurację ciągłej integracji/ciągłego wdrażania. Zobacz Szablony projektów pakietu zasobów usługi Databricks.
- Migrowanie z bazy danych dbx do pakietów zasobów usługi Databricks. Zobacz Migrowanie z bazy danych dbx do pakietów.
- Poznaj najnowsze główne nowe funkcje wydane dla pakietów zasobów usługi Databricks. Zobacz Informacje o wersji funkcji pakietu zasobów usługi Databricks.