Пайплайны в Yandex DataLens Platform
Пайплайн — описание процесса обработки данных: какие действия нужно выполнить, в каком порядке и при каких условиях. Пайплайны помогают автоматизировать повторяющиеся операции, например проверять исходные данные, преобразовывать их и подготавливать таблицы для анализа.
В Yandex DataLens Platform пайплайнами управляет Apache Airflow™ — платформа для создания, планирования и мониторинга рабочих процессов. Пайплайны на Apache Airflow™ предназначены для пакетной обработки данных. В разделе Оркестратор можно просматривать структуру процессов, запускать их, отслеживать выполнение и находить причины ошибок.
Поставки данных позволяют загрузить данные из источников в REST-каталог. С помощью пайплайнов можно организовать дальнейшую обработку: связать несколько операций в общий процесс, задать зависимости между ними и регулярно обновлять итоговые таблицы.
Задачи и зависимости
В Apache Airflow™ пайплайн описывается как DAG (Directed Acyclic Graph) — направленный ациклический граф. Его вершины — задачи, а связи между ними задают зависимости и порядок выполнения. Задача представляет собой отдельное действие, например выполнение SQL-запроса или обработку данных с помощью Apache Spark™.
Зависимости позволяют согласовать выполнение задач. Например, проверка данных должна завершиться перед их преобразованием, а итоговую таблицу можно подготовить после завершения всех необходимых преобразований. Условия запуска задач задаются в DAG. Задачи, которые не зависят друг от друга, могут выполняться параллельно.
Для удобства просмотра связанные задачи в коде DAG можно объединять в группы задач. В интерфейсе группы отображаются отдельными блоками графа. Подробнее об устройстве DAG в документации Apache Airflow™
Описание и выполнение пайплайна
Пайплайны описываются в файлах Python — DAG-файлах. В них задаются задачи, зависимости, расписание и параметры выполнения. Код готовят в редакторе или локальной среде разработки и сохраняют в репозитории Git, подключенном к кластеру Apache Airflow™. Кластер загружает DAG-файлы из указанной папки в выбранной ветке репозитория.
Такой подход называется Workflows as code — описание рабочих процессов в виде кода. Он позволяет хранить историю изменений пайплайна в системе контроля версий, проверять изменения и тестировать код перед использованием.
Чтобы изменить логику обработки, состав задач или расписание, обновите файл в хранилище DAG-файлов кластера. После синхронизации изменения становятся доступны в Apache Airflow™. Подробнее в инструкции Добавление пайплайна.
Кластер Apache Airflow™ управляет выполнением пайплайнов: учитывает расписание и зависимости, запускает задачи и отслеживает их состояние. Задачи могут обращаться к другим компонентам DataLens Platform, например выполнять SQL-запросы в кластере Trino или запускать обработку данных в кластере Apache Spark™. Для работы с пайплайнами создайте кластер Apache Airflow™ в подготовленном окружении.
Кластеры Apache Airflow™, Trino и Apache Spark™, а также REST-каталоги, используемые пайплайнами, должны находиться в одном облаке и в одном окружении.
Запуски пайплайна
Запуск пайплайна — отдельное выполнение DAG. У одного пайплайна может быть много запусков, каждый со своим статусом и временем выполнения. Внутри запуска отслеживается выполнение отдельных задач. Если задача выполняется повторно, для нее сохраняется история попыток.
Пайплайны можно запускать вручную или по расписанию, заданному в DAG-файле. Ручной запуск подходит для проверки пайплайна или обработки данных по запросу. Расписание позволяет выполнять обработку регулярно, например каждый день.
Для обработки данных за прошлые периоды используется backfill. Он создает запуски за выбранный период по расписанию DAG. Backfill помогает восстановить пропущенные запуски или пересчитать данные после изменения логики обработки. Подробнее в инструкции Пересчет данных за прошлые периоды.
Состояние пайплайна определяет, создаются ли новые запуски по расписанию. Если пайплайн остановлен, новые запуски по расписанию не создаются, а уже выполняющиеся задачи продолжают работу. Подробнее в инструкции Включение и остановка пайплайна.
Контроль выполнения
В интерфейсе DataLens Platform доступны история запусков и граф задач. На графе отображаются состояния задач выбранного запуска. Можно проверить выполнение всего пайплайна или перейти к отдельной задаче.
Для поиска причин ошибок используются логи задач. При просмотре логов можно выбрать попытку выполнения и отфильтровать сообщения по уровню и источнику. Ошибки загрузки DAG-файлов отображаются отдельно: они могут помешать появлению пайплайна в списке еще до первого запуска. Подробнее в инструкциях Просмотр запусков и задач, Просмотр логов и XCom и Ошибки загрузки DAG-файлов.
Доступ к пайплайнам и данным
Кластер Apache Airflow™ размещается в коллекции. Возможность работы пользователя с пайплайнами определяется доступом к кластеру и коллекции, в которой он размещен.
При создании кластера автоматически создается сервисный аккаунт — один для всех его пайплайнов. От его имени задачи обращаются к объектам DataLens Platform. Аккаунту нужны права на используемые данные и объекты в коллекциях: подключения, сохраненные скрипты и вычислительные кластеры. Права пользователя на управление пайплайнами и права сервисного аккаунта на выполнение задач настраиваются отдельно.
Идентификатор сервисного аккаунта отображается в одноименной карточке на странице Оркестратор. Из меню карточки можно перейти к запросу доступа.