Современные архитектуры обработки данных состоят из микросервисов, API, средств аналитики, моделей генеративного ИИ и не только. Они используются для поиска, анализа и публикации данных для конечных пользователей и различных сервисов. Конвейеры данных, состоящие из различных инструментов обработки, перемещают данные от системы к системе.
В ходе такого перемещения может происходить тиражирование и синхронизация данных, но чаще всего выполняется интеграция (извлечение из различных источников и объединение для дальнейшего использования), обычно в автоматизированном режиме. Для работы с поточными данными применяются высокомасштабируемые надежные конвейеры с определенными соглашениями об уровне обслуживания, регламентирующими производительность, допустимую задержку и вероятность ошибок. Если архитектура управления данными распределенная, она может быть построена по принципу сетки (Data Mesh) или матрицы (Data Fabric); важную роль при этом также может играть система управления нормативно-справочной информацией (НСИ).
Для организации конвейеров данных применяются технологии разного уровня сложности: в числе самых простых — обратные HTTP-вызовы (webhook), механизмы публикации-подписки и сервисы IFTTT, к более сложным относятся микросервисы. Конвейеры могут иметь различную архитектуру: пакетная обработка, когда группы записей перемещаются от системы к системе по мере завершения обработки; событийно-зависимая архитектура; архитектуры Lambda и Kappa, сочетающие обработку реального времени и пакетную; конвейеры на основе микросервисов.
Существует масса облачных платформ для построения конвейеров данных с функциями интеграции и работы с потоками. Популярны, в частности, бессерверные архитектуры наподобие AWS Lambda и Google Cloud Functions. Конвейеры реализуют на разных языках программирования, но исследователи и инженеры данных обычно пользуются Python. Возможности интеграции данных и создания конвейеров также есть во многих СУБД, хранилищах данных, системах организации озер данных, платформах ИИ и машинного обучения.
Конвейеры данных применяются для решения самых разных задач бизнеса и необходимы во всех случаях, когда происходит обмен информацией между несколькими системами учета. Простые конвейеры передают записи с минимальными преобразованиями данных и объединяют данные из разных источников, сложные могут обеспечивать оркестровку многоэтапных рабочих процессов, поддерживать работу по исследованию данных, обрабатывать сигналы датчиков Интернета вещей. Команды DevOps применяют конвейеры данных телеметрии для контроля работоспособности приложений, диагностики проблем с производительностью и отладки ошибок.
Помимо этого в наши дни конвейеры данных используются в работе систем генеративного ИИ — они соединяют векторные базы данных, озера данных и большие языковые модели для поддержки подкрепления ответов актуальными данными предприятия. Такие конвейеры обеспечивают весь цикл разработки, тестирования, развертывания, мониторинга и дообучения моделей (MLOps), а также руководство ими (governance).
Внутри конвейеров может происходить преобразование данных согласно требованиям систем-получателей. В простом случае записи при этом сопоставляются, объединяются и очищаются, в более сложных может происходить агрегация, обобщение и дополнение групп записей, документов и т. п. Если традиционные хранилища данных наполнялись по принципу извлечения, преобразования и загрузки (ETL), то теперь благодаря удешевлению хранения применяется принцип извлечения, загрузки и преобразования (ELT), который обеспечивает дополнительную гибкость. Кроме того, в процессе прохождения по конвейеру возможно преобразование данных, в том числе поточных, — для задач аналитики реального времени, обработки транзакций по банковским картам, распознавания мошенничества и т. д. К операциям преобразования относятся фильтрация, агрегация, разбиение на блоки, дополнение и обнаружение аномалий.
Важная функция конвейеров, особенно для регулируемых отраслей, — отслеживание «родословной» данных (data lineage): соответствующие механизмы позволяют выяснять происхождение и все изменения данных на протяжении их жизненного цикла. Такие функции есть в платформах каталогов данных и руководства данными и системами ИИ.
Наладка конвейеров — дело непростое. Нужно обеспечить регистрацию ошибок в данных, позаботившись о том, чтобы проблемы в отдельных записях не останавливали конвейер; необходимо добиться устойчивой производительности конвейера, особенно при больших нагрузках; кроме того, нужно исключить повторную отправку уже переданных записей при ошибках передачи, чтобы не нарушить преобразования.
К конвейерам данных, обслуживающим модели машинного обучения и генеративного ИИ, предъявляются более высокие требования по производительности и качеству с учетом объема проходящих по ним данных и необходимости обеспечить точность работы модели. Руководство соответствующими данными сложнее, поскольку в таких конвейерах одновременно идет работа с неструктурированными, полуструктурированными и структурированными учебными данными.
Необходимо предусмотреть меры по улучшению характеристик наблюдаемости таких конвейеров с помощью средств мониторинга, контроля качества данных и предотвращения дрейфа данных (нежелательного изменения характеристик модели при ее эксплуатации). Средства обеспечения наблюдаемости, работая с информацией реального времени, дают аналитикам возможность доверять данным, которыми они пользуются, и заранее предупреждают об аномалиях и выбросах.
В числе наиболее сложных задач эксплуатации конвейеров — обнаружение и оперативное устранение проблем, обусловленных изменениями API и схем источников данных. С решением могут помочь средства генеративного ИИ, которые облегчают разработку и обслуживание конвейеров данных. Возможно даже обеспечение автоматического обновления процессов ETL с использованием способности моделей ИИ обнаруживать и исправлять типовые неполадки, вызванные, например, изменением схемы или числовым переполнением.