Data Flow и Data Lineage
Введение
Когда дашборд показывает неправильную выручку, первый вопрос — «откуда пришли эти данные?». Если невозможно отследить путь данных от источника до отчёта, диагностика превращается в детективное расследование. Data Lineage (происхождение данных) решает эту проблему: визуализирует и отслеживает путь данных через все трансформации, отвечая на вопросы «откуда», «как трансформировались» и «кто использует».
Data Flow: маппинг потоков данных
Data Flow — это карта движения данных между системами. В отличие от lineage, data flow фокусируется на физическом перемещении: какие системы обмениваются данными, с какой частотой, по какому протоколу.
Типичный data flow для e-commerce:
Каждый переход — это точка, где данные могут быть потеряны, дублированы, задержаны или повреждены. Data flow mapping выявляет эти риски.
Data Lineage: граф происхождения
Data Lineage (происхождение данных) — визуализация и отслеживание пути данных от источника до потребителя через все трансформации. Data Lineage отвечает на три вопроса:
- Откуда пришли данные? (upstream lineage)
- Как они трансформировались? (transformation lineage)
- Кто их использует? (downstream lineage)
Уровни детализации lineage
| Уровень | Детализация | Пример |
|---|---|---|
| Table-level | Связи между таблицами | orders -> stg_orders -> fct_orders |
| Column-level | Связи между колонками | orders.total -> fct_orders.revenue |
| Row-level | Связи на уровне записей | Заказ #12345 -> строка в отчёте CFO |
Column-level lineage — минимальный стандарт для организаций с governance-программой. Row-level lineage нужен для compliance (GDPR right to erasure, 152-ФЗ запросы на удаление).
Проверка знанийПочему column-level lineage важнее table-level для governance?
Impact Analysis: анализ влияния
Impact Analysis (анализ влияния) — процесс оценки последствий изменений в данных, схемах или процессах на downstream системы. Использует Data Lineage для определения всех затронутых объектов.
Типичные триггеры impact analysis:
| Изменение | Вопрос | Lineage помогает |
|---|---|---|
| Удаление колонки | Что сломается? | Downstream зависимости колонки |
| Изменение типа данных | Где нужна миграция? | Все трансформации, использующие эту колонку |
| Добавление PII | Где нужна маскировка? | Все downstream-системы, получающие эти данные |
| Вывод источника из эксплуатации | Какие пайплайны затронуты? | Все downstream от этого source |
Автоматизация lineage
Ручное ведение lineage нереалистично для организаций с десятками пайплайнов. Современные подходы:
-
dbt lineage — dbt автоматически строит DAG зависимостей между моделями. Column-level lineage доступен через dbt docs.
-
OpenLineage — открытый стандарт для сбора lineage из различных инструментов (Airflow, Spark, dbt). Инструменты вроде Marquez реализуют этот стандарт.
-
Каталоги данных — OpenMetadata, DataHub автоматически собирают lineage из подключённых источников.
Сценарий: DataTech Solutions
Сценарий: ДатаТех Солюшенз
В DataTech нет lineage-трекинга. Последствия:
- Data Engineer Мария изменила тип колонки
orders.discount_amountсintegerнаdecimal. Через 2 дня CFO обнаружил, что 5 дашбордов показывают «0» вместо скидок — Airflow DAG’и упали без алертов.- При подготовке к аудиту 152-ФЗ юрист спросил: «Где хранятся персональные данные клиентов?». Ответ потребовал 2 недели ручного аудита.
- Три dbt-модели вычисляют «дневную выручку» разными формулами. Без column-level lineage невозможно понять, какая формула правильная.
DataTech использует dbt Core 1.7, который поддерживает автоматический lineage. Но 120 dbt-моделей не имеют тестов и описаний — lineage есть, но он бесполезен без метаданных.
Первые шаги для DataTech:
- Включить
dbt docs generateдля автоматического lineage dbt-моделей - Добавить описания (
description) к ключевым моделям - Внедрить column-level lineage для таблиц с PII
- Настроить алерты на поломку downstream-зависимостей
Подробнее о CDC и Data Lineage: CDC и Data Lineage
Проверка знанийDataTech хочет реализовать lineage. Почему начинать с column-level lineage для PII-колонок -- правильная приоритизация?
Итоги
- Data Flow — карта физического перемещения данных между системами
- Data Lineage (происхождение данных) — граф трансформаций от источника до потребителя
- Три уровня lineage: table-level, column-level (минимальный стандарт), row-level (для compliance)
- Impact Analysis (анализ влияния) использует lineage для оценки последствий изменений
- Автоматизация lineage: dbt, OpenLineage, каталоги данных
- DataTech: отсутствие lineage привело к 2-дневным outage’ам и 2-недельным аудитам
В следующем уроке мы рассмотрим naming conventions и документирование — как единые стандарты именования и data dictionary превращают хаотичную схему в управляемый актив.
Проверьте понимание
Закончили урок?
Отметьте его как пройденный, чтобы отслеживать свой прогресс
Войдите чтобы оценить урок