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


Задания Lakeflow

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

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

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

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

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

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

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

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

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

  1. Первая задача обрабатывает данные о доходах.
  2. Вторая задача — это проверка с использованием условий if / else для значений NULL.
  3. В противном случае выполняется задача преобразования.
  4. В противном случае выполняется задача записной книжки с проверкой качества данных.
  5. Запланировано выполняться в одно и то же время каждый день.

Чтобы получить краткое представление о создании собственного задания, см. статью "Создание первого рабочего процесса с помощью заданий Lakeflow".

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

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

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

Существует три основных понятия при использовании заданий Lakeflow для оркестрации в Azure Databricks: задания, задачи и триггеры.

Работа - Работа является основным ресурсом для координации, планирования и выполнения операций. Задания могут отличаться от одной задачи, выполняя Azure Databricks записную книжку до сотен задач с условной логикой и зависимостями. Задачи в работе визуально представлены направленным ациклическим графом (DAG). Вы можете указать свойства для задания, в том числе:

  • Триггер — определяет время выполнения задания.
  • Параметры — параметры исполнения, которые автоматически передаются в задачи внутри задания.
  • Уведомления — это электронные письма или вебхуки, которые отправляются в случае сбоя задания или если его выполнение занимает слишком много времени.
  • Git — настройки системы контроля версий для рабочих задач.

Задача - Задача — это конкретная единица работы в рамках проекта. Каждая задача может выполнять различные операции, в том числе:

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

Существует множество типов задач. Полный список см. в разделе Типы задач. Задачи могут иметь зависимости от других задач и условно выполнять другие задачи, что позволяет создавать сложные рабочие процессы с условной логикой и зависимостями.

триггер . Триггер — это механизм, который инициирует выполнение задания на основе определенных условий или событий. Триггер может быть на основе времени, например выполнение задания в запланированное время (например, когда-либо в 2 утра) или на основе событий, например выполнение задания при поступлении новых данных в облачное хранилище.

мониторинг и наблюдаемость

Задания обеспечивают встроенную поддержку мониторинга и наблюдаемости. В следующих разделах представлен обзор этой поддержки. Дополнительные сведения о заданиях мониторинга и оркестрации см. в разделе "Мониторинг и наблюдаемость для заданий Lakeflow".

Job monitoring and observability in the UI . В пользовательском интерфейсе Azure Databricks можно просматривать задания, включая сведения, такие как владелец задания и результат последнего выполнения, а также фильтровать по свойствам задания. Вы можете просмотреть журнал выполнения заданий и получить подробные сведения о каждой задаче в задании.

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

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

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

Ограничения

Применяются следующие ограничения:

  • Рабочая область ограничена до 2000 одновременных запусков задач. Ответ 429 Too Many Requests возвращается при запросе на выполнение, которое не может быть запущено немедленно.
  • Число заданий, которые рабочая область может создавать в течение часа, ограничено 10000 (включая "отправку выполнения"). Это ограничение также влияет на задания, созданные REST API и рабочими процессами ноутбука.
  • Рабочее пространство может содержать до 12000 сохранённых заданий.
  • Задание может содержать до 1000 задач.
  • Если задачи используют динамические значения в своих параметрах, параметры задания ограничены 10 000 символами.

Можно ли программно управлять рабочими процессами?

Databricks имеет средства и API,которые позволяют планировать и оркестрировать рабочие процессы программным способом, включая следующие:

Примеры использования средств и API для создания заданий и управления ими см. в статье Автоматизация создания заданий и управления. Документацию по всем доступным средствам разработчика см. в разделе "Локальные средства разработки".

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

Оркестрация рабочих процессов с помощью Apache AirFlow

Вы можете использовать Apache Airflow для управления и планирования рабочих процессов данных. При использовании Airflow вы определяете рабочий процесс в файле Python, а Airflow управляет планированием и выполнением рабочего процесса. См. статью Orchestrate Lakeflow Jobs with Apache Airflow.

оркестрация Workflow с Фабрика данных Azure

Фабрика данных Azure (ADF) — это облачная служба интеграции данных, которая позволяет создавать службы хранения данных, перемещения и обработки в автоматизированные конвейеры данных. С помощью ADF можно управлять заданием Azure Databricks в рамках конвейера ADF.

ADF также имеет встроенную поддержку для запуска записных книжек Databricks, Python скриптов или кода, упакованных в JAR в конвейере ADF.

Сведения о том, как запустить записную книжку Databricks в конвейере ADF, см. в статье Запуск записной книжки Databricks с помощью действия для записной книжки Databricks в Фабрика данных Azure, а затем в статье Преобразование данных путем запуска записной книжки Databricks.

Сведения о запуске скрипта Python в конвейере ADF см. в статье Transform data, выполнив действие Python в Azure Databricks.

Сведения о том, как запустить код, упакованный в JAR-файл, в конвейере ADF, см. в статье Преобразование данных с помощью запуска JAR-активности в Azure Databricks.