Разработка конвейеров разностных динамических таблиц с помощью пакетов ресурсов Databricks
Пакеты ресурсов Databricks, также известные как пакеты, позволяют программно проверять, развертывать и запускать ресурсы Azure Databricks, такие как конвейеры Delta Live Tables. См. раздел "Что такое пакеты ресурсов Databricks?".
В этой статье описывается, как создать пакет для программного управления конвейером. См. раздел "Что такое разностные динамические таблицы?". Пакет создается с помощью шаблона пакета ресурсов Databricks по умолчанию для Python, который состоит из записной книжки, в паре с определением конвейера и задания для его запуска. Затем вы проверяете, развертываете и запускаете развернутый конвейер в рабочей области Azure Databricks.
Совет
Если у вас есть существующие конвейеры, созданные с помощью пользовательского интерфейса Azure Databricks или API, которые необходимо переместить в пакеты, необходимо определить их в файлах конфигурации пакета. Databricks рекомендует сначала создать пакет, выполнив приведенные ниже действия, а затем проверить, работает ли пакет. Затем в пакет можно добавить дополнительные определения, записные книжки и другие источники. См. статью "Добавление существующего определения конвейера в пакет".
Требования
- Databricks CLI версии 0.218.0 или более поздней. Чтобы проверить установленную версию интерфейса командной строки Databricks, выполните команду
databricks -v
. Чтобы установить интерфейс командной строки Databricks, см. статью "Установка или обновление интерфейса командной строки Databricks". - Удаленная рабочая область должна иметь включенные файлы рабочей области. См. раздел " Что такое файлы рабочей области?".
(Необязательно) Установка модуля Python для поддержки разработки локальных конвейеров
Databricks предоставляет модуль Python для поддержки локальной разработки кода конвейера Delta Live Table, предоставляя проверку синтаксиса, автозавершение и проверку типов данных при написании кода в интегрированной среде разработки.
Модуль Python для локальной разработки доступен в PyPi. Чтобы установить модуль, см . заглушку Python для разностных динамических таблиц.
Создание пакета с помощью шаблона проекта
Создайте пакет с помощью шаблона пакета azure Databricks по умолчанию для Python. Этот шаблон состоит из записной книжки, которая определяет конвейер Delta Live Tables, который фильтрует данные из исходного набора данных. Дополнительные сведения о шаблонах пакетов см. в разделе "Шаблоны проектов пакета ресурсов Databricks".
Если вы хотите создать пакет с нуля, см . статью "Создание пакета вручную".
Шаг 1. Настройка аутентификации
На этом шаге вы настроили проверку подлинности между интерфейсом командной строки Databricks на компьютере разработки и рабочей областью Azure Databricks. В этой статье предполагается, что вы хотите использовать проверку подлинности OAuth на компьютере (U2M) и соответствующий профиль конфигурации Azure Databricks с именем DEFAULT
проверки подлинности.
Примечание.
Проверка подлинности U2M подходит для выполнения этих действий в режиме реального времени. Для полностью автоматизированных рабочих процессов Databricks рекомендует использовать проверку подлинности OAuth на компьютере (M2M). Инструкции по настройке проверки подлинности M2M см. в разделе "Проверка подлинности".
Используйте интерфейс командной строки 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
одинаковым значением, может потребоваться указать и-p
параметры--host
вместе, чтобы помочь Databricks CLI найти правильные соответствующие сведения о маркере OAuth.
Шаг 2. Создание пакета
Инициализация пакета с помощью шаблона проекта пакета Python по умолчанию.
Используйте терминал или командную строку, чтобы переключиться в каталог на локальном компьютере разработки, который будет содержать созданный пакет шаблона.
Используйте интерфейс командной
bundle init
строки Databricks для выполнения команды:databricks bundle init
Для
Template to use
этого оставьте значениеdefault-python
по умолчанию, нажав клавишуEnter
.Для
Unique name for this project
этого оставьте значениеmy_project
по умолчанию или введите другое значение, а затем нажмите клавишуEnter
. Это определяет имя корневого каталога для этого пакета. Этот корневой каталог создается в текущем рабочем каталоге.Для
Include a stub (sample) notebook
, выберитеno
и нажмитеEnter
. В этом случае интерфейс командной строки Databricks не добавляет пример записной книжки на данный момент, так как в примере записной книжки, связанной с этим параметром, нет кода Delta Live Tables в нем.Для
Include a stub (sample) DLT pipeline
этого оставьте значениеyes
по умолчанию, нажав клавишуEnter
. Это указывает интерфейсу командной строки Databricks добавить пример записной книжки с кодом Delta Live Tables в нем.Для
Include a stub (sample) Python package
, выберитеno
и нажмитеEnter
. В этом случае интерфейс командной строки Databricks не добавляет примеры файлов пакета колес Python или связанных инструкций по сборке в пакет.
Шаг 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 и создадите конвейер Delta Live Tables в рабочей области.
В корневом каталоге пакета используйте интерфейс командной строки Databricks, чтобы выполнить
bundle deploy
команду следующим образом:databricks bundle deploy -t dev
Проверьте, развернута ли локальная записная книжка: на боковой панели рабочей области Azure Databricks щелкните "Рабочая область".
Щелкните папку Users >
<your-username>
> .bundle >><project-name>
dev > files > src. Записная книжка должна находиться в этой папке.Проверьте, был ли создан конвейер: на боковой панели рабочей области Azure Databricks щелкните Delta Live Tables.
На вкладке "Разностные динамические таблицы " щелкните [dev
<your-username>
]<project-name>
_pipeline.
При внесении изменений в пакет после этого шага необходимо повторить шаги 4–5, чтобы проверить, действительна ли конфигурация пакета, а затем повторно разверните проект.
Шаг 6. Запуск развернутого проекта
На этом шаге вы активируете запуск конвейера Delta Live Tables в рабочей области из командной строки.
В корневом каталоге используйте интерфейс командной строки 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.
Добавление существующего определения конвейера в пакет
Определение конвейера Delta Live Tables можно использовать в качестве основы для определения нового конвейера в файле конфигурации пакета. Чтобы получить существующее определение конвейера, его можно получить вручную с помощью пользовательского интерфейса или создать его программным способом с помощью интерфейса командной строки Databricks.
Получение существующего определения конвейера с помощью пользовательского интерфейса
Чтобы получить представление YAML существующего определения конвейера из пользовательского интерфейса рабочей области Azure Databricks:
На боковой панели рабочей области Azure Databricks щелкните "Рабочие процессы".
На вкладке "Разностные динамические таблицы" щелкните ссылку "Имя конвейера".
Рядом с кнопкой "Разработка " нажмите кнопку "Кебаб", а затем нажмите кнопку "Просмотреть параметры YAML".
Скопируйте YAML определения конвейера в диалоговом окне "Параметры конвейера" в локальный буфер обмена, щелкнув значок копирования.
Добавьте YAML, скопированный в файл пакета, или создайте файл конфигурации для конвейера в
resources
папке проекта пакетаdatabricks.yml
и сослаться на него из файла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
Чтобы программно создать конфигурацию пакета для существующего конвейера:
Получите идентификатор существующего конвейера на боковой панели сведений о конвейере в пользовательском интерфейсе или используйте команду CLI
databricks pipelines list-pipelines
Databricks.bundle generate pipeline
Выполните команду CLI Databricks, задав идентификатор конвейера:databricks bundle generate pipeline --existing-pipeline-id 6565621249
Эта команда создает файл конфигурации пакета для конвейера в папке пакета
resources
и скачивает все указанные артефакты в папкуsrc
.Совет
Если вы сначала используете
bundle deployment bind
для привязки ресурса в пакете к одной в рабочей области, ресурс в рабочей области обновляется на основе конфигурации, определенной в пакете, к нему привязана после следующегоbundle deploy
. Дополнительные сведения см. вbundle deployment bind
разделе "Привязка ресурсов пакета".