Co to są pakiety zasobów usługi Databricks?
Pakiety zasobów Databricks (DAB) to narzędzie ułatwiające wdrażanie najlepszych praktyk inżynierii oprogramowania, w tym kontroli wersji, recenzji kodu, testowania oraz ciągłej integracji i ciągłego dostarczania (CI/CD) w projektach związanych z danymi i sztuczną inteligencją. 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 DLT, 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 przegląd procesu rozwoju i CI/CD z pakietami.
Kiedy należy używać pakietów zasobów usługi Databricks?
Pakiety zasobów Databricks to podejście infrastruktury jako kodu (IaC) do zarządzania projektami 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 z kodem źródłowym, dobrze pasują do sytuacji, 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.
- Przyspiesz iterację w pracy nad problemami uczenia maszynowego. Zarządzaj zasobami potoku uczenia maszynowego (takimi jak zadania trenowania i wnioskowania wsadowego), korzystając z projektów uczenia maszynowego, które są zgodne z najlepszymi praktykami produkcyjnymi od początku.
- Ustaw standardy organizacyjne dla nowych projektów, tworząc niestandardowe szablony pakietów, które obejmują domyślne uprawnienia, główne usługi oraz konfiguracje CI/CD.
- 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ć ze ś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żywasz Databricks CLI do wdrażania pakietów 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źć wersję zainstalowanego Databricks CLI, 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ą, aby funkcja plików obszaru roboczego była włączona. 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 scenariuszy uwierzytelniania, w których wymagana jest obecność użytkownika, takich jak ręczne przepływy pracy, w których używasz przeglądarki internetowej do logowania się do docelowego obszaru roboczego Azure Databricks (kiedy interfejs wiersza polecenia Databricks wymaga zalogowania), użyj uwierzytelniania użytkownik-maszyna (U2M) OAuth. 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 zasad usługi Azure Databricks i jest idealna do korzystania z Pakietów Zasobów Databricks z systemami Continuous Integration/Continuous Deployment (CI/CD), takimi jak GitHub.
Dla uwierzytelniania OAuth U2M wykonaj następujące czynności:
Użyj Databricks CLI, 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
URL-em przypisanym do konkretnego obszaru roboczego w usłudze Azure Databricks , na przykład . databricks auth login --host <workspace-url>
Interfejs wiersza polecenia Databricks zachęca do zapisania wprowadzonych informacji jako profil konfiguracji dla 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 profili o tej samej wartości
--host
, może być konieczne określenie opcji--host
i-p
razem, aby ułatwić interfejsowi wiersza polecenia Databricks znalezienie prawidłowych informacji o dopasowanym 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łączonej do poleceńdatabricks bundle validate
,databricks bundle deploy
,databricks bundle run
lubdatabricks bundle destroy
. Zobacz Rozwój pakietów zasobów Databricks. - Jako wartość mapowania
profile
w mapowaniu najwyższego poziomu pliku konfiguracji pakietuworkspace
(chociaż usługa Databricks zaleca użycie mapowaniahost
, ustawionego na adres URL obszaru roboczego usługi Azure Databricks, zamiast mapowaniaprofile
, ponieważ sprawia, że pliki konfiguracji są bardziej przenośne). Zobacz zakres mapowaniaprofile
w obszarze roboczym. - Jeśli nazwa profilu konfiguracji to
DEFAULT
, jest używana domyślnie, gdy opcja wiersza poleceń-p <profile-name>
lub mapowanieprofile
(lubhost
) nie jest określone.
W celu uwierzytelniania OAuth M2M wykonaj następujące czynności:
Wykonaj instrukcje dotyczące konfigurowania uwierzytelniania OAuth M2M. Zobacz Autoryzowanie nienadzorowanego dostępu do zasobów usługi Azure Databricks przy użyciu obiektu usługi z wykorzystaniem protokołu OAuth.
Zainstaluj Databricks CLI w docelowym zasobie obliczeniowym w jeden z poniższych 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 Databricks CLI na maszynie wirtualnej GitHub, zobacz konfigurowanie narzędzia CLI w GitHub.
- Aby użyć innych systemów CI/CD do automatycznego instalowania interfejsu wiersza polecenia usługi Databricks na maszynie wirtualnej, zobacz dokumentację dostawcy systemu CI/CD oraz 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 na adres URL usługi Azure Databricks na poziomie obszaru roboczego , na przykładhttps://adb-1234567890123456.7.azuredatabricks.net
. -
DATABRICKS_CLIENT_ID
, ustaw wartość na identyfikator aplikacji jednostki usługi Azure Databricks. -
DATABRICKS_CLIENT_SECRET
, ustaw na wartość OAuth Secret jednostki głównej usługi Azure Databricks.
Aby ustawić te zmienne środowiskowe, zapoznaj się z dokumentacją systemu operacyjnego zasobu obliczeniowego, który jest docelowy, lub systemu CI/CD.
-
Opracuj pierwszy pakiet zasobów 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 bundle init CLI 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órego kluczowym elementem jest definiowanie ustawień pakietu i zasobów w plikach konfiguracji databricks.yml
. 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ładów pakietów w 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 Databricks.
- Utwórz pakiet, który wdraża notatnik w obszarze roboczym usługi Azure Databricks, a następnie uruchamia ten notatnik jako potok DLT. Zobacz Develop DLT pipelines with Databricks Asset Bundles (Tworzenie potoków DLT za pomocą pakietów zasobów usługi Databricks).
- Utwórz pakiet, który wdraża i uruchamia stos MLOps. Zobacz Pakiety zasobów Databricks dla stosów MLOps.
- Dodaj zestaw do przepływu pracy CI/CD (ciągła integracja/ciągłe wdrażanie) w serwisie GitHub. Zapoznaj się z przepływem CI/CD za pomocą pakietu zasobów Databricks i GitHub Actions.
- Utwórz pakiet, który buduje, wdraża i wywołuje plik typu wheel dla Pythona. 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 najważniejsze nowe funkcje udostępnione dla pakietów zasobów usługi Databricks. Zobacz Informacje o wersji funkcji pakietu zasobów usługi Databricks.