INTEGRITY Документация

Бессерверные ETL-пайплайны

Введение

Конвейеры Extract, Transform, Load (ETL) занимают центральное место в инженерии данных: они превращают необработанные данные в структурированный, пригодный для использования формат. ETL незаменим на этапах обработки данных, где данные нужно собрать, очистить и преобразовать перед загрузкой в целевое хранилище.

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

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

ETL-конвейеры играют ключевую роль в процессах принятия решений на основе данных в самых разных отраслях: они позволяют организациям извлекать из своих данных инсайты и ценность. Автоматизируя и упрощая путь от сырых данных к применимым на практике выводам, ETL-конвейеры помогают бизнесу принимать обоснованные решения, оптимизировать процессы и получать конкурентные преимущества в условиях, где данные определяют успех.

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

Cloudflare позволяет развёртывать полностью бессерверные конвейеры ETL, что снижает сложность, время вывода в продакшен и общие затраты. На приведённых ниже диаграммах показаны разные способы использования Cloudflare в типовых развёртываниях конвейеров ETL.

ETL-конвейер с приёмом данных через HTTP

Рисунок 1: бессерверная архитектура: приём данных по HTTP
Рисунок 1: ETL-конвейер с приемом данных по HTTP

Эта архитектура демонстрирует полностью бессерверный ETL-конвейер, где данные поступают через конечную точку API. Клиенты отправляют данные для обработки через HTTP-запрос. Типичные примеры включают данные о кликах пользователей или аналитику.

  1. Запрос клиента: Отправка POST-запроса с данными для приёма. Например, данные о кликах или обращения к аналитическим конечным точкам.
  2. Обработка входных данных: Обработка входящего запроса с помощью Workers и отправлять сообщения в Queues для добавления в очередь обработки.
  3. Обработка данных: Используйте Queues чтобы инициировать потребитель которые обрабатывают входные данные пакетами, чтобы предотвратить перегрузку последующих этапов и повысить эффективность. Потребитель выполняет все операции очистки, преобразования и стандартизации данных.
  4. Объектное хранилище: Загрузка обработанных данных в R2 для постоянного хранения данных.
  5. Механизм Ack/Retry: Сигнализация об успехе или ошибке с помощью Queues Runtime API в потребителе для каждого документа. Queues при необходимости запланирует повторные попытки.
  6. Запросы к данным: Доступ к обработанным данным из внешних сервисов для их дальнейшего использования.

ETL-конвейер с приёмом данных из объектного хранилища

Рисунок 2: бессерверная архитектура: приём данных из объектного хранилища
Рисунок 2: ETL-конвейер с приёмом данных из объектного хранилища

Эта архитектура демонстрирует полностью бессерверный ETL-конвейер, где данные поступают через объектное хранилище. Типичные примеры включают обработку журналов и неструктурированных документов.

  1. Запрос клиента: Загрузка необработанных данных в R2 через S3-совместимый API. Типичные примеры: данные журналов и аналитики.
  2. Обработка входных данных: Отправка сообщений в Queues с помощью Уведомления о событиях R2 при загрузке объекта.
  3. Обработка данных: Используйте Queues чтобы инициировать потребитель которые обрабатывают входные данные пакетами, чтобы предотвратить перегрузку последующих этапов и повысить эффективность. Потребитель выполняет все операции очистки, преобразования и стандартизации данных.
  4. Объектное хранилище: Загрузка обработанных данных в R2 для постоянного хранения данных.
  5. Механизм Ack/Retry: Сигнализация об успехе или ошибке с помощью Queues Runtime API в потребителе для каждого документа. Queues при необходимости запланирует повторные попытки.
  6. Запросы к данным: Доступ к обработанным данным из внешних сервисов для их дальнейшего использования.