各种图数据引擎的使用体会
最近摸了一遍市面上的图书库引擎,记录如下。
tinkerpop
很好很强大:
之前写过的三篇介绍文章可以看看:
agensgraph
基于postgresql的原生图数据引擎,支持图数据与关系型数据的混合查询。初步使用感觉非常好,准备下个项目用这个。之前写过的介绍文章:
redisgraph
基于Redis的图数据引擎:
用于高速缓存场景下场景下保存图数据:
有很强的使用价值。
neo4j
还没怎么看,有空准备试试它的sandbox:
但是要讲的是neo4j
定义了一种标准的图数据查询语言,叫做Cypher
:
这是一种通用的图数据查询语言(The Neo4j Cypher Manual v3.5),其中redisgraph
和agensgraph
都默认使用Cyper
语言进行图数据的查询。此外,虽然tinkerpop
默认有自己原生的查询语言,它针对Cypher
也有扩展支持(GitHub - opencypher/cypher-for-gremlin: Cypher for Gremlin adds Cypher support to any Gremlin graph database.):
GraphQL
graphql
不是一个图数据引擎,而是一个基于图论的webservice引擎。它可以很灵活地进行自定制的数据查询,可以说是对REST
的一个有效补充:
很多时候,我们需要灵活定制要通过webservice接口查询的数据,而自己些的rest接口可能没那么灵活,而使用graphql
的查询语句就很方便:
有空可以玩玩看github
提供的graphql
查询接口:
上面是最近摸的一些图数据相关的应用的总结。可以说图数据用于描述数据关系的时候,和关系型数据是完全不同的思维方式,应用场景也不同。图数据是一个非常重要的数据模型,图论在数据查询和分析领域的重要性必然会日益增长。可以重点学习和应用,提早布局。
- 上一篇 更新macos的bash版本
- 下一篇 tinkerpop的核心架构分析