Skip to content

Логотип DataRentgen

Repo Status Docker image PyPI PyPI License PyPI Python Version Documentation Build Status Coverage pre-commit.ci

Что такое Data.Rentgen?

Data.Rentgen — это сервис отслеживания lineage (Data Motion Lineage), совместимый со спецификацией OpenLineage.

В настоящее время мы поддерживаем получение lineage из:

  • Apache Spark
  • Apache Airflow
  • Apache Hive
  • Apache Flink
  • dbt

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

Цели

  • Собирать события lineage, создаваемые клиентами и интеграциями OpenLineage.
  • Хранить события с детальностью до операций для большей точности (вместо детализации до задач, как в Marquez).
  • Предоставлять API для получения lineage как для случаев задача/запуск ↔ датасет, так и датасет ↔ датасет.

Возможности

  • Поддержка обработки больших объемов событий lineage с использованием Apache Kafka в качестве буфера событий.
  • Хранение данных в таблицах, разделенных по временным меткам событий, для ускорения построения графа lineage.
  • Граф lineage строится с пользовательскими временными границами (в отличие от Marquez, где граф строится только для последнего запуска задачи).
  • Граф lineage может строиться с различной степенью детализации. Например, объединение всех отдельных команд Spark в applicationId или applicationName Spark.
  • Поддержка lineage на уровне колонок.
  • Поддержка аутентификации.

Не цели

  • Это НЕ каталог данных. DataRentgen не отслеживает изменения схем датасетов, владельцев и т.д. Вместо этого используйте Datahub или OpenMetadata.
  • Статическое происхождение данных, такое как представление → таблица, не поддерживается.

Ограничения

  • OpenLineage имеет интеграции с Trino, Debezium и другими источниками.
  • В отличие от Marquez, DataRentgen анализирует только ограниченный набор фасетов, отправляемых OpenLineage, и не сохраняет пользовательские фасеты. Это может быть изменено в будущем.

Скриншоты

Граф lineage

Граф lineage на уровне наборов данных (dataset)

Граф lineage на уровне dataset

Граф lineage на уровне колонок наборов данных (dataset)

Граф lineage на уровне колонок dataset

Граф lineage на уровне заданий (Job)

Граф lineage на уровне Job

Граф lineage на уровне запусков Run

Граф lineage на уровне Run

Наборы данных (dataset)

Список наборов данных

Запуски (Run)

Список запусков (Run)

Приложение Spark

Детали приложения Spark

Запуск Spark

Детали запуска Spark

Команда Spark

Детали команды Spark

Запрос Hive

Детали запроса Hive

DagRun Airflow

Детали DagRun Airflow

TaskInstance Airflow

Детали TaskInstance Airflow