Udostępnij przez


Migrowanie istniejących zasobów do pakietu

Podczas tworzenia pakietu warto uwzględnić zasoby usługi Databricks, które już istnieją i zostały w pełni skonfigurowane w zdalnym obszarze roboczym. Za pomocą polecenia CLI bundle generate Databricks możesz szybko wygenerować automatycznie konfigurację w Twoim pakiecie dla istniejących aplikacji, pulpitów nawigacyjnych, zadań oraz potoków. Zobacz generowanie pakietu usługi databricks. Konfiguracja, którą można skopiować i ręcznie wkleić do plików konfiguracji zasobów pakietu, jest dostępna w interfejsie użytkownika Databricks dla pewnych zasobów, takich jak zadania i przepływy.

Po wygenerowaniu konfiguracji zasobu w pakiecie i wdrożeniu pakietu użyj bundle deployment bind polecenia , aby powiązać zasób w pakiecie z odpowiednim zasobem w obszarze roboczym. Zobacz powiązanie wdrożenia pakietu usługi databricks.

Ta strona zawiera proste przykłady użycia CLI Databricks lub interfejsu użytkownika (UI) do generowania lub pobierania konfiguracji zasobów pakietowych.

Aby uzyskać szczegółowe informacje o definicjach zasobów w pakietach, zobacz Zasoby pakietu zasobów usługi Databricks.

Generowanie istniejącej konfiguracji zadania lub potoku za pomocą narzędzia wiersza poleceń Databricks

Aby programowo wygenerować konfigurację pakietu dla istniejącego zadania lub potoku:

  1. Pobierz identyfikator istniejącego zadania lub potoku z panelu bocznego Szczegóły zadania lub Szczegóły potoku w interfejsie użytkownika dla zadania lub potoku. Alternatywnie, użyj Databricks CLI databricks jobs list lub polecenia databricks pipelines list-pipelines.

  2. Uruchom polecenie bundle generate jobbundle generate pipelineDatabricks CLI, ustawiając identyfikator zadania lub potoku:

    databricks bundle generate job --existing-job-id 6565621249
    
    databricks bundle generate pipeline --existing-pipeline-id 6565621249
    

    To polecenie tworzy plik konfiguracji pakietu dla zasobu w folderze pakietu resources i pobiera wszystkie odwołane artefakty do folderu src.

Możesz również wygenerować konfigurację dla istniejącego pulpitu nawigacyjnego. Zobacz databricks bundle generate dashboard (Generowanie pulpitu nawigacyjnego w pakiecie databricks).

Pobieranie istniejącej definicji zadania przy użyciu interfejsu użytkownika

Aby pobrać reprezentację YAML istniejącej definicji zadania z interfejsu użytkownika obszaru roboczego usługi Azure Databricks:

  1. Na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Zadania i potoki.

  2. Opcjonalnie wybierz filtry Zadania i Należące do mnie .

  3. Kliknij link Nazwa swojego zadania.

  4. Obok przycisku Uruchom teraz kliknij kebab, a następnie kliknij pozycję Edytuj jako YAML.

  5. Skopiuj plik YAML i dodaj go do pliku pakietu databricks.yml lub utwórz plik konfiguracji dla zadania w resources katalogu projektu pakietu i odwołaj się do niego z pliku databricks.yml . Zobacz zasoby.

  6. Pobierz i dodaj wszystkie pliki i notesy języka Python, do których odwołuje się istniejące zadanie, do źródła projektu pakietu. Artefakty pakietu zazwyczaj znajdują się w katalogu src wewnątrz pakietu.

    Wskazówka

    Istniejący notatnik można wyeksportować z obszaru roboczego usługi Azure Databricks do .ipynb formatu, wybierając z poziomu interfejsu użytkownika notatnika usługi Azure Databricks opcję Plik > Eksportuj > IPython Notebook.

    Po dodaniu notesów, plików języka Python i innych artefaktów do pakietu zmień odwołania do tych plików w definicji zadania na lokalizację lokalną. Na przykład, jeśli miałeś plik konfiguracji hello_job.job.yml w folderze resources swojego pakietu i pobrałeś notes o nazwie hello.ipynb do folderu src swojego pakietu, zawartość pliku hello_job.job.yml byłaby następująca:

    resources:
      jobs:
        hello_job:
          name: hello_job
          tasks:
            - task_key: hello_task
              notebook_task:
                notebook_path: ../src/hello.ipynb
    

Aby uzyskać więcej informacji na temat wyświetlania zadań jako kodu w interfejsie użytkownika, zobacz Wyświetlanie zadań jako kodu.

Pobieranie istniejącej definicji potoku przy użyciu interfejsu użytkownika

Aby pobrać reprezentację YAML istniejącej definicji potoku z interfejsu użytkownika obszaru roboczego usługi Azure Databricks:

  1. Na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Zadania i potoki.

  2. Opcjonalnie wybierz filtr Potoki .

  3. Kliknij nazwę swojego potoku.

  4. Obok przycisku Programowanie kliknij ikonę menu Kebab, a następnie kliknij pozycję Wyświetl ustawienia YAML.

  5. Skopiuj plik YAML definicji potoku w oknie dialogowym Ustawienia potoku YAML do lokalnego schowka, klikając ikonę kopiowania.

  6. Dodaj skopiowany YAML do pliku databricks.yml w pakiecie, lub utwórz plik konfiguracji dla potoku w folderze resources projektu pakietu i odwołaj się do niego z pliku databricks.yml. Zobacz zasoby.

  7. Pobierz i dodaj wszystkie pliki i notesy języka Python, do których odwołuje się źródło projektu pakietu. Artefakty pakietu zazwyczaj znajdują się w katalogu src wewnątrz pakietu.

    Wskazówka

    Istniejący notatnik można wyeksportować z obszaru roboczego usługi Azure Databricks do .ipynb formatu, wybierając z poziomu interfejsu użytkownika notatnika usługi Azure Databricks opcję Plik > Eksportuj > IPython Notebook.

    Po dodaniu zeszytów, plików Python i innych artefaktów do pakietu upewnij się, że definicja przepływu pracy prawidłowo się do nich odwołuje. Na przykład w przypadku notesu o nazwie hello.ipynb, który znajduje się w katalogu src/ pakietu:

    resources:
      pipelines:
        hello_pipeline:
          name: hello_pipeline
          libraries:
            - notebook:
                path: ../src/hello.ipynb
    

Wiązanie zasobu ze zdalnym odpowiednikiem

Zazwyczaj po dodaniu zasobu do pakietu należy upewnić się, że zasób w pakiecie i istniejący zasób w obszarze roboczym pozostają zsynchronizowane. Polecenie bundle deployment bind umożliwia ich łączenie. Jeśli powiążesz zasób, połączony zasób usługi Azure Databricks w obszarze roboczym zostanie zaktualizowany na podstawie konfiguracji zdefiniowanej w pakiecie przy następnym bundle deploy.

Aby uzyskać więcej informacji o bundle deployment bind i szczegółowe dane dotyczące obsługi zasobów, zobacz powiązanie wdrożenia pakietu Databricks.

Następujące polecenie wiąże zasób hello_job ze swoim zdalnym odpowiednikiem w obszarze roboczym. Zostanie wyświetlony monit z potwierdzeniem w celu upewnienia się, że aktualizacje konfiguracji zadania w zestawie zostaną zastosowane do odpowiedniego zadania zdalnego przy następnym wdrożeniu zestawu.

databricks bundle deployment bind hello_job 6565621249

Aby usunąć łącze między zasobem pakietu a jego odpowiednikiem w obszarze roboczym, użyj polecenia bundle deployment unbind. Zobacz databricks bundle deployment unbind.

databricks bundle deployment unbind hello_job

Migrowanie zasobu, który istnieje w dwóch obszarach roboczych

W niektórych konfiguracjach ten sam zasób może istnieć w więcej niż jednym obszarze roboczym. Na przykład to samo zadanie może znajdować się w obszarze projektowym i produkcyjnym. Jeśli istniejące zadanie zostanie dodane do pakietu, a następnie pakiet zostanie wdrożony w jednym z tych obszarów roboczych, zostaną utworzone zduplikowane zadania. Aby temu zapobiec, użyj polecenia databricks bundle generate i databricks bundle deployment bind razem:

  1. Zdefiniuj obiekty docelowe deweloperskie i prod w pakiecie databricks.yml.

  2. Wygeneruj konfigurację pakietu dla zasobu (w tym przykładzie zadanie) w obiekcie docelowym dewelopera:

    databricks bundle generate job --existing-job-id <dev_job_id> –-target dev
    
  3. Konfiguracja zasobu w wersji prod prawdopodobnie będzie inna niż konfiguracja zasobu w środowisku deweloperskim, więc teraz, gdy wygenerowano konfigurację zasobu, zdefiniuj ustawienia specyficzne dla środowiska produkcyjnego dla zasobu (w obiekcie docelowym prod) w pakiecie.

    targets:
      dev:
        default: true
        #...
      prod:
        #...
        resources:
          jobs:
            my_job:
              # Job prod settings
    
  4. Powiąż zasób w pakiecie z istniejącym zadaniem w miejscach docelowych deweloperskich i prod:

    databricks bundle deployment bind my_job <dev_job_id> --target dev
    
    databricks bundle deployment bind my_job <prod_job_id> --target prod
    

Pakiet można teraz wdrożyć w dwóch środowiskach:

databricks bundle deploy --target dev
databricks bundle deploy --target prod