System Design Space
Граф знанийНастройки

Обновлено: 24 июня 2026 г. в 14:22

Архитектура конвейеров данных: ETL и ELT

средний

Как проектировать конвейеры данных: ETL и ELT, пакетная и потоковая обработка, оркестрация, качество данных, восстановление после сбоев, управление стоимостью и операционная надёжность.

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

В реальной инженерной работе эта глава помогает выбирать ETL или ELT по зрелости платформы, месту преобразований, стоимости вычислений и тому, как встроить проверки качества в обычный операционный контур.

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

Практическая польза главы

Практика проектирования

Помогает выбрать ETL или ELT под организационные ограничения и зрелость платформы данных.

Качество решений

Даёт рамку для выбора места преобразований с учётом стоимости, скорости и управляемости проверок качества.

Аргументация на интервью

Позволяет структурно объяснить приём данных, проверки, происхождение данных и слой выдачи.

Риски и компромиссы

Делает явными риски дрейфа схемы, потери данных и нарушений целевого уровня свежести.

База

Streaming Data

Фундамент по пакетной и потоковой обработке, семантике доставки и слоям обработки данных.

Открыть главу

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

Первый выбор в такой архитектуре — где выполнять преобразования: до загрузки через или после загрузки через .

Архитектура конвейеров данных: извлечение, преобразование и загрузка (ETL) и ELT отвечает на вопрос, как превращать сырые события и записи в витрины для аналитики, ML и продуктовых API так, чтобы это переживало сбои и не разваливалось при первом изменении схемы. Трансформации тут — самая простая часть. Дороже обходится всё остальное: восстановление после сбоев, исторический прогон и , наблюдаемость и контроль стоимости вычислений.

Извлечение, преобразование и загрузка (ETL) и ELT: как выбрать

ETL

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

Когда подходит

  • Качество данных нужно проверить до попадания в хранилище.
  • Ресурсы целевого хранилища ограничены, и лишние вычисления в нём дороги.
  • Потребителям на входе нужна предсказуемая схема данных.

Риски

  • Сырьё не сохранили — новый аналитический кейс упирается в недоступные исходные данные.
  • Меняется бизнес-логика — приходится пересчитывать более ранние слои.

ELT

Сырьё грузится в хранилище как есть, а преобразования откладываются на потом — гибко, но сырой слой надо держать под контролем.

Когда подходит

  • Важны быстрый приём данных и свобода менять модели аналитики.
  • Команда активно экспериментирует с моделями и витринами.
  • В хранилище данных или lakehouse-хранилище есть мощный вычислительный слой.

Риски

  • Без правил управления и контроля стоимости сырой слой превращается в дорогой хаос.
  • К сырому слою нужны строгие политики качества и доступа, иначе им начнут пользоваться вслепую.

Референсная архитектура конвейера данных

1

Приём данных

Захват изменений данных (CDC), чтение API, события и файловые загрузки. Важно контролировать дрейф схемы и идемпотентность.

2

Сырой слой / Bronze

Неизменяемый слой с исходными данными для исторического прогона, пересчёта и аудита. Минимум бизнес-логики.

3

Преобразование / Silver

Очистка, дедупликация, стандартизация времени, обогащение и согласование ключей.

4

Слой выдачи / Gold

Доменные витрины и агрегаты для BI, ML, API и операционных сценариев.

5

Оркестрация и качество

Планировщик направленного ациклического графа (DAG), повторы, соглашения об уровне сервиса (SLA), целевой уровень сервиса (SLO), проверки качества, происхождение данных и алерты.

Гибридный контур

Гибридный режим: поток быстро обновляет слой выдачи, а пакетный контур делает контрольные пересчёты и историческое дозаполнение.

Плюсы

  • Комбинирует низкую задержку и высокую точность.
  • Удобно для инкрементальных обновлений и периодического полного пересчёта.
  • Один сырой слой для исторического прогона и обеих стратегий обработки.

Ограничения

  • Наиболее сложная операционная модель.
  • Требует дисциплины в оркестрации и управлении стоимостью.
Подходит для: Крупные платформы данных со смешанным профилем нагрузки.

Входящие задачи

JOB-201
пакет
БД заказов
orders_daily
JOB-202
поток
Kafka платежей
payments_rt
JOB-203
пакет
CRM API
crm_sync
JOB-204
поток
Мобильные события
product_events

Движок конвейера

Пакетный и потоковый контуры работают поверх общего сырого слоя.

Готово к симуляции конвейера. Можно запустить авто-режим или пройти шаги вручную.

Последнее решение

Активный шаг: ожидание

Приём данных

0

CDC / API / события

Raw / Bronze

0

Неизменяемая зона загрузки

Преобразование

0

Пакетное + потоковое

Слой выдачи / Gold

0

BI, ML, APIs

Управляющий контур

Оркестрация + качество + происхождение + стоимость

Этот контур активен всегда и определяет надёжность конвейера независимо от выбранного профиля.

Счётчики обработки

Принято: 0 | Записано: 0 | Преобразовано: 0 | Выдано: 0

Следите, чтобы скорость приёма, преобразования и выдачи данных не расходилась на длинных интервалах.

Чек-лист контрактов на данные

Версионирование схемы
Свежесть и полнота
Идемпотентный прогон

Связано

Observability & Monitoring Design

Как строить метрики, алерты и операционные инструкции для рабочих конвейеров данных.

Открыть главу

Надёжность и эксплуатация

  • Гарантия «ровно один раз» не всегда реалистична: проектируйте обработку как «как минимум один раз» плюс идемпотентные операции.
  • Для исторического пересчёта задавайте отдельный контур, чтобы не нарушать целевые показатели живого потока.
  • У каждого конвейера должны быть владелец, операционная инструкция и целевой уровень сервиса по свежести и полноте данных.
  • Храните контрольные точки и смещения в отказоустойчивом хранилище состояния.
  • Учитывайте контракты на данные между производителями и потребителями и версионируйте схемы.

Частые ошибки

Один гигантский граф зависимостей на всю компанию без доменных границ.

Скрытая бизнес-логика в SQL-скриптах без тестов и ревью кода.

Отсутствие наблюдаемости: есть только «задача упала», но нет сигналов о качестве данных.

Смешение пакетной и потоковой обработки без стратегии для опоздавших событий.

Непрозрачная стоимость: нет бюджетных защитных ограничений на вычисления и хранение.

Источники

Связанные главы

Чтобы отмечать прохождение, включи трекинг в Настройки