← Справочные архитектуры / reference-architecture / diagrams / serverless
Бессерверные ETL-пайплайны
Введение
Конвейеры Extract, Transform, Load (ETL) занимают центральное место в инженерии данных: они превращают необработанные данные в структурированный, пригодный для использования формат. ETL незаменим на этапах обработки данных, где данные нужно собрать, очистить и преобразовать перед загрузкой в целевое хранилище.
Процесс начинается с извлечения, когда данные собираются из различных источников, таких как базы данных, файлы или потоки. Эти исходные данные часто разнородны и неструктурированы, что требует следующего этапа: преобразования. На этапе преобразования данные проходят ряд операций для стандартизации форматов, устранения несоответствий и обогащения дополнительным контекстом или вычислениями. Этот этап критически важен для обеспечения качества и согласованности данных, а также для их соответствия требованиям последующих приложений и аналитики.
И наконец, преобразованные данные загружаются в целевое хранилище: это может быть хранилище данных, база данных или любое другое решение для хранения. На этапе загрузки обработанные данные эффективно перемещаются в нужное место, откуда их можно быстро получить и использовать для разных задач, например для отчётности, анализа или обучения моделей машинного обучения.
ETL-конвейеры играют ключевую роль в процессах принятия решений на основе данных в самых разных отраслях: они позволяют организациям извлекать из своих данных инсайты и ценность. Автоматизируя и упрощая путь от сырых данных к применимым на практике выводам, ETL-конвейеры помогают бизнесу принимать обоснованные решения, оптимизировать процессы и получать конкурентные преимущества в условиях, где данные определяют успех.
Примеры применения ETL-конвейеров включают такие сценарии, как извлечение данных о продажах из нескольких розничных магазинов, приведение их к стандартизированному формату и загрузка в централизованное хранилище данных для анализа и составления отчётов. Аналогично ETL-конвейеры применяются в проектах миграции данных, где устаревшие данные необходимо перенести в современные системы, обеспечивая при этом целостность и согласованность данных на всех этапах процесса.
Cloudflare позволяет развёртывать полностью бессерверные конвейеры ETL, что снижает сложность, время вывода в продакшен и общие затраты. На приведённых ниже диаграммах показаны разные способы использования Cloudflare в типовых развёртываниях конвейеров ETL.
ETL-конвейер с приёмом данных через HTTP
Эта архитектура демонстрирует полностью бессерверный ETL-конвейер, где данные поступают через конечную точку API. Клиенты отправляют данные для обработки через HTTP-запрос. Типичные примеры включают данные о кликах пользователей или аналитику.
- Запрос клиента: Отправка POST-запроса с данными для приёма. Например, данные о кликах или обращения к аналитическим конечным точкам.
- Обработка входных данных: Обработка входящего запроса с помощью Workers и отправлять сообщения в Queues для добавления в очередь обработки.
- Обработка данных: Используйте Queues чтобы инициировать потребитель которые обрабатывают входные данные пакетами, чтобы предотвратить перегрузку последующих этапов и повысить эффективность. Потребитель выполняет все операции очистки, преобразования и стандартизации данных.
- Объектное хранилище: Загрузка обработанных данных в R2 для постоянного хранения данных.
- Механизм Ack/Retry: Сигнализация об успехе или ошибке с помощью Queues Runtime API в потребителе для каждого документа. Queues при необходимости запланирует повторные попытки.
- Запросы к данным: Доступ к обработанным данным из внешних сервисов для их дальнейшего использования.
ETL-конвейер с приёмом данных из объектного хранилища
Эта архитектура демонстрирует полностью бессерверный ETL-конвейер, где данные поступают через объектное хранилище. Типичные примеры включают обработку журналов и неструктурированных документов.
- Запрос клиента: Загрузка необработанных данных в R2 через S3-совместимый API. Типичные примеры: данные журналов и аналитики.
- Обработка входных данных: Отправка сообщений в Queues с помощью Уведомления о событиях R2 при загрузке объекта.
- Обработка данных: Используйте Queues чтобы инициировать потребитель которые обрабатывают входные данные пакетами, чтобы предотвратить перегрузку последующих этапов и повысить эффективность. Потребитель выполняет все операции очистки, преобразования и стандартизации данных.
- Объектное хранилище: Загрузка обработанных данных в R2 для постоянного хранения данных.
- Механизм Ack/Retry: Сигнализация об успехе или ошибке с помощью Queues Runtime API в потребителе для каждого документа. Queues при необходимости запланирует повторные попытки.
- Запросы к данным: Доступ к обработанным данным из внешних сервисов для их дальнейшего использования.