MLOps Path

9.3.2 · блок 9

Lineage: OpenLineage

Lineage: OpenLineage

Зачем это нужно

После инцидента нужно быстро ответить: какие данные попали в модель, какие job их преобразовали и какие модели затронуты изменением таблицы. Lineage делает эту цепочку машиночитаемой, а не восстановленной из переписки.

Основные идеи

Lineage — происхождение и зависимости данных: inputs → job/run → outputs. Это отличается от версии: версия говорит «какой объект», lineage — «как он получен».

OpenLineage определяет открытый объектный формат событий. Основные сущности:

| Сущность | Смысл |

|---|---|

| Dataset | таблица, файл, topic или другой набор данных |

| Job | логическая задача преобразования |

| Run | конкретный запуск job |

Marquez — один из сервисов, который принимает и показывает OpenLineage-события. Сам стандарт не привязывает вас к одной витрине.

Граница детализации. Не нужно отправлять полный DataFrame или PII. Достаточно идентификаторов dataset, URI, schema/version, job name, run id и статуса.

Как это выглядит на практике

Train job читает s3://ml/churn/features/v3, создаёт models/churn/v12 и посылает событие: input dataset, job train-churn, run UUID, output artifact, commit SHA. Когда schema features/v3 меняется, граф показывает все training runs и модели, которые нужно проверить.

Lineage не заменяет registry: registry хранит статус, владельца и approval модели; lineage связывает её с входами и процессом выпуска.

Что сделать после занятия

Официальные материалы

Открыть интерактивную версию