Поделиться через


Обзор оркестрации в Databricks

Azure Databricks предоставляет встроенный интерфейс для оркестрации рабочих нагрузок обработки данных, что позволяет координировать и выполнять несколько задач в рамках более крупного рабочего процесса. Вы можете упростить, оптимизировать и запланировать выполнение частых повторяющихся задач, что упрощает управление сложными рабочими процессами.

В этой статье представлены основные понятия и варианты, связанные с управлением рабочими нагрузками с помощью заданий Databricks.

Что такое работы?

В Databricks задание предназначено для планирования и оркестрации задач в рабочем процессе Databricks . Распространенные рабочие процессы обработки данных включают рабочие процессы ETL, выполнение записных книжек и рабочих процессов машинного обучения (ML), а также интеграцию с внешними системами, такими как dbt и Фабрика данных Azure (ADF).

Задания состоят из одной или нескольких задач и поддерживают настраиваемую логику потока управления, такую как ветвления (операторы if / else) или циклы (операторы for each) с использованием визуального интерфейса разработки. Задачи могут загружать или преобразовывать данные в рабочий процесс ETL или создавать, обучать и развертывать модели машинного обучения в управляемом и повторяемом режиме в рамках конвейеров машинного обучения.

Пример. Ежедневное задание обработки и проверки данных

В приведенном ниже примере показано задание в Azure Databricks.

Пример задания в интерфейсе Azure Databricks с 4 задачами и триггером для ежедневного выполнения.

В этом примере задания имеются следующие характеристики:

  1. Первая задача ингерирует данные о доходах.
  2. Вторая задача — это проверка с использованием условий if / else для значений NULL.
  3. В противном случае выполняется задача преобразования.
  4. В противном случае выполняется задача записной книжки с проверкой качества данных.
  5. Он планируется запускать каждый день в 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,которые позволяют планировать и оркестрировать рабочие процессы программным способом, включая следующие:

Примеры использования средств и 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.