Первый стабильный выпуск графо-ориентированной СУБД Nebula Graph

Состоялся релиз открытой СУБД Nebula Graph 1.0.0, предназначенной для эффективного хранения крупных наборов связанных между собой данных, образующих граф, который может насчитывать миллиарды узлов и триллионы связей. Проект написан на языке С++ и распространяется под лицензией Apache 2.0. Клиентские библиотеки для обращения к СУБД подготовлены для языков Go, Python и Java. Развивающий СУБД стартап VESoft несколько дней назад получил первый транш инвестиций в размере 8 млн долларов.

В СУБД применяется распределённая архитектура без разделения ресурсов (shared-nothing), подразумевающая запуск независимых и самодостаточных процессов обработки запросов graphd и процессов хранения storaged. Оркестровкой перемещения данных и предоставлением мета-информации о графе занимаются мета-сервис. Для обеспечения согласованности данных используется протокол на базе алгоритма RAFT.

Основные особенности Nebula Graph:

  • Обеспечение безопасности через предоставление доступа только аутентифицированным пользователям, полномочия которых задаются через систему управления доступа на основе ролей (RBAC).
  • Возможность подключения разных типов движков хранения. Поддержка расширения языка формирования запросов новыми алгоритмами.
  • Обеспечение минимальных задержек при чтении или записи данных и поддержание высокой пропускной способности. При тестировании в кластере из одного узла graphd и трёх узлов storaged БД размером 632 GB, включающей гарф из 1.2 миллиарда вершин и 8.4 миллиарда рёбер задержки были на уровне нескольких миллисекунд, а пропускная способность составила до 140 тысяч запросов в секунду.
  • Линейная масштабируемость.
  • SQL-подобный язык запросов, достаточной мощный и простой для восприятия. Поддерживаются такие операции, как GO (двунаправленный обход вершин графа), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (использование результата от предыдущего запроса). Поддерживаются индексы и определяемые пользователем переменные.
  • Обеспечение высокой доступности и устойчивость к сбоям.
  • Поддержка создания снапшотов со срезом состояния БД для упрощения создания резервных копий.
  • Готовность для промышленного применения (уже используется в инфраструктуре компаний JD, Meituan и Xiaohongshu).
  • Возможность изменения схемы хранения и обновления данных без остановки или влияния на выполняемые операции.
  • Поддержка TTL для ограничения времени жизни данных.
  • Команды для управления настройками и хостами хранения.
  • Инструменты для управления работами и планированием запуска работ (из работ пока поддерживаются COMPACT и FLUSH).
  • Операции поиска полного пути и кратчайшего пути между заданными вершинами.
  • Интерфейс OLAP для интеграции со сторонними платформами аналитики.
  • Утилиты для импорта данных из файлов CSV или из Spark.
  • Экспорт метрик для мониторинга при помози Prometheus и Grafana.
  • Web-интерфейс Nebula Graph Studio для визуализации операций с графом, навигации по графу, проектирования схемы хранения и загрузки данных.

Источник: http://www.opennet.ru/opennews/art.shtml?num=53222