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

Обновлено: 1 мая 2026 г. в 19:30

Архитектура конвейеров данных: 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-скриптах без тестов и ревью кода.

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

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

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

Источники

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

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