Преобразование конвейера DLT в проект пакета ресурсов Databricks
В этой статье показано, как преобразовать существующий конвейер DLT (DLT) в проект Databricks Asset Bundles. Пакеты позволяют определять конфигурацию обработки данных Azure Databricks и управлять ими в одном управляемом источником файле YAML, который обеспечивает более простое обслуживание и позволяет автоматизированное развертывание в целевых средах.
Обзор процесса преобразования
схема
Ниже приведены действия по преобразованию существующего конвейера в пакет:
- Убедитесь, что у вас есть доступ к ранее настроенном конвейеру, который требуется преобразовать в пакет.
- Создайте или подготовьте папку (предпочтительно в управляемой источником иерархии) для хранения пакета.
- Создайте конфигурацию для пакета из существующего конвейера с помощью Интерфейса командной строки Azure Databricks.
- Проверьте созданную конфигурацию пакета, чтобы убедиться, что она завершена.
- Свяжите пакет с исходным конвейером.
- Разверните конвейер в целевой рабочей области с помощью конфигурации пакета.
Требования
Перед началом работы необходимо:
- Интерфейс командной строки Databricks, установленный на локальном компьютере разработки. Интерфейс командной строки Databricks версии 0.218.0 или более поздней требуется для использования пакетов ресурсов Databricks.
- Идентификатор существующего конвейера DLT, который будет управляться с помощью пакета. Сведения о получении этого идентификатора см. в статье Получение существующего определения конвейера с помощью пользовательского интерфейса.
- Авторизация для рабочей области Azure Databricks, в которой выполняется существующий конвейер DLT. Сведения о настройке проверки подлинности и авторизации для вызовов Azure Databricks CLI см. в статье Авторизация доступа к ресурсам Azure Databricks.
Шаг 1. Настройка папки для проекта пакета
У вас должен быть доступ к репозиторию Git, который настроен в Azure Databricks в качестве папки Git. Вы создадите проект пакета в этом репозитории, который будет использовать контроль исходного кода и станет доступным для других участников через Git в соответствующей рабочей области Azure Databricks. (Дополнительные сведения о папках Git см. в для интеграции Git с папками Databricks.)
Перейдите в корень клонированного репозитория Git на локальном компьютере.
В соответствующем месте в иерархии папок создайте папку специально для проекта пакета. Например:
mkdir - p ~/source/my-pipelines/ingestion/events/my-bundle
Измените текущий рабочий каталог на эту новую папку. Например:
cd ~/source/my-pipelines/ingestion/events/my-bundle
Инициализировать новый пакет, выполнив
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 или другой управляемой версией репозитории или файловой системе.
- Протестируйте конвейер в нерабокой среде (например, среде разработки или тестирования) перед развертыванием в рабочей среде. Легко ввести неправильное настройку случайно.
Дополнительные ресурсы
Дополнительные сведения об использовании пакетов для определения обработки данных и управления ими см. в следующей статье:
- Что такое пакеты ресурсов Databricks?
- Разработка конвейеров DLT с помощью пакетов ресурсов Databricks. В этом разделе описывается создание пакета для нового конвейера, а не существующего, с помощью управляемой источником записной книжки для обработки, которую вы предоставляете.