Обзор оркестрации в Databricks
Azure Databricks предоставляет встроенный интерфейс для оркестрации рабочих нагрузок обработки данных, что позволяет координировать и выполнять несколько задач в рамках более крупного рабочего процесса. Вы можете упростить, оптимизировать и запланировать выполнение частых повторяющихся задач, что упрощает управление сложными рабочими процессами.
В этой статье представлены основные понятия и варианты, связанные с управлением рабочими нагрузками с помощью заданий Databricks.
Что такое работы?
В Databricks задание предназначено для планирования и оркестрации задач в рабочем процессе Databricks . Распространенные рабочие процессы обработки данных включают рабочие процессы ETL, выполнение записных книжек и рабочих процессов машинного обучения (ML), а также интеграцию с внешними системами, такими как dbt и Фабрика данных Azure (ADF).
Задания состоят из одной или нескольких подзадач и поддерживают настраиваемую логику потока управления, такую как ветвления (операторы if / else) или циклы (операторы for each) с помощью интерфейса визуального проектирования. Задачи могут загружать или преобразовывать данные в рабочий процесс ETL или создавать, обучать и развертывать модели машинного обучения в управляемом и повторяемом режиме в рамках конвейеров машинного обучения.
Пример. Ежедневное задание обработки и проверки данных
В приведенном ниже примере показано задание в Azure Databricks.
В этом примере задания имеются следующие характеристики:
- Первая задача обрабатывает данные о доходах.
- Вторая задача — это проверка с использованием условий if / else для значений NULL.
- В противном случае выполняется задача преобразования.
- В противном случае выполняется задача записной книжки с проверкой качества данных.
- Он планируется запускать каждый день в 11:29 утра.
Краткие сведения о создании собственного задания см. в статье Создание первого рабочего процесса с помощью задания Azure Databricks.
Распространенные варианты использования
От базовых принципов проектирования данных до расширенной интеграции машинного обучения и простой интеграции инструментов эти распространенные варианты использования демонстрируют широту возможностей, которые управляют современной аналитикой, автоматизацией рабочих процессов и масштабируемостью инфраструктуры.
Основные понятия оркестрации
Существует три основных понятия при использовании оркестрации в Azure Databricks: задания, задачи и триггеры.
Работа - Работа является основным ресурсом для координации, планирования и выполнения операций. Задания могут отличаться в своей сложности — от выполнения одной задачи в записной книжке Azure Databricks до сотен задач, которые имеют условную логику и зависимости. Задачи в работе визуально представлены направленным ациклическим графом (DAG). Вы можете указать свойства для задания, в том числе:
- Триггер — определяет время выполнения задания.
- Параметры — параметры исполнения, которые автоматически передаются в задачи внутри задания.
- Уведомления — это электронные письма или вебхуки, которые отправляются в случае сбоя задания или если его выполнение занимает слишком много времени.
- Git — настройки системы контроля версий для рабочих задач.
Задача - Задача — это конкретная единица работы в рамках проекта. Каждая задача может выполнять различные операции, в том числе:
- Задача записной книжки запускает записную книжку Databricks. Вы указываете путь к записной книжке и любым нужным параметрам.
- Задача потока запускает поток. Можно указать существующий конвейер DLT, например материализованное представление или потоковую таблицу.
- Задача скрипта Python выполняет файл Python. Вы предоставляете путь к файлу и любым необходимым параметрам.
Существует множество типов задач. Полный список см. в разделе Типы задач. Задачи могут иметь зависимости от других задач и условно выполнять другие задачи, что позволяет создавать сложные рабочие процессы с условной логикой и зависимостями.
триггер . Триггер — это механизм, который инициирует выполнение задания на основе определенных условий или событий. Триггер может быть на основе времени, например выполнение задания в запланированное время (например, когда-либо в 2 утра) или на основе событий, например выполнение задания при поступлении новых данных в облачное хранилище.
мониторинг и наблюдаемость
Задания обеспечивают встроенную поддержку мониторинга и наблюдаемости. В следующих разделах представлен обзор этой поддержки. Дополнительные сведения о мониторинге и оркестрации заданий см. в разделе Обозримость и мониторинг заданий Databricks.
мониторинг заданий и наблюдаемость в пользовательском интерфейсе. В пользовательском интерфейсе Azure Databricks можно просматривать задания, включая сведения, такие как владелец задания и результат последнего выполнения, а также фильтровать по свойствам задания. Вы можете просмотреть журнал выполнения заданий и получить подробные сведения о каждой задаче в задании.
состояние выполнения задания и метрики. Databricks сообщает об успешном завершении выполнения задания, а также предоставляет журналы и метрики каждой задачи внутри выполнения задания для диагностики проблем и анализа производительности.
Уведомления и оповещения. Вы можете настроить уведомления для рабочих событий по электронной почте, в Slack, через пользовательские веб-перехватчики и множество других вариантов.
Произвольные запросы с помощью системных таблиц - Azure Databricks предоставляет системные таблицы, которые записывают выполнение заданий и задач в учетной записи. Эти таблицы можно использовать для запроса и анализа производительности заданий и затрат. Вы можете создавать панели мониторинга для визуализации метрик заданий и тенденций, чтобы отслеживать работоспособность и производительность рабочих процессов.
Ограничения
Применяются следующие ограничения:
- Рабочая область ограничена до 2000 одновременных запусков задач. Ответ
429 Too Many Requests
возвращается при запросе на выполнение, которое не может быть запущено немедленно. - Число заданий, создаваемых рабочей областью в течение часа, ограничено 10000 (включая "Отправка процессов выполнений"). Это ограничение также влияет на задания, созданные REST API и рабочими процессами ноутбука.
- Рабочая область может содержать до 12000 сохраненных заданий.
- Задание может содержать до 100 задач.
Можно ли программно управлять рабочими процессами?
Databricks имеет средства и API,которые позволяют планировать и оркестрировать рабочие процессы программным способом, включая следующие:
- Databricks CLI
- Пакеты активов Databricks
- Расширение Databricks для Visual Studio Code
- Пакеты SDK Databricks
- API REST для заданий
Примеры использования средств и API для создания заданий и управления ими см. в статье Автоматизация создания заданий и управления. Документацию по всем доступным средствам разработчика см. в разделе "Локальные средства разработки".
Внешние средства используют средства Databricks и API для программного планирования рабочих процессов. Вы можете запланировать задания с помощью таких средств, как Фабрика данных Azure или Apache AirFlow.
Оркестрация рабочих процессов с помощью Apache AirFlow
Вы можете использовать Apache Airflow для управления и планирования рабочих процессов данных. При использовании Airflow вы определяете рабочий процесс в файле Python, а Airflow управляет планированием и выполнением рабочего процесса. См. Оркестрация заданий Azure Databricks с помощью Apache Airflow.
Оркестрация рабочих процессов с помощью Фабрика данных Azure
Фабрика данных Azure (ADF) — это облачная служба интеграции данных, которая позволяет создавать хранилища данных, перемещения и обработки служб в автоматизированные конвейеры данных. С помощью ADF можно управлять заданием Azure Databricks в рамках конвейера ADF.
ADF также имеет встроенную поддержку для запуска записных книжек Databricks, скриптов Python или кода, упакованных в JARs в конвейере ADF.
Чтобы узнать, как запустить записную книжку Databricks в конвейере ADF, см. Запуск записной книжки Databricks с помощью действия Databricks в Azure Data Factory, а затем Преобразование данных с помощью выполнения записной книжки Databricks.
Сведения о запуске скрипта Python в конвейере ADF см. в статье "Преобразование данных", выполнив действие Python в Azure Databricks.
Сведения о том, как выполнять код, упакованный в JAR-файл в конвейере ADF, см. в разделе "Преобразование данных", выполнив действие JAR в Azure Databricks.