Поделиться через


Перенос существующих ресурсов в пакет

При создании пакета может потребоваться включить ресурсы Databricks, которые уже существуют и полностью настроены в удаленной рабочей области. С помощью команды CLI bundle generate Databricks можно быстро создать конфигурацию в пакете для существующих приложений, панелей мониторинга, заданий и конвейеров. См. создание пакета databricks. Конфигурация, которую можно скопировать и вручную вставить в файлы конфигурации ресурсов пакета, доступна в пользовательском интерфейсе Databricks для некоторых ресурсов, таких как задания и конвейеры.

После создания конфигурации для ресурса в пакете и развертывания пакета используйте bundle deployment bind команду для привязки ресурса в пакете к соответствующему ресурсу в рабочей области. См. привязку развертывания пакета databricks.

На этой странице приведены простые примеры, использующие интерфейс командной строки Databricks или пользовательский интерфейс для создания или извлечения конфигурации ресурсов пакета. Дополнительные сведения об определениях ресурсов в пакетах см. в разделе "Декларативная автоматизация пакетов".

Подсказка

Существующие ресурсы можно добавить в пакеты в рабочей области с помощью пользовательского интерфейса Databricks. См. статью "Добавление существующего ресурса в пакет".

Создание конфигурации для существующего задания или конвейера с помощью интерфейса командной строки Databricks

Чтобы программно создать конфигурацию пакета для существующего задания или конвейера:

  1. Получите идентификатор существующего задания или конвейера из боковой панели сведений о задании или конвейере в пользовательском интерфейсе. В качестве альтернативы используйте интерфейс командной строки databricks jobs list Databricks или databricks pipelines list-pipelines команду.

  2. bundle generate job bundle generate pipeline Выполните команду CLI Databricks, задав задание или идентификатор конвейера:

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

    Эта команда создает файл конфигурации пакета для ресурса в папке пакета resources и загружает все указанные артефакты в папку src .

Вы также можете создать конфигурацию для существующей панели мониторинга. См. панель мониторинга создания пакета databricks.

Создание конфигурации для существующего конвейера Spark

Для программного создания конфигурации пакета для проекта Spark Declarative Pipelines (SDP) (он содержит spark-pipeline.yml файл):

  1. Скопируйте или переместите весь проект конвейера Spark в папку src пакета.

  2. Выполните следующую команду:

    databricks pipelines generate --existing-pipeline-dir src/my_pipeline
    

Дополнительные сведения см. в статье о создании конвейеров Databricks.

Получение существующего определения задания с помощью пользовательского интерфейса

Чтобы получить представление YAML существующего определения задания из пользовательского интерфейса рабочей области Azure Databricks:

  1. На боковой панели рабочей области Azure Databricks щелкните "Задания и конвейеры".

  2. При необходимости выберите фильтры "Задания " и " Принадлежащие мне ".

  3. Щелкните по ссылке с названием вашей работы.

  4. Рядом с кнопкой "Запустить сейчас " нажмите кнопку "Кебаб", а затем нажмите кнопку "Изменить как YAML".

  5. Скопируйте YAML и добавьте его в файл databricks.yml вашего пакета, или создайте файл конфигурации для задания в каталоге resources проекта вашего пакета и сделайте на него ссылку из файла databricks.yml. См. ресурсы.

  6. Скачайте и добавьте все файлы и записные книжки Python, на которые ссылается существующее задание, в источник проекта пакета. Артефакты пакета обычно располагаются в каталоге src пакета.

    Подсказка

    Вы можете экспортировать существующую записную книжку из рабочей области Azure Databricks в .ipynb формат, выбрав в пользовательском интерфейсе записной книжки Azure Databricks из меню Файл > Экспорт > IPython Notebook.

    После добавления записных книжек, файлов Python и других артефактов в пакет измените ссылки на эти файлы в определении задания на их локальное расположение. Например, если в пакете у вас есть файл конфигурации hello_job.job.yml в папке resources, и вы скачали записную книжку с именем hello.ipynb в папку src вашего пакета, то содержимое файла hello_job.job.yml будет следующим:

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

Дополнительные сведения о просмотре заданий в виде кода в пользовательском интерфейсе см. в разделе "Просмотр заданий в виде кода".

Получение существующего определения конвейера с помощью пользовательского интерфейса

Чтобы получить представление YAML существующего определения конвейера из пользовательского интерфейса рабочей области Azure Databricks:

  1. На боковой панели рабочей области Azure Databricks щелкните "Задания и конвейеры".

  2. При желании можно выбрать фильтр Пайплайнов.

  3. Щелкните название вашего конвейера.

  4. Рядом с кнопкой "Разработка " щелкните значок меню Затем нажмите кнопку "Вид параметров YAML".

  5. Скопируйте YAML определения конвейера в диалоговом окне Параметры конвейера в локальный буфер обмена, щелкнув на значок копирования.

  6. Добавьте скопированный YAML в файл databricks.yml вашего пакета или создайте файл конфигурации для конвейера в папке resources вашего проекта пакета и сослитесь на него из файла databricks.yml. См. ресурсы.

  7. Скачайте и добавьте все файлы и записные книжки Python, на которые ссылается источник проекта пакета. Артефакты пакета обычно располагаются в каталоге src пакета.

    Подсказка

    Вы можете экспортировать существующую записную книжку из рабочей области Azure Databricks в .ipynb формат, выбрав в пользовательском интерфейсе записной книжки Azure Databricks из меню Файл > Экспорт > IPython Notebook.

    После добавления записных книжек, файлов Python и других артефактов в пакет убедитесь, что определение конвейера правильно ссылается на них. Например, для записной книжки с именем hello.ipynb , которая находится в src/ каталоге пакета:

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

Привязка ресурса к удаленному аналогу

Как правило, после добавления ресурса в пакет необходимо убедиться, что ресурс в пакете и существующий ресурс в рабочей области остаются синхронизированными. Эта bundle deployment bind команда позволяет связать их. Если вы привязываете ресурс, привязанный ресурс Azure Databricks в рабочей области обновляется на основе конфигурации, определенной в пакете при следующем bundle deploy.

Дополнительные сведения о bundle deployment bind и подробности о ресурсной поддержке см. в разделе связывание развертывания пакета databricks.

Следующая команда привязывает ресурс hello_job к удаленному коллеге в рабочей области. Он запрашивает подтверждение, чтобы убедиться, что обновления конфигурации задания в пакете должны применяться к соответствующему удаленному заданию при следующем развертывании пакета.

databricks bundle deployment bind hello_job 6565621249

Чтобы удалить связь между ресурсом пакета и соответствующим объектом в рабочей области, используйте bundle deployment unbind. См. раздел об отмене привязки развертывания пакета databricks.

databricks bundle deployment unbind hello_job

Перенос ресурса, существующего в двух рабочих областях

В некоторых настройках один и тот же ресурс может существовать в нескольких рабочих областях. Например, то же задание может находиться в рабочей области разработки и эксплуатации. Если существующее задание добавляется в пакет, а затем пакет развертывается в одной из этих рабочих областей, создаются повторяющиеся задания. Чтобы предотвратить это, используйте databricks bundle generate и databricks bundle deployment bind вместе:

  1. Определите цели разработки и продакшена в вашем пакете databricks.yml.

  2. Создайте конфигурацию пакета для ресурса (в этом примере задание) в целевом объекте разработки:

    databricks bundle generate job --existing-job-id <dev_job_id> –-target dev
    
  3. Конфигурация ресурса в prod, скорее всего, будет отличаться от конфигурации ресурса в dev, поэтому теперь, когда вы создали конфигурацию для ресурса, определите рабочие параметры ресурса (в целевом объекте prod) в пакете.

    targets:
      dev:
        default: true
        #...
      prod:
        #...
        resources:
          jobs:
            my_job:
              # Job prod settings
    
  4. Привязать ресурс в пакете к существующему заданию в целях разработки и производства.

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

Теперь пакет можно развернуть в двух средах:

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