Что такое пакеты ресурсов Databricks?
Наборы активов Databricks (DAB) — это средство для упрощения внедрения рекомендаций по проектированию программного обеспечения, включая управление версиями, проверку кода, тестирование и непрерывную интеграцию и доставку (CI/CD) для ваших данных и проектов ИИ. Пакеты позволяют описать ресурсы Databricks, такие как задания, конвейеры и записные книжки в качестве исходных файлов. Эти исходные файлы предоставляют комплексное определение проекта, включая структуру, тестирование и развертывание, что упрощает совместную работу над проектами во время активной разработки.
Пакеты предоставляют способ включения метаданных вместе с исходными файлами проекта. При развертывании проекта с помощью пакетов эти метаданные используются для подготовки инфраструктуры и других ресурсов. Затем коллекция исходных файлов и метаданных проекта развертывается в качестве одного пакета в целевой среде. Пакет включает следующие части:
- Обязательные конфигурации облачной инфраструктуры и рабочей области
- Исходные файлы, такие как записные книжки и файлы Python, которые включают бизнес-логику
- Определения и параметры для ресурсов Databricks, таких как задания Azure Databricks, конвейеры DLT, конечные точки обслуживания моделей, эксперименты MLflow и зарегистрированные модели MLflow
- Модульные тесты и тесты интеграции
На следующей схеме представлено высокоуровневое представление конвейера разработки и CI/CD с пакетами:
Когда следует использовать пакеты ресурсов Databricks?
Пакеты ресурсов Databricks — это подход «инфраструктура как код» (IaC) к управлению проектами Databricks. Используйте их, если требуется управлять сложными проектами, в которых необходимы несколько участников и автоматизации, а также непрерывная интеграция и развертывание (CI/CD) являются обязательными. Так как пакеты определяются и управляются с помощью шаблонов и файлов YAML, которые создаются и поддерживаются вместе с исходным кодом, они хорошо сопоставляются с сценариями, где IaC является подходящим подходом.
Ниже приведены некоторые идеальные сценарии для пакетов:
- Разработка проектов данных, аналитики и машинного обучения в командной среде. Пакеты помогают эффективно упорядочивать и управлять различными исходными файлами. Это обеспечивает гладкую совместную работу и упрощенные процессы.
- Ускорьте решение задач машинного обучения. Управляйте ресурсами конвейера машинного обучения (такими как задания на обучение и пакетное прогнозирование) с помощью проектов машинного обучения, которые с самого начала соответствуют производственным передовым практикам.
- Установите организационные стандарты для новых проектов, создавая пользовательские шаблоны пакетов, которые включают разрешения по умолчанию, служебные принципалы и конфигурации CI/CD.
- Соответствие нормативным требованиям: В отраслях, где соответствие нормативным требованиям является значительной проблемой, комплекты могут помочь поддерживать версированную историю работы кода и инфраструктуры. Это помогает в управлении и гарантирует соблюдение необходимых стандартов соответствия.
Как работают пакеты ресурсов Databricks?
Метаданные пакета определяются с помощью файлов YAML, которые указывают артефакты, ресурсы и конфигурацию проекта Databricks. Этот файл YAML можно создать вручную или создать его с помощью шаблона пакета. Затем интерфейс командной строки Databricks можно использовать для проверки, развертывания и запуска пакетов с помощью этих файлов YAML пакета. Вы можете запускать пакетные проекты из IDE, терминалов или прямо в Databricks. В этой статье используется интерфейс командной строки Databricks.
Пакеты можно создавать вручную или на основе шаблона. Интерфейс командной строки Databricks предоставляет шаблоны по умолчанию для простых вариантов использования, но для более конкретных или сложных заданий можно создать настраиваемые шаблоны пакетов для реализации рекомендаций вашей команды и обеспечения согласованности распространенных конфигураций.
Дополнительные сведения о конфигурации YAML, используемой для выражения пакетов активов Databricks, см. в разделе "Конфигурация пакета активов Databricks".
Настройка среды для использования пакетов
Интерфейс командной строки Databricks используется для развертывания пакетов из командной строки. Сведения об установке интерфейса командной строки Databricks см. в разделе Установка или обновление интерфейса командной строки Databricks.
Пакеты активов Databricks доступны в Интерфейсе командной строки Databricks версии 0.218.0 или выше. Чтобы найти установленную версию интерфейса командной строки Databricks, выполните следующую команду:
databricks --version
После установки интерфейса командной строки Databricks убедитесь, что удаленные рабочие области Databricks настроены правильно. Для пакетов требуется включить функцию работы с файлами рабочей области. Если вы используете Databricks Runtime версии 11.3 LTS или более поздней, эта функция включена по умолчанию.
Проверка подлинности
Azure Databricks предоставляет несколько методов проверки подлинности:
- Для сценариев аутентификации с участием, таких как ручные процессы, в которых вы используете веб-браузер для входа в целевую рабочую область Azure Databricks (когда инструмент командной строки Databricks запрашивает это), используйте аутентификацию OAuth "пользователь-к-машине" (U2M). Этот метод идеально подходит для экспериментов с руководствами по началу работы с пакетами ресурсов Databricks или для быстрого разработки пакетов.
- Для сценариев без участия пользователя проверки подлинности, таких как полностью автоматизированные рабочие процессы, в которых нет возможности использовать веб-браузер для входа в целевую рабочую область Azure Databricks в это время, используйте машинную аутентификацию OAuth (M2M). Этот метод требует использования принципов службы Azure Databricks и идеально подходит для работы с пакетами активов Databricks в системах CI/CD, таких как GitHub.
Для проверки подлинности OAuth U2M выполните следующие действия.
Используйте Databricks CLI для локального управления токенами 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.
Имя этого профиля конфигурации можно использовать одним или несколькими способами при проверке, развертывании, запуске или уничтожении пакетов:
- С параметром
-p <profile-name>
командной строки, добавленным к командамdatabricks bundle validate
,databricks bundle deploy
databricks bundle run
илиdatabricks bundle destroy
. См. статью о разработке пакетов активов Databricks. - В качестве значения сопоставления
profile
в сопоставлении верхнего уровняworkspace
в файле конфигурации пакета. Databricks рекомендует использовать сопоставлениеhost
, установленное на URL-адрес рабочей области Azure Databricks, вместо сопоставленияprofile
, поскольку это делает файлы конфигурации вашего пакета более переносимыми. См. сведения о сопоставленииprofile
в рабочей области. - Если имя профиля конфигурации равно
DEFAULT
, оно используется по умолчанию, если параметр командной строки-p <profile-name>
или сопоставлениеprofile
(илиhost
) не указано.
Для проверки подлинности OAuth M2M выполните следующие действия.
Выполните инструкции по настройке проверки подлинности OAuth M2M. См. Авторизовать автономный доступ к ресурсам Azure Databricks с помощью служебного принципала и OAuth.
Установите интерфейс командной строки Databricks в целевом вычислительном ресурсе одним из следующих способов:
- Чтобы вручную установить Databricks CLI на вычислительном ресурсе в режиме реального времени, см. установку или обновление Databricks CLI.
- Чтобы использовать GitHub Actions для автоматической установки интерфейса командной строки Databricks на виртуальной машине GitHub, см. setup-cli в GitHub.
- Чтобы использовать другие системы CI/CD для автоматической установки или обновления Databricks CLI на виртуальной машине, ознакомьтесь с документацией поставщика вашей системы CI/CD и установить или обновить Databricks CLI.
Задайте следующие переменные среды для вычислительного ресурса следующим образом:
-
DATABRICKS_HOST
, задайте для URL-адрес Azure Databricks для каждой рабочей области, напримерhttps://adb-1234567890123456.7.azuredatabricks.net
. -
DATABRICKS_CLIENT_ID
установите как значение идентификатора приложения субъекта-службы Azure Databricks. -
DATABRICKS_CLIENT_SECRET
задайте значение секрета для OAuth субъекта-службы Azure Databricks.
Чтобы задать эти переменные среды, ознакомьтесь с документацией по операционной системе целевого вычислительного ресурса или системе CI/CD.
-
Разработайте свой первый набор активов Databricks
Самый быстрый способ начать разработку пакетов — использовать шаблон проекта пакета. Создайте свой первый проект пакета, используя команду Databricks CLI bundle init. Эта команда представляет выбор шаблонов пакетов по умолчанию, предоставляемых Databricks, и задает ряд вопросов для инициализации переменных проекта.
databricks bundle init
Создание пакета является первым шагом в жизненном цикле пакета. Второй шаг — это разработка вашего пакета, ключевым элементом которого является определение настроек пакета и ресурсов в databricks.yml
и файлах конфигурации ресурсов. Сведения о конфигурации пакета см. в разделе "Конфигурация пакета ресурсов Databricks".
Совет
Примеры конфигурации пакета можно найти в примерах конфигурации пакета и репозитории примеров пакетов в GitHub.
Следующие шаги
- Создайте пакет, который развертывает записную книжку в рабочей области Azure Databricks, а затем запускает развернутую записную книжку в качестве задания Azure Databricks. См. статью "Разработка задания в Azure Databricks с использованием Databricks Asset Bundles".
- Создайте пакет, который развертывает записную книжку в рабочей области Azure Databricks, а затем запускает эту записную книжку в виде конвейера DLT. См. статью Разработка конвейеров DLT с помощью пакетов ресурсов Databricks.
- Создайте пакет, который развертывает и запускает стек MLOps. Ознакомьтесь с пакетами ресурсов Databricks для стеков MLOps.
- Добавьте пакет в рабочий процесс CI/CD (непрерывная интеграция и непрерывное развертывание) в GitHub. См. Запуск рабочего процесса CI/CD с пакетом ресурсов Databricks и GitHub Actions.
- Создайте пакет, который создает, развертывает и вызывает файл колесика Python. См. статью "Разработка файла колеса Python с помощью пакетов ресурсов Databricks".
- Создайте пользовательский шаблон, который вы и другие могут использовать для создания пакета. Настраиваемый шаблон может включать разрешения по умолчанию, основные представители службы и пользовательскую конфигурацию CI/CD. См. шаблоны проектов пакета ресурсов Databricks.
- Переход с dbx на пакеты ресурсов Databricks. См. раздел "Миграция из dbx в пакеты".
- Узнайте о последних новых возможностях, выпущенных для пакетов ресурсов Databricks. См. заметки о выпуске функции пакетов ресурсов Databricks.