Opracowywanie zadania w usłudze Azure Databricks 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 zadania. Za pomocą pakietów można również programowo zarządzać potokami tabel delta Live Tables i pracować z stosami MLOps. Zobacz Co to są pakiety zasobów usługi Databricks?.
W tym artykule opisano kroki, które można wykonać z lokalnej konfiguracji programowania, aby użyć pakietu, który programowo zarządza zadaniem. Zobacz Wprowadzenie do przepływów pracy usługi Azure Databricks.
Jeśli masz istniejące zadania utworzone przy użyciu interfejsu użytkownika przepływów pracy usługi Azure Databricks lub interfejsu API, które chcesz przenieść do pakietów, musisz utworzyć je ponownie jako pliki konfiguracji pakietu. W tym celu usługa Databricks zaleca, aby najpierw utworzyć pakiet, wykonując poniższe kroki i sprawdzić, czy pakiet działa. Następnie można dodawać definicje zadań, notesy i inne źródła do pakietu. Zobacz Dodawanie istniejącej definicji zadania do pakietu.
Oprócz używania interfejsu wiersza polecenia usługi Databricks do uruchamiania zadania wdrożonego przez pakiet można również wyświetlać i uruchamiać te zadania w interfejsie użytkownika zadań usługi Azure Databricks. Zobacz Wyświetlanie i uruchamianie zadania utworzonego za pomocą pakietu zasobów usługi Databricks.
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.
Decyzja: Utwórz pakiet przy użyciu szablonu lub ręcznie
Zdecyduj, czy chcesz utworzyć przykładowy pakiet przy użyciu szablonu, czy ręcznie:
Tworzenie pakietu przy użyciu szablonu
W tych krokach utworzysz pakiet przy użyciu domyślnego szablonu pakietu usługi Azure Databricks dla języka Python, który składa się z notesu lub kodu w języku Python, w połączeniu z definicją zadania do jego uruchomienia. Następnie należy zweryfikować, wdrożyć i uruchomić wdrożone zadanie w obszarze roboczym usługi Azure Databricks. Zdalny obszar roboczy musi mieć włączone pliki obszaru roboczego. Zobacz Co to są pliki obszaru roboczego?.
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
Pakiet zawiera artefakty, które chcesz wdrożyć, oraz ustawienia zasobów, które chcesz uruchomić.
Użyj terminalu lub wiersza polecenia, aby przełączyć się do katalogu na lokalnej maszynie deweloperskiej, która będzie zawierać wygenerowany pakiet szablonu.
Uruchom polecenie za pomocą interfejsu
bundle init
wiersza polecenia usługi Dataricks: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 iyes
naciśnijEnter
.W polu
Include a stub (sample) DLT pipeline
wybierz ino
naciśnijEnter
. Spowoduje to, że interfejs wiersza polecenia usługi Databricks nie zdefiniuje przykładowego potoku delta live tables w pakiecie.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 i otwórz ten katalog przy użyciu preferowanego środowiska IDE, na przykład programu Visual Studio Code. Pliki o szczególnym znaczeniu obejmują następujące elementy:
databricks.yml
: Ten plik określa nazwę programową pakietu, zawiera odwołanie do definicji zadania i określa ustawienia docelowego obszaru roboczego.resources/<project-name>_job.yml
: ten plik określa ustawienia zadania, w tym domyślne zadanie notesu.src/notebook.ipynb
: Ten plik jest przykładowym notesem, który po uruchomieniu po prostu inicjuje RDD zawierający liczby od 1 do 10.
W przypadku dostosowywania zadań mapowania w deklaracji zadania odpowiadają ładunkowi żądania operacji tworzenia zadania zgodnie z definicją w pliku POST /api/2.1/jobs/create w odwołaniu interfejsu API REST wyrażonym w formacie YAML.
Napiwek
Ustawienia nowych klastrów zadań w pakietach można definiować, łączyć i zastępować przy użyciu technik opisanych w temacie Zastępowanie ustawień klastra w pakietach zasobów usługi Databricks.
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 zadanie usługi Azure Databricks 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 zadanie zostało utworzone: na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Przepływy pracy.
Na karcie Zadania kliknij pozycję [dev
<your-username>
]<project-name>_job
.Kliknij kartę Zadania . Powinno istnieć jedno zadanie: notebook_task.
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 zadanie usługi Azure Databricks w obszarze roboczym.
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>_job
Skopiuj wartość
Run 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 zadania i wyświetl zielony pasek tytułu kliknij zadanie zadania, aby wyświetlić wyniki.
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 zadanie 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
Potwierdź żądanie usunięcia zadania: 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.
Osiągnięto koniec kroków tworzenia pakietu przy użyciu szablonu.
Ręczne tworzenie pakietu
W tych krokach utworzysz pakiet od podstaw. Ten prosty pakiet składa się z dwóch notesów i definicji zadania usługi Azure Databricks do uruchamiania tych notesów. Następnie zweryfikuj, wdróż i uruchom wdrożone notesy z zadania w obszarze roboczym usługi Azure Databricks. Te kroki umożliwiają zautomatyzowanie przewodnika Szybki start zatytułowanego Tworzenie pierwszego przepływu pracy za pomocą zadania usługi Azure Databricks.
Krok 1. Tworzenie pakietu
Pakiet zawiera artefakty, które chcesz wdrożyć, oraz ustawienia zasobów, które chcesz uruchomić.
- Utwórz lub zidentyfikuj pusty katalog na maszynie dewelopera.
- Przejdź do pustego katalogu w terminalu lub otwórz pusty katalog w środowisku IDE.
Napiwek
Pusty katalog może być skojarzony z sklonowanym repozytorium zarządzanym przez dostawcę usługi Git. Dzięki temu można zarządzać pakietem za pomocą zewnętrznej kontroli wersji i łatwiej współpracować z innymi deweloperami i specjalistami IT w projekcie. Jednak aby uprościć tę demonstrację, sklonowane repozytorium nie jest tutaj używane.
Jeśli zdecydujesz się sklonować repozytorium na potrzeby tego pokazu, usługa Databricks zaleca, aby repozytorium było puste lub zawierało tylko podstawowe pliki, takie jak README
i .gitignore
. W przeciwnym razie wszystkie istniejące pliki w repozytorium mogą być niepotrzebnie synchronizowane z obszarem roboczym usługi Azure Databricks.
Krok 2. Dodawanie notesów do projektu
W tym kroku do projektu zostaną dodane dwa notesy. Pierwszy notes pobiera listę popularnych nazw dzieci od 2007 roku z publicznych źródeł danych Departamentu Zdrowia w Nowym Jorku. Zobacz Baby Names: Trending by Name: Beginning 2007 (Popularne według nazwy: początek 2007 ) na stronie internetowej działu. Następnie pierwszy notes zapisuje te dane w woluminie wykazu aparatu Unity usługi Azure Databricks o nazwie w schemacie o nazwie my-volume
w katalogu o nazwie default
main
. Drugi notes wysyła zapytanie do zapisanych danych i wyświetla zagregowane liczby nazwisk dziecka według imienia i płci w 2014 roku.
W katalogu głównym utwórz pierwszy notes o nazwie
retrieve-baby-names.py
.Dodaj następujący kod do pliku
retrieve-baby-names.py
:# Databricks notebook source import requests response = requests.get('http://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv') csvfile = response.content.decode('utf-8') dbutils.fs.put("/Volumes/main/default/my-volume/babynames.csv", csvfile, True)
Utwórz drugi notes o nazwie
filter-baby-names.py
, w tym samym katalogu.Dodaj następujący kod do pliku
filter-baby-names.py
:# Databricks notebook source babynames = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/Volumes/main/default/my-volume/babynames.csv") babynames.createOrReplaceTempView("babynames_table") years = spark.sql("select distinct(Year) from babynames_table").toPandas()['Year'].tolist() years.sort() dbutils.widgets.dropdown("year", "2014", [str(x) for x in years]) display(babynames.filter(babynames.Year == dbutils.widgets.get("year")))
Krok 3. Dodawanie pliku schematu konfiguracji pakietu do projektu
Jeśli używasz środowiska IDE, takiego jak Visual Studio Code, PyCharm Professional lub IntelliJ IDEA Ultimate, który zapewnia obsługę plików YAML i plików schematu JSON, możesz użyć środowiska IDE nie tylko do utworzenia pliku schematu konfiguracji pakietu, ale także do sprawdzenia składni i formatowania pakietu projektu oraz zapewnienia wskazówek dotyczących uzupełniania kodu, Następujący sposób. Pamiętaj, że podczas gdy plik konfiguracji pakietu, który zostanie utworzony w dalszej części kroku 5, jest oparty na języku YAML, plik schematu konfiguracji pakietu w tym kroku jest oparty na formacie JSON.
Visual Studio Code
Dodaj obsługę serwera języka YAML do programu Visual Studio Code, na przykład przez zainstalowanie rozszerzenia YAML z witryny Visual Studio Code Marketplace.
Wygeneruj plik schematu JSON konfiguracji pakietu zasobów usługi Databricks przy użyciu interfejsu wiersza polecenia usługi Databricks, aby uruchomić
bundle schema
polecenie i przekierować dane wyjściowe do pliku JSON. Na przykład wygeneruj plik o nazwiebundle_config_schema.json
w bieżącym katalogu w następujący sposób:databricks bundle schema > bundle_config_schema.json
Pamiętaj, że w dalszej części kroku 5 dodasz następujący komentarz na początku pliku konfiguracji pakietu, który kojarzy plik konfiguracji pakietu z określonym plikiem schematu JSON:
# yaml-language-server: $schema=bundle_config_schema.json
Uwaga
W poprzednim komentarzu, jeśli plik schematu JSON konfiguracji pakietu zasobów usługi Databricks znajduje się w innej ścieżce, zastąp
bundle_config_schema.json
pełną ścieżką do pliku schematu.
PyCharm Professional
Wygeneruj plik schematu JSON konfiguracji pakietu zasobów usługi Databricks przy użyciu interfejsu wiersza polecenia usługi Databricks, aby uruchomić
bundle schema
polecenie i przekierować dane wyjściowe do pliku JSON. Na przykład wygeneruj plik o nazwiebundle_config_schema.json
w bieżącym katalogu w następujący sposób:databricks bundle schema > bundle_config_schema.json
Skonfiguruj narzędzie PyCharm do rozpoznawania pliku schematu JSON konfiguracji pakietu, a następnie ukończ mapowanie schematu JSON, postępując zgodnie z instrukcjami w temacie Konfigurowanie niestandardowego schematu JSON.
Pamiętaj, że w dalszej części kroku 5 użyjesz narzędzia PyCharm do utworzenia lub otwarcia pliku konfiguracji pakietu. Zgodnie z konwencją ten plik ma nazwę
databricks.yml
.
IntelliJ IDEA Ultimate
Wygeneruj plik schematu JSON konfiguracji pakietu zasobów usługi Databricks przy użyciu interfejsu wiersza polecenia usługi Databricks, aby uruchomić
bundle schema
polecenie i przekierować dane wyjściowe do pliku JSON. Na przykład wygeneruj plik o nazwiebundle_config_schema.json
w bieżącym katalogu w następujący sposób:databricks bundle schema > bundle_config_schema.json
Skonfiguruj środowisko IntelliJ IDEA do rozpoznawania pliku schematu JSON konfiguracji pakietu, a następnie ukończ mapowanie schematu JSON, postępując zgodnie z instrukcjami w temacie Konfigurowanie niestandardowego schematu JSON.
Pamiętaj, że w dalszej części kroku 5 użyjesz środowiska IntelliJ IDEA do utworzenia lub otwarcia pliku konfiguracji pakietu. Zgodnie z konwencją ten plik ma nazwę
databricks.yml
.
Krok 4. 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 5. Dodawanie pliku konfiguracji pakietu do projektu
W tym kroku zdefiniujesz sposób wdrażania i uruchamiania tych dwóch notesów. Na potrzeby tego pokazu chcesz użyć zadania usługi Azure Databricks do uruchomienia pierwszego notesu, a następnie drugiego notesu. Ponieważ pierwszy notes zapisuje dane, a drugi notes wysyła zapytanie do zapisanych danych, chcesz, aby pierwszy notes zakończył działanie przed uruchomieniem drugiego notesu. Te cele modelujesz w pliku konfiguracji pakietu w projekcie.
- W katalogu głównym utwórz plik konfiguracji pakietu o nazwie
databricks.yml
. - Dodaj następujący kod do
databricks.yml
pliku, zastępując<workspace-url>
ciąg adresem URL obszaru roboczego, na przykładhttps://adb-1234567890123456.7.azuredatabricks.net
. Ten adres URL musi być zgodny z adresem w.databrickscfg
pliku:
Napiwek
Pierwszy wiersz, rozpoczynający się od # yaml-language-server
, jest wymagany tylko wtedy, gdy środowisko IDE go obsługuje. Aby uzyskać szczegółowe informacje, zobacz Krok 3 wcześniej.
# yaml-language-server: $schema=bundle_config_schema.json
bundle:
name: baby-names
resources:
jobs:
retrieve-filter-baby-names-job:
name: retrieve-filter-baby-names-job
job_clusters:
- job_cluster_key: common-cluster
new_cluster:
spark_version: 12.2.x-scala2.12
node_type_id: Standard_DS3_v2
num_workers: 1
tasks:
- task_key: retrieve-baby-names-task
job_cluster_key: common-cluster
notebook_task:
notebook_path: ./retrieve-baby-names.py
- task_key: filter-baby-names-task
depends_on:
- task_key: retrieve-baby-names-task
job_cluster_key: common-cluster
notebook_task:
notebook_path: ./filter-baby-names.py
targets:
development:
workspace:
host: <workspace-url>
W przypadku dostosowywania zadań mapowania w deklaracji zadania odpowiadają ładunkowi żądania operacji tworzenia zadania zgodnie z definicją w pliku POST /api/2.1/jobs/create w odwołaniu interfejsu API REST wyrażonym w formacie YAML.
Napiwek
Ustawienia nowych klastrów zadań w pakietach można definiować, łączyć i zastępować przy użyciu technik opisanych w temacie Zastępowanie ustawień klastra w pakietach zasobów usługi Databricks.
Krok 6. Weryfikowanie pliku konfiguracji pakietu projektu
W tym kroku sprawdzisz, czy konfiguracja pakietu jest prawidłowa.
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 7. Wdrażanie projektu lokalnego w zdalnym obszarze roboczym
W tym kroku wdrożysz dwa notesy lokalne w zdalnym obszarze roboczym usługi Azure Databricks i utworzysz zadanie usługi Azure Databricks w obszarze roboczym.
Użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić
bundle deploy
polecenie w następujący sposób:databricks bundle deploy -t development
Sprawdź, czy wdrożono dwa lokalne notesy: na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Obszar roboczy.
Kliknij folder Pliki programistyczne Users
<your-username>
> >.bundle .bundle > baby-names.> > Dwa notesy powinny znajdować się w tym folderze.Sprawdź, czy zadanie zostało utworzone: na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Przepływy pracy.
Na karcie Zadania kliknij pozycję retrieve-filter-baby-names-job.
Kliknij kartę Zadania . Powinny istnieć dwa zadania: retrieve-baby-names-task i filter-baby-names-task.
Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, powtórz kroki od 6 do 7, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa, a następnie ponownie wdrożyć projekt.
Krok 8. Uruchamianie wdrożonego projektu
W tym kroku uruchomisz zadanie usługi Azure Databricks w obszarze roboczym.
Użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić
bundle run
polecenie w następujący sposób:databricks bundle run -t development retrieve-filter-baby-names-job
Skopiuj wartość
Run 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 dwóch zadań i wyświetl zielone paski tytułu kliknij zadanie filter-baby-names-task , aby wyświetlić wyniki zapytania.
Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, powtórz kroki od 6 do 8, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa, ponownie wdróż projekt i uruchom ponownie wdrożony projekt.
Krok 9. Czyszczenie
W tym kroku usuniesz dwa wdrożone notesy i zadanie z obszaru roboczego.
Użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić
bundle destroy
polecenie w następujący sposób:databricks bundle destroy
Potwierdź żądanie usunięcia zadania: po wyświetleniu monitu o trwałe zniszczenie zasobów wpisz
y
i naciśnijEnter
.Potwierdź żądanie usunięcia notesów: po wyświetleniu monitu o trwałe zniszczenie wcześniej wdrożonego folderu i wszystkich jego plików wpisz
y
i naciśnijEnter
.
bundle destroy
Uruchomienie polecenia powoduje usunięcie tylko wdrożonego zadania i folderu zawierającego dwa wdrożone notesy. To polecenie nie usuwa żadnych skutków ubocznych, takich jak babynames.csv
plik utworzony przez pierwszy notes. Aby usunąć babybnames.csv
plik, wykonaj następujące czynności:
- Na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Wykaz.
- Kliknij pozycję Przeglądaj system plików DBFS.
- Kliknij folder FileStore.
- Kliknij strzałkę listy rozwijanej obok babynames.csv, a następnie kliknij przycisk Usuń.
- Jeśli chcesz również usunąć pakiet z komputera dewelopera, możesz teraz usunąć katalog lokalny z kroku 1.
Dodawanie istniejącej definicji zadania do pakietu
Możesz użyć istniejącej definicji zadania jako podstawy, aby zdefiniować nowe zadanie w pliku konfiguracji pakietu. W tym celu wykonaj następujące kroki.
Uwaga
Poniższe kroki umożliwiają utworzenie nowego zadania, które ma te same ustawienia co istniejące zadanie. Jednak nowe zadanie ma inny identyfikator zadania niż istniejące zadanie. Nie można automatycznie zaimportować istniejącego identyfikatora zadania do pakietu.
Krok 1. Pobieranie istniejącej definicji zadania w formacie YAML
W tym kroku użyj interfejsu użytkownika obszaru roboczego usługi Azure Databricks, aby uzyskać reprezentację YAML istniejącej definicji zadania.
- Na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Przepływy pracy.
- Na karcie Zadania kliknij link Nazwa zadania.
- Obok przycisku Uruchom teraz kliknij wielokropek, a następnie kliknij pozycję Wyświetl PLIK YAML.
- Na karcie Tworzenie skopiuj plik YAML definicji zadania do lokalnego schowka, klikając pozycję Kopiuj.
Krok 2. Dodawanie definicji zadania YAML do pliku konfiguracji pakietu
W pliku konfiguracji pakietu dodaj kod YAML skopiowany z poprzedniego kroku do jednej z następujących lokalizacji oznaczonych <job-yaml-can-go-here>
w plikach konfiguracji pakietu w następujący sposób:
resources:
jobs:
<some-unique-programmatic-identifier-for-this-job>:
<job-yaml-can-go-here>
targets:
<some-unique-programmatic-identifier-for-this-target>:
resources:
jobs:
<some-unique-programmatic-identifier-for-this-job>:
<job-yaml-can-go-here>
Krok 3. Dodawanie notesów, plików języka Python i innych artefaktów do pakietu
Wszystkie pliki i notesy języka Python, do których odwołuje się istniejące zadanie, powinny zostać przeniesione do źródeł pakietu.
Aby uzyskać lepszą zgodność z pakietami, notesy powinny używać formatu notesu IPython (.ipynb
). Jeśli tworzysz pakiet lokalnie, możesz wyeksportować istniejący notes z obszaru roboczego usługi Azure Databricks do .ipynb
formatu, klikając pozycję Plik > Eksportuj > notes IPython z poziomu interfejsu użytkownika notesu usługi Azure Databricks. Zgodnie z konwencją należy następnie umieścić pobrany notes w src/
katalogu w pakiecie.
Po dodaniu notesów, plików języka Python i innych artefaktów do pakietu upewnij się, że definicja zadania odwołuje się do nich. Na przykład w przypadku notesu hello.ipynb
z nazwą pliku, który znajduje się w src/
katalogu, a src/
katalog znajduje się w tym samym folderze co plik konfiguracji pakietu odwołujący src/
się do katalogu, definicja zadania może być wyrażona w następujący sposób:
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
notebook_task:
notebook_path: ./src/hello.ipynb
Krok 4. Weryfikowanie, wdrażanie i uruchamianie nowego zadania
Sprawdź, czy pliki konfiguracji pakietu są syntaktycznie poprawne, uruchamiając następujące polecenie:
databricks bundle validate
Wdróż pakiet, uruchamiając następujące polecenie. W tym poleceniu zastąp
<target-identifier>
unikatowym identyfikatorem programowym elementu docelowego z konfiguracji pakietu:databricks bundle deploy -t <target-identifier>
Uruchom zadanie za pomocą następującego polecenia.
databricks bundle run -t <target-identifier> <job-identifier>
- Zastąp
<target-identifier>
element unikatowym identyfikatorem programowym elementu docelowego z konfiguracji pakietu. - Zastąp
<job-identifier>
element unikatowym identyfikatorem programowym zadania z konfiguracji pakietu.
- Zastąp
Konfigurowanie zadania korzystającego z obliczeń bezserwerowych
Ważne
Bezserwerowe obliczenia dla przepływów pracy są w publicznej wersji zapoznawczej. Aby uzyskać informacje na temat uprawnień i włączania, zobacz Włączanie bezserwerowych obliczeń.
W poniższych przykładach pokazano konfiguracje pakietów w celu utworzenia zadania korzystającego z bezserwerowych obliczeń.
Aby użyć bezserwerowych obliczeń do uruchomienia zadania obejmującego zadania notesu, pomiń konfigurację job_clusters
z pliku konfiguracji pakietu.
# yaml-language-server: $schema=bundle_config_schema.json
bundle:
name: baby-names
resources:
jobs:
retrieve-filter-baby-names-job-serverless:
name: retrieve-filter-baby-names-job-serverless
tasks:
- task_key: retrieve-baby-names-task
notebook_task:
notebook_path: ./retrieve-baby-names.py
- task_key: filter-baby-names-task
depends_on:
- task_key: retrieve-baby-names-task
notebook_task:
notebook_path: ./filter-baby-names.py
targets:
development:
workspace:
host: <workspace-url>
Aby używać bezserwerowych obliczeń do uruchamiania zadania obejmującego zadania języka Python, uwzględnij konfigurację environments
.
# yaml-language-server: $schema=bundle_config_schema.json
bundle:
name: serverless-python-tasks
resources:
jobs:
serverless-python-job:
name: serverless-job-with-python-tasks
tasks:
- task_key: wheel-task-1
python_wheel_task:
entry_point: main
package_name: wheel_package
environment_key: Default
environments:
- environment_key: Default
spec:
client: "1"
dependencies:
- workflows_authoring_toolkit==0.0.1
targets:
development:
workspace:
host: <workspace-url>
Zobacz Uruchamianie zadania usługi Azure Databricks z bezserwerowymi obliczeniami dla przepływów pracy.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla