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 →
RepoRadar