Проект интегрирует графовую базу данных Neo4j в стек обработки данных, включающий Kafka, ClickHouse, dbt, Airflow и Metabase. Система обрабатывает данные о движении судов AIS: ClickHouse хранит исторические временные ряды, а Neo4j отвечает за текущее состояние графа, связи между объектами и топологию сети.
Данные поступают из источника в Kafka, откуда их параллельно забирают ClickHouse и коннектор Neo4j Sink для обновления сущностей в реальном времени. Neo4j используется как аналитический движок: библиотека Graph Data Science (GDS) запускает алгоритмы PageRank для оценки важности портов и Louvain для выявления сообществ.
Результаты графовых вычислений, включая метрики PageRank и идентификаторы сообществ, экспортируются из Neo4j обратно в ClickHouse. Это позволяет использовать графовые признаки в BI-системах, таких как Metabase, через dbt. Весь процесс обработки данных управляется с помощью Airflow.
Для обеспечения воспроизводимости используется кастомный Docker-образ, включающий Neo4j, плагины APOC, APOC Extended, GDS и драйвер ClickHouse JDBC. CI-пайплайн проекта включает автоматизированные smoke-тесты для интеграции Kafka и Neo4j, что гарантирует идентичность конфигураций в разных средах.






