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


Преобразование конвейера DLT в проект пакета ресурсов Databricks

В этой статье показано, как преобразовать существующий конвейер DLT (DLT) в проект Databricks Asset Bundles. Пакеты позволяют определять конфигурацию обработки данных Azure Databricks и управлять ими в одном управляемом источником файле YAML, который обеспечивает более простое обслуживание и позволяет автоматизированное развертывание в целевых средах.

Обзор процесса преобразования

схема , показывающая конкретные шаги при преобразовании существующего конвейера в пакет

Ниже приведены действия по преобразованию существующего конвейера в пакет:

  1. Убедитесь, что у вас есть доступ к ранее настроенном конвейеру, который требуется преобразовать в пакет.
  2. Создайте или подготовьте папку (предпочтительно в управляемой источником иерархии) для хранения пакета.
  3. Создайте конфигурацию для пакета из существующего конвейера с помощью Интерфейса командной строки Azure Databricks.
  4. Проверьте созданную конфигурацию пакета, чтобы убедиться, что она завершена.
  5. Свяжите пакет с исходным конвейером.
  6. Разверните конвейер в целевой рабочей области с помощью конфигурации пакета.

Требования

Перед началом работы необходимо:

Шаг 1. Настройка папки для проекта пакета

У вас должен быть доступ к репозиторию Git, который настроен в Azure Databricks в качестве папки Git. Вы создадите проект пакета в этом репозитории, который будет использовать контроль исходного кода и станет доступным для других участников через Git в соответствующей рабочей области Azure Databricks. (Дополнительные сведения о папках Git см. в для интеграции Git с папками Databricks.)

  1. Перейдите в корень клонированного репозитория Git на локальном компьютере.

  2. В соответствующем месте в иерархии папок создайте папку специально для проекта пакета. Например:

    mkdir - p ~/source/my-pipelines/ingestion/events/my-bundle
    
  3. Измените текущий рабочий каталог на эту новую папку. Например:

    cd ~/source/my-pipelines/ingestion/events/my-bundle
    
  4. Инициализировать новый пакет, выполнив databricks bundle init и ответив на запросы. После завершения проекта у вас будет файл конфигурации проекта с именем databricks.yml в новой домашней папке проекта. Этот файл необходим для развертывания конвейера из командной строки. Дополнительные сведения об этом файле конфигурации см. в конфигурации пакета активов Databricks.

Шаг 2. Создание конфигурации конвейера

В этом новом каталоге клонированного дерева папок репозитория Git запустите команду Azure Databricks CLI bundle generate, указав идентификатор вашего конвейера DLT как <pipeline-id>.

databricks bundle generate pipeline --existing-pipeline-id <pipeline-id> --profile <profile-name>

При выполнении команды generate он создает файл конфигурации пакета для конвейера в папке resources пакета и скачивает все указанные артефакты в папку src. --profile (или флаг -p) является необязательным, но если у вас есть определенный профиль конфигурации Databricks (определенный в файле .databrickscfg, созданном при установке Интерфейса командной строки Azure Databricks), который вы предпочли бы использовать вместо профиля по умолчанию, укажите его в этой команде. Чтобы получить информацию о профилях конфигурации Databricks, см. профили конфигурации Azure Databricks.

Шаг 3. Просмотр файлов проекта пакета

Когда команда bundle generate завершится, она создаст две новые папки:

  • resources — это подкаталог проекта, содержащий файлы конфигурации проекта.
  • src — это папка проекта, в которой хранятся исходные файлы, такие как запросы и записные книжки.

Команда также создает некоторые дополнительные файлы:

  • *.pipeline.yml в подкаталоге resources. Этот файл содержит определенную конфигурацию и параметры для конвейера DLT.
  • Исходные файлы, такие как SQL-запросы, находятся в подкаталоге src и скопированы из вашего существующего конвейера DLT.
├── databricks.yml                            # Project configuration file created with the bundle init command
├── resources/
│   └── {your-pipeline-name.pipeline}.yml     # Pipeline configuration
└── src/
    └── {SQl-query-retrieved-from-your-existing-pipeline}.sql # Your pipeline's declarative query

Шаг 4. Привязка конвейера пакета к существующему конвейеру

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

databricks bundle deployment bind <pipeline-name> <pipeline-ID> --profile <profile-name>

<pipeline-name> — это имя конвейера. Это имя должно совпадать со значением строки с префиксом имени файла для конфигурации конвейера в новом каталоге resources. Например, если у вас есть файл конфигурации конвейера с именем ingestion_data_pipeline.pipeline.yml в папке resources, необходимо указать ingestion_data_pipeline в качестве имени конвейера.

<pipeline-ID> — это идентификатор конвейера. Он совпадает с тем, который вы скопировали в рамках требований для этих инструкций.

Шаг 5. Развертывание конвейера с помощью нового пакета

Теперь разверните пакет конвейера в целевой рабочей области с помощью azure Databricks CLI команды развертывания пакета:

databricks bundle deploy --target <target-name> --profile <profile-name>

Флаг --target является обязательным и должен быть задан строкой, которая соответствует настроенной целевой рабочей области, например development или production.

Если эта команда выполнена успешно, теперь у вас есть конфигурация конвейера DLT во внешнем проекте, который можно загрузить в другие рабочие области и запустить, и легко предоставить доступ другим пользователям Azure Databricks в вашей учетной записи.

Устранение неполадок

проблема Решение
Ошибка "databricks.yml не найдена" при выполнении bundle generate В настоящее время команда bundle generate не создает файл конфигурации пакета (databricks.yml) автоматически. Необходимо создать файл с помощью databricks bundle init или вручную.
Существующие параметры конвейера не соответствуют значениям в конфигурации YAML созданного конвейера. Идентификатор конвейера не отображается в файле YML конфигурации пакета. Если вы заметите, что какие-либо другие настройки отсутствуют, вы можете применить их вручную.

Советы для успеха

  • Всегда используйте управление версиями. Если вы не используете папки Databricks Git, сохраните подкаталоги проекта и файлы в репозитории Git или другой управляемой версией репозитории или файловой системе.
  • Протестируйте конвейер в нерабокой среде (например, среде разработки или тестирования) перед развертыванием в рабочей среде. Легко ввести неправильное настройку случайно.

Дополнительные ресурсы

Дополнительные сведения об использовании пакетов для определения обработки данных и управления ими см. в следующей статье: