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


Преобразуйте конвейер Delta Live Tables в проект Databricks Asset Bundle

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

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

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

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

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

Требования

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

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

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

  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 и укажите идентификатор конвейера 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 или другой управляемой версией репозитории или файловой системе.
  • Протестируйте конвейер в нерабокой среде (например, среде разработки или тестирования) перед развертыванием в рабочей среде. Легко ввести неправильное настройку случайно.

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

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