FalkorDB: быстрая графовая база данных для знаниевых графов

FalkorDB — это сверхбыстрая графовая база данных, использующая GraphBLAS для представления разряженной смежной матрицы графа. Основная задача проекта — предоставить эффективное решение для создания и использования знаниевых графов, особенно для приложений с большими языковыми моделями (LLM).

Проект выделяется среди альтернатив своей производительностью и возможностью работы с многопользовательскими сценариями. Он нацелен на разработчиков, занимающихся генеративным AI, хранением данных агентов, облачной безопасностью и обнаружением мошенничества. Если тебе нужно высокопроизводительное решение для графовых данных, которое подходит для сложных задач, FalkorDB может оказаться полезным.

Реализован на Rust, FalkorDB поддерживает запуск через Docker. Имей в виду, что проект находится на ранней стадии, и может потребоваться регистрация для доступа к облачным сервисам. Используется лицензия Server Side Public License, что ограничивает коммерческое использование.

FalkorDB — это многоарендная графовая база данных, разработанная для обеспечения высокой производительности, особенно в контексте генеративного ИИ, хранения информации об агентах, облачной безопасности и обнаружения мошенничества. Она включает уникальные функции, такие как использование разреженных матриц для представления информационных связей и линейную алгебру для выполнения запросов, что позволяет достигать низкой задержки и высокой вычислительной эффективности.

Ключевые особенности

  • Разреженное представление матриц: Использует разреженные матрицы для оптимизации хранения и производительности.
  • Запросы с помощью линейной алгебры: Эффективное исполнение запросов через линейную алгебру.
  • Соответствие модели Property Graph: Поддерживает узлы и связи с атрибутами.
  • Поддержка OpenCypher: Совместима с языком запросов OpenCypher, включая проприетарные расширения для более продвинутых возможностей запроса.

Установка и запуск

Чтобы быстро попробовать FalkorDB, запусти экземпляр с помощью Docker:

docker run -p 6379:6379 -p 3000:3000 -it --rm -v ./data:/var/lib/falkordb/data falkordb/falkordb

После этого открой браузер и перейди по адресу http://localhost:3000.

Ты также можешь взаимодействовать с FalkorDB, используя любой из поддерживаемых клиентских библиотек.

Пример использования

Вот пример создания графа с помощью Python-клиента FalkorDB, который представляет собой набор гонщиков и команд мотоциклетной лиги MotoGP:

from falkordb import FalkorDB

# Подключение к FalkorDB
db = FalkorDB(host='localhost', port=6379)

# Создание графа 'MotoGP'
g = db.select_graph('MotoGP')
g.query("""CREATE (:Rider {name:'Valentino Rossi'})-[:rides]->(:Team {name:'Yamaha'}),
                  (:Rider {name:'Dani Pedrosa'})-[:rides]->(:Team {name:'Honda'}),
                  (:Rider {name:'Andrea Dovizioso'})-[:rides]->(:Team {name:'Ducati'})""")

# Запрос, кто представляет Yamaha?
res = g.query("""MATCH (r:Rider)-[:rides]->(t:Team)
                 WHERE t.name = 'Yamaha'
                 RETURN r.name""")

for row in res.result_set:
	print(row[0])

# Запрос, сколько гонщиков представляет команду Ducati?
res = g.query("""MATCH (r:Rider)-[:rides]->(t:Team {name:'Ducati'})
                 RETURN count(r)""")

print(res.result_set[0][0])

Ограничения

FalkorDB в первую очередь оптимизирована для работы с разреженными матрицами и может иметь ограничения на производительность при использовании с более плотными матрицами или в условиях, когда требуется высокая степень совместимости с другими архитектурами графовых баз данных. Кроме того, проект находится под лицензией Server Side Public License, что нужно учитывать при использовании и внесении изменений.

Документация и поддержка

Официальная документация доступна на сайте docs.falkordb.com. Сообщество также собрано на GitHub, где можно задавать вопросы и делиться идеями.

Открыть на GitHub: FalkorDB/FalkorDB →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте