Архитектура
Компоненты
Data.Rentgen построен с использованием следующих компонентов:
- Клиенты OpenLineage и интеграции со сторонними модулями (например, Apache Spark, Apache Airflow).
- message-broker, получающий события в формате JSON.
- message-consumer, обрабатывающий JSON-сообщения.
- database для хранения обработанных и очищенных данных.
- server, предоставляющий данные из базы данных.
- frontend, обращающийся к REST API для навигации по созданным сущностям и графу линейности.
- http2kafka (опционально), прокси для отправки событий OpenLineage в Kafka через HTTP API.
Диаграмма архитектуры
stateDiagram-v2
direction LR
state "OpenLineage" as OpenLineage {
state "OpenLineage Spark" as SPARK
state "OpenLineage Airflow" as AIRFLOW
state "OpenLineage Hive" as HIVE
state "OpenLineage Flink" as FLINK
state "OpenLineage dbt" as DBT
state "OpenLineage other" as OTHER
state "OpenLineage KafkaTransport" as KAFKA_TRANSPORT
state "OpenLineage HttpTransport" as HTTP_TRANSPORT
SPARK --> KAFKA_TRANSPORT
AIRFLOW --> KAFKA_TRANSPORT
HIVE --> KAFKA_TRANSPORT
FLINK --> KAFKA_TRANSPORT
DBT --> KAFKA_TRANSPORT
KAFKA_TRANSPORT --> KAFKA
OTHER --> HTTP_TRANSPORT
HTTP_TRANSPORT --> HTTP2KAFKA
}
state User
USER --> FRONTEND
state "Data.Rentgen" as Data.Rentgen {
state "Kafka" as KAFKA
state "Message consumer" as CONSUMER
state "PostgreSQL" as DB
state "REST API server" as API
state "Frontend" as FRONTEND
state "HTTP2Kafka" as HTTP2KAFKA
HTTP2KAFKA --> KAFKA
KAFKA --> CONSUMER
CONSUMER --> DB
API --> DB
FRONTEND --> API
}