Разработка конвейеров DLT с помощью пакетов ресурсов Databricks
Пакеты активов Databricks, также известные как пакеты, позволяют программно проверять, развертывать и запускать ресурсы Azure Databricks, такие как DLT-конвейеры. См. раздел "Что такое пакеты ресурсов Databricks?".
В этой статье описывается, как создать пакет для программного управления конвейером. См. Что такое DLT?. Пакет создается с использованием шаблона пакета ресурсов Databricks по умолчанию для Python, который содержит записную книжку вместе с определением конвейера и задания для её выполнения. Затем вы проверяете, развертываете и запускаете развернутый конвейер в рабочей области Azure Databricks.
Совет
Если у вас есть существующие конвейеры, созданные с помощью пользовательского интерфейса Azure Databricks или API, которые необходимо переместить в пакеты, необходимо определить их в файлах конфигурации пакета. Databricks рекомендует сначала создать пакет, выполнив приведенные ниже действия, а затем проверить, работает ли пакет. Затем в пакет можно добавить дополнительные определения, записные книжки и другие источники. См. статью "Добавление существующего определения конвейера в пакет".
Требования
- Databricks CLI версии 0.218.0 или более поздней. Чтобы проверить установленную версию интерфейса командной строки Databricks, выполните команду
databricks -v
. Сведения об установке интерфейса командной строки Databricks см. в разделе Установка или обновление интерфейса командной строки Databricks. - Удаленная рабочая область должна иметь включенные файлы рабочей области. См. раздел " Что такое файлы рабочей области?".
(Необязательно) Установка модуля Python для поддержки разработки локальных конвейеров
Databricks предоставляет модуль Python для поддержки локальной разработки кода конвейера DLT, предоставляя проверку синтаксиса, автозавершение и проверку типов данных при написании кода в интегрированной среде разработки.
Модуль Python для локальной разработки доступен в PyPi. Сведения об установке модуля см. в разделе заглушки Python дляDLT.
Создание пакета с помощью шаблона проекта
Создайте пакет с помощью шаблона пакета azure Databricks по умолчанию для Python. Этот шаблон состоит из записной книжки, которая определяет конвейер DLT, который фильтрует данные из исходного набора данных. Дополнительные сведения о шаблонах пакетов см. в разделе "Шаблоны проектов пакета ресурсов Databricks".
Если вы хотите создать пакет с нуля, см . статью "Создание пакета вручную".
Шаг 1. Настройка проверки подлинности
На этом шаге вы настроили проверку подлинности между интерфейсом командной строки Databricks на компьютере разработки и рабочей областью Azure Databricks. В этой статье предполагается, что вы хотите использовать проверку подлинности OAuth от пользователя к машине (U2M) и соответствующий профиль конфигурации Azure Databricks с именем DEFAULT
для проверки подлинности.
Примечание.
Проверка подлинности U2M подходит для выполнения этих действий в режиме реального времени. Для полностью автоматизированных рабочих процессов Databricks рекомендует использовать аутентификацию OAuth «машина-машина» (M2M). Инструкции по настройке проверки подлинности M2M см. в разделе "Проверка подлинности".
Используйте CLI Databricks для локального запуска управления токенами OAuth, выполнив следующую команду для каждого целевого рабочего пространства.
Во следующей команде замените
<workspace-url>
на URL-адрес вашей рабочей области Azure Databricks, напримерhttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Интерфейс командной строки Databricks предлагает сохранить сведения, введенные в качестве профиля конфигурации Azure Databricks. Нажмите,
Enter
чтобы принять предлагаемое имя профиля, или введите имя нового или существующего профиля. Любой существующий профиль с тем же именем перезаписывается с введенными сведениями. Профили можно использовать для быстрого переключения контекста проверки подлинности в нескольких рабочих областях.Чтобы получить список существующих профилей в отдельном терминале или командной строке, используйте интерфейс командной строки Databricks для выполнения команды
databricks auth profiles
. Чтобы просмотреть существующие параметры конкретного профиля, выполните командуdatabricks auth env --profile <profile-name>
.В веб-браузере выполните инструкции на экране, чтобы войти в рабочую область Azure Databricks.
Чтобы просмотреть текущее значение маркера OAuth профиля и метку времени окончания срока действия маркера, выполните одну из следующих команд:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Если у вас есть несколько профилей с одинаковым значением
--host
, может потребоваться указать параметры--host
и-p
вместе, чтобы помочь Databricks CLI найти правильные данные о соответствии маркера OAuth.
Шаг 2. Создание пакета
Инициализация пакета с помощью шаблона проекта пакета Python по умолчанию.
Используйте терминал или командную строку, чтобы переключиться в каталог на локальном компьютере разработки, который будет содержать созданный пакет шаблона.
Используйте CLI Databricks, чтобы выполнить команду
bundle init
.databricks bundle init
Для
Template to use
оставьте значение по умолчаниюdefault-python
, нажав кнопкуEnter
.Оставьте значение по умолчанию параметра
my_project
, либо введите другое значение, а затем нажмитеEnter
. Это определяет имя корневого каталога для этого пакета. Этот корневой каталог создается в текущем рабочем каталоге.Для
Include a stub (sample) notebook
выберитеno
и нажмите клавишуEnter
. При этом интерфейс командной строки Databricks не добавляет пример записной книжки на данный момент, так как пример записной книжки, связанной с этим параметром, не имеет в нем кода DLT.Для
Include a stub (sample) DLT pipeline
оставьте значениеyes
по умолчанию, нажавEnter
. Это указывает интерфейсу командной строки Databricks добавить пример записной книжки с кодом DLT.Для
Include a stub (sample) Python package
выберитеno
и нажмите клавишуEnter
. Это команда для интерфейса командной строки Databricks, чтобы не добавлять образцы файлов пакета Python wheel или связанные инструкции по сборке в ваш пакет.
Шаг 3. Изучение пакета
Чтобы просмотреть файлы, созданные шаблоном, переключитесь в корневой каталог созданного пакета. К файлам, интересующим особый интерес, относятся следующие:
-
databricks.yml
: этот файл указывает программное имя пакета, содержит ссылку на определение конвейера и задает параметры целевой рабочей области. -
resources/<project-name>_job.yml
иresources/<project-name>_pipeline.yml
: эти файлы определяют задание, содержащее задачу обновления конвейера, и параметры конвейера. -
src/dlt_pipeline.ipynb
: этот файл представляет собой записную книжку, которая при запуске выполняет конвейер.
Для настройки конвейеров сопоставления в объявлении конвейера соответствуют полезной нагрузке запроса операции создания конвейера, как определено в POST /api/2.0/pipelines в справочнике REST API, выраженной в формате YAML.
Шаг 4. Проверка файла конфигурации пакета проекта
На этом шаге проверяется, действительна ли конфигурация пакета.
В корневом каталоге используйте интерфейс командной строки Databricks для выполнения
bundle validate
команды следующим образом:databricks bundle validate
Если возвращается сводка конфигурации пакета, проверка выполнена успешно. Если возвращаются какие-либо ошибки, исправьте ошибки и повторите этот шаг.
При внесении изменений в пакет после этого шага необходимо повторить этот шаг, чтобы проверить, действительна ли конфигурация пакета.
Шаг 5. Развертывание локального проекта в удаленной рабочей области
На этом шаге вы развернете локальную записную книжку в удаленной рабочей области Azure Databricks и создадите конвейер DLT в рабочей области.
В корневом каталоге пакета используйте CLI Databricks, чтобы выполнить команду
bundle deploy
следующим образом:databricks bundle deploy -t dev
Проверьте, развернута ли локальная записная книжка: на боковой панели рабочей области Azure Databricks щелкните "Рабочая область".
Щелкните папку Users >
<your-username>
> .bundle ><project-name>
>dev > files > src. Записная книжка должна находиться в этой папке.Проверьте, был ли создан конвейер: на боковой панели рабочей области Azure Databricks нажмите DLT.
На вкладке DLT щелкните [dev
<your-username>
]<project-name>
_pipeline.
При внесении изменений в пакет после этого шага необходимо повторить шаги 4–5, чтобы проверить, действительна ли конфигурация пакета, а затем повторно разверните проект.
Шаг 6. Запуск развернутого проекта
На этом шаге вы активируете запуск конвейера DLT в рабочей области из командной строки.
В корневом каталоге используйте интерфейс командной строки Databricks для выполнения
bundle run
команды, как показано ниже, заменив<project-name>
имя проекта на шаге 2.databricks bundle run -t dev <project-name>_pipeline
Скопируйте значение, которое отображается в терминале и вставьте это значение
Update URL
в веб-браузер, чтобы открыть рабочую область Azure Databricks.В рабочей области Azure Databricks после успешного завершения конвейера щелкните представление taxi_raw и материализованное представление filtered_taxis, чтобы просмотреть сведения.
При внесении изменений в пакет после этого шага необходимо повторить шаги 4-6, чтобы проверить, действительна ли конфигурация пакета, повторно разверните проект и запустите повторно развернутый проект.
Шаг 7. Очистка
На этом шаге вы удалите развернутую тетрадь и конвейер из рабочей области.
В корневом каталоге используйте интерфейс командной строки Databricks для выполнения
bundle destroy
команды следующим образом:databricks bundle destroy -t dev
Подтвердите запрос на удаление конвейера: при появлении запроса на окончательное уничтожение ресурсов, введите
y
и нажмите клавишуEnter
.Подтвердите запрос на удаление записной книжки: при появлении запроса на окончательное уничтожение ранее развернутой папки и всех его файлов, введите
y
и нажмите клавишуEnter
.Если вы также хотите удалить пакет с компьютера разработки, теперь можно удалить локальный каталог из шага 2.
Добавление существующего определения конвейера в пакет
Для определения нового конвейера в файле конфигурации пакета можно использовать существующее определение конвейера DLT. Чтобы получить существующее определение конвейера, его можно получить вручную с помощью пользовательского интерфейса или создать его программным способом с помощью интерфейса командной строки Databricks.
Получение существующего определения конвейера с помощью пользовательского интерфейса
Чтобы получить представление YAML существующего определения конвейера из пользовательского интерфейса рабочей области Azure Databricks:
На боковой панели рабочей области Azure Databricks щелкните "Рабочие процессы".
На вкладке DLT щелкните ссылку на имя вашего конвейера.
Рядом с кнопкой "Разработка " нажмите кнопку "Кебаб", а затем нажмите кнопку "Просмотреть параметры YAML".
Скопируйте YAML определения конвейера в локальный буфер обмена, открыв диалоговое окно "Параметры конвейера" и нажав на значок копирования.
Добавьте YAML, который вы скопировали, в файл вашего пакета
databricks.yml
, или создайте файл конфигурации для вашего конвейера в папкеresources
проекта пакета и ссылайтесь на него из файлаdatabricks.yml
. См ресурсы.Скачайте и добавьте все файлы и записные книжки Python, на которые ссылается источник проекта пакета. Обычно артефакты пакета находятся в каталоге
src
в пакете.Совет
Вы можете экспортировать существующую записную книжку из рабочей области Azure Databricks в
.ipynb
формат, нажав кнопку "Файл > Экспорт > IPython Notebook" в пользовательском интерфейсе записной книжки Azure Databricks.После добавления записных книжек, файлов Python и других артефактов в пакет убедитесь, что определение конвейера правильно ссылается на них. Например, для записной книжки с именем
hello.ipynb
, которая находится вsrc/
каталоге пакета:resources: pipelines: hello-pipeline: name: hello-pipeline libraries: - notebook: path: ../src/hello.ipynb
Создание существующего определения конвейера с помощью интерфейса командной строки Databricks
Чтобы программно создать конфигурацию пакета для существующего конвейера:
Получите идентификатор существующего конвейера из боковой панели Сведения о конвейере в пользовательском интерфейсе или используйте команду
databricks pipelines list-pipelines
Databricks CLI.bundle generate pipeline
Выполните команду CLI Databricks, задав идентификатор конвейера:databricks bundle generate pipeline --existing-pipeline-id 6565621249
Эта команда создает файл конфигурации пакета для конвейера в папке пакета
resources
и скачивает все указанные артефакты в папкуsrc
.Совет
Если вы сначала используете
bundle deployment bind
для привязки ресурса в пакете к ресурсу в рабочей области, ресурс в рабочей области обновляется на основе конфигурации, определенной в пакете, с которым он связан, после следующегоbundle deploy
. Дополнительные сведения см. вbundle deployment bind
, раздел "Привязка ресурсов пакета".