Обзор оркестрации в 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.
Распространенные варианты использования
От базовых принципов проектирования данных до расширенной интеграции машинного обучения и простой интеграции инструментов эти распространенные варианты использования демонстрируют широту возможностей, которые управляют современной аналитикой, автоматизацией рабочих процессов и масштабируемостью инфраструктуры.
|
конвейеры проектирования данных | ETL (извлечение, преобразование, загрузка): автоматизация извлечения данных из различных источников, преобразование данных в подходящий формат и загрузка их в хранилище данных или озеро данных. См. статью Выполните первую рабочую нагрузку ETL в Azure Databricks
Миграция данных: Перемещение данных из одной системы в другую.
непрерывной обработки данных: используйте задания для задач непрерывной обработки данных, таких как потоковая передача данных из источников, таких как Kafka, и запись их в таблицы Delta. | | Data science и машинное обучение | Обучение моделей: Планируйте и запускайте задания по обучению моделей машинного обучения, чтобы обеспечить обучение моделей на основе последних данных.
пакетный вывод: Автоматизируйте процесс выполнения пакетных задач по выводу данных для создания прогнозов на основе обученных моделей.
настройка гиперпараметров: оркестрирование графиков настройки гиперпараметров для оптимизации моделей машинного обучения. | | Аналитика и отчеты | Запланированные запросы: выполняйте SQL-запросы в задании по расписанию для создания отчетов или обновления панелей мониторинга.
агрегирование данных: Регулярное выполнение задач по агрегированию данных для их подготовки к анализу. | | автоматизация задач | рабочих процессов с несколькими задачами: создание сложных рабочих процессов, включающих несколько задач, таких как выполнение ряда записных книжек, JAR-файлов, запросов SQL или конвейеров разностных динамических таблиц.
условной логики. Используйте условную логику, чтобы управлять потоком задач на основе успешности или сбоя предыдущих задач. | | Интеграция с другими инструментами | Airflow и Azure Data Factory (ADF): Активация заданий Azure Databricks с помощью внешних средств оркестрации, таких как Apache Airflow и Azure Data Factory, что позволяет создавать более сложные и интегрированные рабочие процессы.
Уведомления и мониторинг. Настройте уведомления и мониторинг результатов выполнения заданий с помощью пользовательского интерфейса Azure Databricks, CLI или API, или с использованием интеграции с такими инструментами, как Slack и вебхуки. | | Инфраструктура как код (IaC) | Наборы ресурсов Databricks: управление заданиями и другими ресурсами как кодом для упрощения контроля версий, проверки кода и CI/CD (непрерывная интеграция и непрерывное развертывание). |
Основные понятия оркестрации
Существует три основных понятия при использовании оркестрации в Azure Databricks: задания, задачи и триггеры.
Работа - Работа является основным ресурсом для координации, планирования и выполнения операций. Задания могут отличаться в своей сложности — от выполнения одной задачи в записной книжке Azure Databricks до сотен задач, которые имеют условную логику и зависимости. Задачи в работе визуально представлены направленным ациклическим графом (DAG). Вы можете указать свойства для задания, в том числе:
- Триггер — определяет время выполнения задания.
- Параметры — параметры выполнения, которые автоматически отправляются в задачи внутри задания.
- Уведомления — это сообщения электронной почты или веб-перехватчики, которые отправляются при провале или при длительном выполнении задания.
- Git — параметры контроля версий для рабочих задач.
Задача - Задача — это конкретная единица работы в рамках проекта. Каждая задача может выполнять различные операции, в том числе:
- Задача записной книжки запускает записную книжку Databricks. Вы указываете путь к записной книжке и любым нужным параметрам.
- Задача конвейера запускает конвейер. Вы можете указать существующий конвейер Delta Live Tables, например, материализованное представление или потоковую таблицу.
- Задача скрипта Python выполняет файл Python. Вы предоставляете путь к файлу и любым необходимым параметрам.
Существует множество типов задач. Полный список см. в разделе Типы задач. Задачи могут иметь зависимости от других задач и условно выполнять другие задачи, что позволяет создавать сложные рабочие процессы с условной логикой и зависимостями.
триггер . Триггер — это механизм, который инициирует выполнение задания на основе определенных условий или событий. Триггер может быть на основе времени, например выполнение задания в запланированное время (например, когда-либо в 2 утра) или на основе событий, например выполнение задания при поступлении новых данных в облачное хранилище.
мониторинг и наблюдаемость
Задания обеспечивают встроенную поддержку мониторинга и наблюдаемости. В следующих разделах представлен обзор этой поддержки. Дополнительные сведения о мониторинге и оркестрации заданий см. в разделе Обозримость и мониторинг заданий Databricks.
мониторинг заданий и наблюдаемость в пользовательском интерфейсе. В пользовательском интерфейсе Azure Databricks можно просматривать задания, включая сведения, такие как владелец задания и результат последнего выполнения, а также фильтровать по свойствам задания. Вы можете просмотреть журнал выполнения заданий и получить подробные сведения о каждой задаче в задании.
состояние выполнения задания и метрики. Databricks сообщает об успешном завершении выполнения задания, а также предоставляет журналы и метрики каждой задачи внутри выполнения задания для диагностики проблем и анализа производительности.
Уведомления и оповещения. Вы можете настроить уведомления для рабочих событий по электронной почте, в Slack, через пользовательские веб-перехватчики и множество других вариантов.
Произвольные запросы с помощью системных таблиц - Azure Databricks предоставляет системные таблицы, которые записывают выполнение заданий и задач в учетной записи. Эти таблицы можно использовать для запроса и анализа производительности заданий и затрат. Вы можете создавать панели мониторинга для визуализации метрик заданий и тенденций, чтобы отслеживать работоспособность и производительность рабочих процессов.
Ограничения
Применяются следующие ограничения:
- Рабочая область ограничена 2000 одновременных запусков задач. Ответ
429 Too Many Requests
возвращается при запросе на выполнение, которое не может быть запущено немедленно. - Число заданий, создаваемых рабочей областью в течение часа, ограничено 10000 (включая "Отправка процессов выполнений"). Это ограничение также влияет на задания, созданные REST API и рабочими процессами ноутбука.
- Рабочая область может содержать до 12000 сохраненных заданий.
- Задание может содержать до 100 задач.
Можно ли программно управлять рабочими процессами?
Databricks имеет средства и API,которые позволяют планировать и оркестрировать рабочие процессы программным способом, включая следующие:
- CLI Databricks
- Пакеты активов Databricks
- Расширение Databricks для Visual Studio Code
- Пакеты SDK databricks
- REST API заданий
Примеры использования средств и API для создания заданий и управления ими см. в статье Автоматизация создания заданий и управления. Документация по всем доступным средствам разработчика см. в локальных средств разработки.
Внешние средства используют средства Databricks и API для программного планирования рабочих процессов. Вы можете запланировать задания с помощью таких средств, как Фабрика данных Azure или Apache AirFlow.
Оркестрация рабочих процессов с помощью Apache AirFlow
Вы можете использовать Apache Airflow для управления и планирования рабочих процессов данных. При использовании Airflow вы определяете рабочий процесс в файле Python, а Airflow управляет планированием и выполнением рабочего процесса. См . сведения о заданиях Orchestrate Azure Databricks с помощью Apache Airflow.
Оркестрация рабочих процессов с помощью Фабрика данных Azure
Фабрика данных Azure (ADF) — это облачная служба интеграции данных, которая позволяет создавать хранилища данных, перемещения и обработки служб в автоматизированные конвейеры данных. С помощью ADF можно управлять заданием Azure Databricks в рамках конвейера ADF.
ADF также имеет встроенную поддержку для запуска записных книжек Databricks, скриптов Python или кода, упакованных в JARs в конвейере ADF.
Чтобы узнать, как запустить записную книжку Databricks в конвейере ADF, см. статью "Запуск записной книжки Databricks с действием записной книжки Databricks в Фабрика данных Azure", а затем преобразование данных путем запуска записной книжки Databricks.
Сведения о запуске скрипта Python в конвейере ADF см. в статье "Преобразование данных", выполнив действие Python в Azure Databricks.
Сведения о том, как выполнять код, упакованный в JAR-файл в конвейере ADF, см. в разделе "Преобразование данных", выполнив действие JAR в Azure Databricks.