Udostępnij za pośrednictwem


bundle grupa poleceń

Uwaga

Te informacje dotyczą interfejsu wiersza polecenia usługi Databricks w wersji 0.205 lub nowszej. Interfejs wiersza polecenia dla Databricks jest w fazie publicznych testów.

Korzystanie z interfejsu wiersza polecenia usługi Databricks podlega licencjom usługi Databricks i powiadomieniom o ochronie prywatności usługi Databricks, w tym wszelkim przepisom dotyczącym danych użycia.

Grupa poleceń bundle w Interfejsie Wiersza Polecenia Databricks umożliwia programatyczne weryfikowanie, wdrażanie i uruchamianie przepływów pracy Azure Databricks, takich jak zadania Azure Databricks, Lakeflow Deklaratywne Potoki i MLOps Stacks. Zobacz Co to są pakiety zasobów usługi Databricks?.

Polecenia bundle uruchamiasz, dodając je do databricks bundle. Aby wyświetlić pomoc dotyczącą bundle polecenia, uruchom polecenie databricks bundle -h.

Tworzenie pakietu na podstawie szablonu projektu

Aby utworzyć Databricks Asset Bundle przy użyciu domyślnego szablonu Databricks Asset Bundle dla języka Python, uruchom polecenie bundle init w następujący sposób, a następnie odpowiedz na monity na ekranie:

databricks bundle init

Aby utworzyć pakiet zasobów usługi Databricks przy użyciu niestandardowego szablonu pakietu zasobów usługi Databricks, uruchom bundle init polecenie w następujący sposób:

databricks bundle init <project-template-local-path-or-url> \
--project-dir="</local/path/to/project/template/output>"

Zobacz też:

Wyświetlanie schematu konfiguracji pakietu

Aby wyświetlić schemat konfiguracji pakietu, uruchom bundle schema polecenie w następujący sposób:

databricks bundle schema

Aby wyświetlić schemat konfiguracji pakietu zasobów usługi Databricks jako plik JSON, uruchom bundle schema polecenie i przekierowuj dane wyjściowe do pliku JSON. Na przykład możesz wygenerować plik o nazwie bundle_config_schema.json w bieżącym katalogu w następujący sposób:

databricks bundle schema > bundle_config_schema.json

Walidacja pakietu

Aby sprawdzić, czy pliki konfiguracji pakietu są poprawne składniowo, uruchom bundle validate polecenie z katalogu głównego projektu pakietu w następujący sposób:

databricks bundle validate

Domyślnie to polecenie zwraca podsumowanie tożsamości pakietu:

Name: MyBundle
Target: dev
Workspace:
  Host: https://my-host.cloud.databricks.com
  User: someone@example.com
  Path: /Users/someone@example.com/.bundle/MyBundle/dev

Validation OK!

Uwaga

Polecenie bundle validate zwraca ostrzeżenia, jeśli właściwości zasobu są zdefiniowane w plikach konfiguracji pakietu, które nie znajdują się w schemacie odpowiedniego obiektu.

Jeśli chcesz wyświetlić tylko podsumowanie tożsamości i zasobów pakietu, użyj podsumowania pakietu.

Zsynchronizuj drzewo pakietu z obszarem roboczym

Polecenie bundle sync wykonuje jednokierunkową synchronizację zmian plików pakietu w lokalnym katalogu systemu plików do katalogu w zdalnym obszarze roboczym usługi Azure Databricks.

Uwaga

bundle sync Polecenia nie mogą synchronizować zmian plików z katalogu w zdalnym obszarze roboczym usługi Azure Databricks z powrotem do katalogu w lokalnym systemie plików.

databricks bundle sync polecenia działają w taki sam sposób jak databricks sync polecenia i są udostępniane dla zwiększenia produktywności. Aby uzyskać informacje o użyciu poleceń, zobacz sync grupa poleceń.

Generowanie pliku konfiguracji pakietu

Polecenie bundle generate generuje konfigurację zasobu, który już istnieje w obszarze roboczym usługi Databricks. Obsługiwane są następujące zasoby:

Domyślnie to polecenie generuje *.yml plik dla zasobu w resources folderze pakietowego projektu, a także pobiera wszystkie pliki, takie jak notesy, wspomniane w konfiguracji.

Ważne

Polecenie bundle generate jest udostępniane jako wygoda automatycznego generowania konfiguracji zasobów. Jednak gdy konfiguracja zasobu jest uwzględniona w pakiecie i wdrożona, tworzy nowy zasób i nie aktualizuje istniejącego zasobu, chyba że bundle deployment bind został użyty wcześniej. Zobacz Powiąż zasób pakietu.

Generowanie konfiguracji aplikacji

Aby wygenerować konfigurację istniejącej aplikacji w obszarze roboczym, uruchom polecenie bundle generate app, określając nazwę aplikacji w obszarze roboczym:

databricks bundle generate app --existing-app-name [app-name]

Nazwę aplikacji można uzyskać na karcie Aplikacje obliczeniowe> w interfejsie użytkownika obszaru roboczego.

Na przykład następujące polecenie generuje nowy hello_world.app.yml plik w resources folderze projektu pakietu i pobiera pliki kodu aplikacji, takie jak plik konfiguracji polecenia app.yaml aplikacji oraz app.py, główny plik. Domyślnie pliki kodu są kopiowane do folderu pakietu src .

databricks bundle generate app --existing-app-name "hello_world"
# This is the contents of the resulting /resources/hello-world.app.yml file.
resources:
  apps:
    hello_world:
      name: hello-world
      description: A basic starter application.
      source_code_path: ../src/app

Generowanie konfiguracji pulpitu nawigacyjnego

Aby wygenerować konfigurację istniejącego pulpitu nawigacyjnego w obszarze roboczym, uruchom polecenie bundle generate dashboard, określając identyfikator lub ścieżkę obszaru roboczego dla pulpitu nawigacyjnego:

databricks bundle generate dashboard --existing-id [dashboard-id]
databricks bundle generate dashboard --existing-path [dashboard-workspace-path]

Możesz skopiować ścieżkę obszaru roboczego dla pulpitu nawigacyjnego z poziomu interfejsu użytkownika obszaru roboczego.

Na przykład następujące polecenie generuje nowy baby_gender_by_county.dashboard.yml plik w resources folderze projektu pakietu zawierającym poniższy kod YAML i pobiera baby_gender_by_county.lvdash.json plik do src folderu projektu.

databricks bundle generate dashboard --existing-path "/Workspace/Users/someone@example.com/baby_gender_by_county.lvdash.json"
# This is the contents of the resulting baby_gender_by_county.dashboard.yml file.
resources:
  dashboards:
    baby_gender_by_county:
      display_name: 'Baby gender by county'
      warehouse_id: aae11o8e6fe9zz79
      file_path: ../src/baby_gender_by_county.lvdash.json

Wskazówka

Aby zaktualizować plik .lvdash.json po wdrożeniu pulpitu nawigacyjnego, użyj opcji --resource podczas uruchamiania bundle generate dashboard, aby wygenerować ten plik dla istniejącego zasobu pulpitu nawigacyjnego. Aby stale sondować i pobierać aktualizacje do pulpitu nawigacyjnego, użyj opcji --force oraz --watch.

Generowanie konfiguracji zadania lub przetwarzania

Aby wygenerować konfigurację zadania lub potoku, uruchom polecenie bundle generate job lub bundle generate pipeline.

databricks bundle generate [job|pipeline] --existing-[job|pipeline]-id [job-id|pipeline-id]

Uwaga

Obecnie to polecenie obsługuje tylko zadania notatnika.

Na przykład następujące polecenie generuje nowy hello_job.yml plik w resources folderze projektu pakietu zawierającym poniższy kod YAML i pobiera plik simple_notebook.py do src folderu projektu.

databricks bundle generate job --existing-job-id 6565621249
# This is the contents of the resulting hello_job.yml file.
resources:
  jobs:
    hello_job:
      name: 'Hello Job'
      tasks:
        - task_key: run_notebook
          email_notifications: {}
          notebook_task:
            notebook_path: ../src/simple_notebook.py
            source: WORKSPACE
          run_if: ALL_SUCCESS
      max_concurrent_runs: 1

Zwiąż zasób pakietu

Polecenie bundle deployment bind umożliwia powiązanie zasobów zdefiniowanych w pakiecie z istniejącymi zasobami w przestrzeni roboczej Azure Databricks, dzięki czemu są one zarządzane przez pakiety zasobów Databricks. Jeśli powiążesz zasób, to istniejący zasób usługi Azure Databricks w obszarze roboczym zostanie zaktualizowany na podstawie konfiguracji zdefiniowanej w pakiecie, do którego jest przypisany, po następnym bundle deploy.

databricks bundle deployment bind [resource-key] [resource-id]

Powiązanie nie tworzy ponownie danych. Na przykład, jeśli do potoku z danymi w katalogu zastosowano wiązanie, możesz go wdrożyć do tego potoku bez utraty istniejących danych. Ponadto nie trzeba ponownie komkompilować zmaterializowanego widoku, więc potoki nie muszą być uruchamiane ponownie.

Polecenie powiązania powinno być używane z flagą --target . Na przykład powiąż swoje wdrożenie produkcyjne z potokiem produkcyjnym za pomocą komendy databricks bundle deployment bind --target prod my_pipeline 7668611149d5709ac9-2906-1229-9956-586a9zed8929

Wskazówka

Warto potwierdzić zasób w obszarze roboczym przed uruchomieniem powiązania.

Bind jest wspierany dla następujących zasobów:

Następujące polecenie wiąże zasób hello_job ze swoim zdalnym odpowiednikiem w obszarze roboczym. Polecenie generuje różnicę i pozwala ci odmówić powiązania zasobów, ale jeśli zostanie to potwierdzone, wszelkie aktualizacje definicji zadania w pakiecie zostaną zastosowane do odpowiedniego zdalnego zadania, gdy pakiet zostanie ponownie wdrożony.

databricks bundle deployment bind hello_job 6565621249

Usuwanie powiązania zasobu pakietu

Jeśli chcesz usunąć łącze między zasobem w pakiecie a jego zdalnym odpowiednikiem w obszarze roboczym, użyj polecenia bundle deployment unbind:

databricks bundle deployment unbind [resource-key]

Na przykład, aby rozwiązać powiązanie zasobu hello_job:

databricks bundle deployment unbind hello_job

Generowanie podsumowania pakietu

Polecenie bundle summary zwraca podsumowanie tożsamości i zasobów pakietu, w tym linki szczegółowe dla zasobów, dzięki czemu można łatwo przejść do zasobu w obszarze roboczym usługi Databricks.

databricks bundle summary

Przykładowy wynik poniżej to podsumowanie pakietu o nazwie my_pipeline_bundle, który definiuje zadanie i potok.

Name: my_pipeline_bundle
Target: dev
Workspace:
  Host: https://myworkspace.cloud.databricks.com
  User: someone@example.com
  Path: /Users/someone@example.com/.bundle/my_pipeline/dev
Resources:
  Jobs:
    my_project_job:
      Name: [dev someone] my_project_job
      URL:  https://myworkspace.cloud.databricks.com/jobs/206000809187888?o=6051000018419999
  Pipelines:
    my_project_pipeline:
      Name: [dev someone] my_project_pipeline
      URL:  https://myworkspace.cloud.databricks.com/pipelines/7f559fd5-zztz-47fa-aa5c-c6bf034b4f58?o=6051000018419999

Wskazówka

Możesz również użyć bundle open, aby przejść do zasobu w obszarze roboczym usługi Databricks. Zobacz Otwieranie zasobu w obszarze roboczym.

Wdrażaj pakiet

Aby wdrożyć pakiet do zdalnego obszaru roboczego, uruchom polecenie bundle deploy z katalogu głównego projektu pakietu. Jeśli nie określono żadnych opcji poleceń, zostanie użyty domyślny element docelowy zadeklarowany w plikach konfiguracji pakietu.

databricks bundle deploy

Aby wdrożyć pakiet na określony cel, ustaw opcję -t (lub --target) zgodnie z nazwą określoną w plikach konfiguracyjnych pakietu. Na przykład dla obiektu docelowego zadeklarowanego z nazwą dev:

databricks bundle deploy -t dev

Pakiet można wdrożyć w wielu obszarach roboczych, takich jak obszary robocze programistyczne, przejściowe i produkcyjne. Zasadniczo właściwość root_path to jest to, co określa unikatową tożsamość pakietu, która domyślnie wynosi ~/.bundle/${bundle.name}/${bundle.target}. W związku z tym tożsamość pakietu składa się z tożsamości narzędzia wdrażania, nazwy pakietu i nazwy docelowej pakietu. Jeśli są one identyczne w różnych pakietach, wdrożenie tych pakietów będzie przeszkadzać sobie nawzajem.

Ponadto wdrożenie pakietu śledzi zasoby tworzone w docelowym obszarze roboczym według ich identyfikatorów, które jako stan są przechowywane w systemie plików tego obszaru roboczego. Nazwy zasobów nie są używane do korelowania między wdrożeniem pakietu a instancją zasobu, więc:

  • Jeśli zasób w konfiguracji pakietu nie istnieje w docelowym obszarze roboczym, zostanie utworzony.
  • Jeśli w docelowym obszarze roboczym istnieje zasób w konfiguracji pakietu, zostanie on zaktualizowany w obszarze roboczym.
  • Jeśli zasób zostanie usunięty z konfiguracji pakietu, zostanie on usunięty z docelowego obszaru roboczego, jeśli został wcześniej wdrożony.
  • Skojarzenie zasobu z pakietem można zapomnieć tylko wtedy, gdy zmienisz nazwę pakietu, element docelowy pakietu lub obszar roboczy. Możesz uruchomić polecenie bundle validate , aby wyświetlić podsumowanie zawierające te wartości.

Uruchom zadanie lub potok

Aby uruchomić określone zadanie lub potok, użyj polecenia bundle run. Trzeba określić klucz zasobu dla zadania lub potoku zdefiniowanego w plikach konfiguracyjnych pakietu. Domyślnie używane jest środowisko zadeklarowane w plikach konfiguracji pakietu. Aby na przykład uruchomić zadanie hello_job w środowisku domyślnym, uruchom następujące polecenie:

databricks bundle run hello_job

Aby uruchomić zadanie z kluczem hello_job w kontekście obiektu docelowego zadeklarowanego z nazwą dev:

databricks bundle run -t dev hello_job

Weryfikowanie potoku

Jeśli chcesz uruchomić weryfikację potoku, użyj opcji --validate-only, jak pokazano w poniższym przykładzie:

databricks bundle run --validate-only my_pipeline

Przekazywanie parametrów zadania

Aby przekazać parametry zadania, użyj opcji --params, a następnie podaj pary klucz-wartość, rozdzielone przecinkami, gdzie klucz jest nazwą parametru. Na przykład następujące polecenie ustawia parametr o nazwie message dla HelloWorld zadania hello_job:

databricks bundle run --params message=HelloWorld hello_job

Uwaga

Parametry można przekazać do zadań przy użyciu opcji zadań, ale opcja --params jest zalecaną metodą przekazywania parametrów zadania. Błąd występuje, jeśli parametry zadania są określone dla zadania, które nie ma zdefiniowanych parametrów zadania lub czy parametry zadania są określone dla zadania, które ma zdefiniowane parametry zadania.

Anulowanie zadania

Aby anulować i ponownie uruchomić istniejący przebieg zadania lub aktualizację potoku, użyj opcji --restart:

databricks bundle run --restart hello_job

Wykonywanie skryptów

Dołącz -- (podwójny łącznik) po bundle run, aby wykonać skrypty przy użyciu skonfigurowanych poświadczeń uwierzytelniania pakietu. Na przykład następujące polecenie zwraca bieżący katalog roboczy bieżącego użytkownika:

databricks bundle run -- python3 -c 'import os; print(os.getcwd())'

Informacje o uwierzytelnianiu pakietu są przekazywane do procesów podrzędnych przy użyciu zmiennych środowiskowych. Zobacz Ujednolicone uwierzytelnianie klienta usługi Databricks.

Otwieranie zasobu w obszarze roboczym

Aby nawigować do zasobu pakietu w przestrzeni roboczej, uruchom polecenie bundle open z katalogu głównego projektu pakietu, określając zasób, który chcesz otworzyć. Jeśli klucz zasobu nie zostanie określony, to polecenie wyświetli listę zasobów pakietu, z których chcesz wybrać.

databricks bundle open [resource-key]

Dla przykładu, poniższe polecenie uruchamia przeglądarkę i nawiguję do dashboardu baby_gender_by_county w pakiecie w przestrzeni roboczej Databricks skonfigurowanej dla tego pakietu.

databricks bundle open baby_gender_by_county

Zniszcz pakiet

Ostrzeżenie

Zniszczenie pakietu skutkuje trwałym usunięciem wcześniej wdrożonych zadań, potoków i artefaktów związanych z tym pakietem. Nie można tego cofnąć.

Aby usunąć zadania, potoki i artefakty, które zostały wcześniej wdrożone, uruchom polecenie bundle destroy. Następujące polecenie usuwa wszystkie wcześniej wdrożone zadania, rurociągi i artefakty zdefiniowane w plikach konfiguracji pakietu:

databricks bundle destroy

Uwaga

Tożsamość pakietu składa się z nazwy pakietu, celu pakietu i obszaru roboczego. Jeśli zmieniono dowolny z tych elementów, a następnie spróbujesz zniszczyć pakiet przed wdrożeniem, wystąpi błąd.

Domyślnie zostaniesz poproszony o potwierdzenie trwałego usunięcia wcześniej wdrożonych zadań, potoków i artefaktów. Aby pominąć te monity i wykonać automatyczne trwałe usunięcie, dodaj opcję --auto-approve do polecenia bundle destroy.