Преобразуйте конвейер Delta Live Tables в проект Databricks Asset Bundle
В этой статье показано, как преобразовать существующий конвейер Delta Live Tables (DLT) в проект с пакетами. Пакеты позволяют определять конфигурацию обработки данных 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.)
Перейдите в корень клонированного репозитория 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 и укажите идентификатор конвейера 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 bundle deploy
.
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?
- Разработка конвейеров Delta Live Tables с помощью пакетов ресурсов Databricks. В этом разделе описывается создание пакета для нового конвейера, а не существующего, с помощью управляемой источником записной книжки для обработки, которую вы предоставляете.