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


Обзор оркестрации в 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.

Распространенные варианты использования

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

Основные понятия оркестрации

Существует три основных понятия при использовании оркестрации в 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,которые позволяют планировать и оркестрировать рабочие процессы программным способом, включая следующие:

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