Learning Platform
Глоссарий Troubleshooting
Урок 04.01 · 20 мин
Начальный
LifecyclePipelineАрхитектура

Жизненный цикл данных

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

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


Шесть стадий

Жизненный цикл данных: 6 стадий
1. Source (источник)
2. Ingestion (извлечение)
3. Storage (хранение)
4. Processing (обработка)
5. Serving (подача)
6. Consumption (потребление)

Если ты увидишь на картинке любую data-архитектуру в любой компании, она впишется в эту схему. Меняются только инструменты на каждом слое.


1. Source — источник

Это не часть пайплайна, а исходная точка. Источники бывают:

  • Транзакционные БД — Postgres, MySQL, MongoDB. Здесь живут «горячие» данные приложения: заказы, пользователи, события.
  • API сторонних сервисов — Stripe (платежи), Salesforce (CRM), Google Ads (маркетинг).
  • Файлы — CSV, Excel из ERP, JSON-логи приложения.
  • Событийные потоки — Kafka, Kinesis, webhooks. Сообщения в реальном времени.
  • SaaS-сервисы — Zendesk (поддержка), Mixpanel (продуктовая аналитика).

DE обычно не контролирует источники — их пишут другие команды. Это политически важная точка: договариваться о схеме, частоте обновления, контракте.


2. Ingestion — извлечение

Задача: достать данные из источника и доставить в хранилище.

Главные вопросы при проектировании ingestion:

  • Batch или streaming? Раз в час одной пачкой или event-by-event в реальном времени?
  • Pull или push? DE-система забирает (pull, например Fivetran забирает из Salesforce) или источник отправляет (push, например webhook из Stripe).
  • Full или incremental? Каждый раз грузим всё или только изменения с прошлого раза?
  • Что делать с дубликатами и failures?

Инструменты: Fivetran, Airbyte, dlt, Debezium + Kafka, кастомный Python.

Подробнее — в следующем уроке 02-ingestion.


3. Storage — хранение

Куда положили данные после ingestion и где они живут долгосрочно.

Варианты:

  • OLTP-БД — обычно НЕ для долгосрочного хранения данных аналитики.
  • Data Warehouse (DWH) — Snowflake, BigQuery, Redshift. Структурированное хранение, оптимизированное под SQL-аналитику.
  • Data Lake — S3, GCS, Azure Blob. Хранение файлов в любом формате, дёшево.
  • Lakehouse — гибрид: файлы в S3 + слой метаданных (Iceberg, Delta).

В DWH обычно несколько слоёв:

Слои в DWH
Raw / Bronze слой
Staging / Silver слой
Marts / Gold слой

Слои называются по-разному: Bronze / Silver / Gold (Databricks Medallion) или Raw / Staging / Marts (dbt). Идея одна: от сырого к готовому.

Подробнее — урок 03-storage.


4. Processing — обработка

Что делаем с данными внутри storage:

  • Cleaning — убираем NULL, дубликаты, типизируем.
  • Conforming — приводим разные источники к единым названиям (одинаковый customer_id везде).
  • Aggregating — считаем суммы, средние, count.
  • Joining — объединяем таблицы.
  • Modeling — строим star schema, dimensions, facts.

Инструменты:

  • dbt — для SQL-трансформаций в DWH.
  • Spark / PySpark — для тяжёлых данных и custom-логики.
  • Pandas / Polars — для маленьких локальных задач.

Подробнее — урок 04-processing.


5. Serving — подача

Готовые данные нужно донести до потребителей. Каналы:

Каналы serving
BI-инструменты
ML feature store
Reverse ETL
Внутренние API

Подробнее — урок 05-serving.


6. Consumption — потребление

Финальная точка: человек или машина использует данные.

  • Аналитик смотрит дашборд, отвечает на вопрос продакта.
  • ML-модель предсказывает churn на основе фич.
  • Продакт-менеджер принимает решение «запускать ли A/B-тест».
  • Маркетолог запускает email-кампанию на сегмент клиентов.

DE формально не контролирует consumption. Но качество данных, скорость дашбордов и доступность — на нём.


Поперёк всех стадий — orchestration

Никакого хаоса быть не может. Над всеми стадиями работает оркестратор:

Orchestration над lifecycle
Orchestrator (Airflow / Dagster / Prefect)
Ingestion task
Transform task
DQ test task
Notify success

Оркестратор отвечает: «когда запускать ingestion», «что делать, если упало», «куда слать алерт».

Подробнее — модуль 11-orchestration-airflow. Углубление — airflow-course.

Airflow: жизненный цикл задачи от триггера до завершения

Поперёк всех стадий — data quality

И мониторинг качества. На каждой стадии — свои тесты:

  • На ingestion — проверка, что данные пришли вовремя и в нужном объёме.
  • На storage — schema validation, null-проверки.
  • На processing — бизнес-тесты («сумма заказов = сумма payments»).
  • На serving — SLA на дашборды.

Подробнее — модуль 15-data-quality.


Пример: типичный пайплайн e-commerce

Чтобы стадии стали конкретными:

Пайплайн e-commerce: lifecycle
Postgres orders
Stripe API
Google Ads
Fivetran (ingestion)
Snowflake RAW.orders, RAW.payments, RAW.ads
dbt models: staging -> marts
Looker dashboard
Продакт смотрит и решает

Это классический MDS-пайплайн. На каждой стадии — конкретный инструмент. Орестратор (Airflow) запускает Fivetran-sync, потом dbt run, потом dbt test, потом нотификация в Slack.


Что важно про lifecycle

TIP

Когда тебя спросят на собеседовании «спроектируй пайплайн для X» — отвечай по этим шести стадиям. Это структура, в которой не запутаешься. Не надо начинать с «возьмём Airflow» — начни с «где источник, как ingest, куда грузить, как трансформировать, как serve, кто consumer».


Попробуй сам

  1. Возьми любой data-pipeline из твоей собственной жизни (например, как Google Maps узнаёт о пробках). Разложи его по 6 стадиям. Где источник? Кто ingest? Где storage? Как serve?
  2. Открой архитектурную диаграмму любой компании (Spotify Engineering Blog, Airbnb Engineering). Найди на ней все 6 стадий. Заверь себя: «понимаю, что на каждой стадии происходит».
Проверка знанийKnowledge check
Почему важно различать стадии «storage» и «processing» в lifecycle, если в современных cloud DWH (Snowflake, BigQuery) трансформации происходят прямо внутри хранилища?
ОтветAnswer
Stages — это концептуальное разделение зон ответственности, а не физическое разделение систем. Storage отвечает за «где данные живут» (схема, формат, доступ, retention, безопасность), processing — за «что мы с ними делаем» (бизнес-логика, агрегации, моделирование). Даже когда они физически в одной системе (Snowflake), это разные слои абстракции и разные команды могут быть ответственны: storage и инфра — за Snowflake-конфигурацию, processing — за dbt-модели и бизнес-логику. Разделение помогает понять, где искать ошибку: проблема в «не пришли данные» (ingestion/storage) или в «неправильно посчитали» (processing). Кроме того, в Lakehouse и Big Data архитектурах storage и processing могут быть физически разделены (S3 + Spark), и единая ментальная модель работает в обоих случаях.

Проверьте понимание

Результат: 0 из 0
Концептуальный
Вопрос 1 из 5. Какая последовательность правильно описывает шесть стадий жизненного цикла данных?

Закончили урок?

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

Войдите чтобы оценить урок

Прогресс модуля
0 из 5