什么是图数据库
在计算机科学中,图数据库(英语:graph database,GDB)是一个使用图结构、边和属性来表示和存储数据。图数据库是一种非关系型数据库,以解决当前关系行数据库的局限性。
那么什么是图呢?图是由节点和向量组成的关联结构,如下图所示:
图数据模型有三种:
- 超图:边的起始节点有多个,指向节点有多个
- 属性图:节点之间由边唯一指向,节点间为一对一关系,节点与边都可以设置属性、标签等
- 三元组(RDF):用于描述关联关系的语意表达,例如“Tom认识mark”,三元组就是利用“主语”、“谓语”、“宾语”的形式来表达关联关系。三元组的表示准信W3C标准
图数据库的优点
- 使用图(或者网)的方式来表达现实世界的关系很直接、自然,易于建模
- 图数据库可以很高效的插入大量数据
- 图数据库可以很高效的查询关联数据
- 图数据库提供了针对图检索的查询语言,比如Gremlin、Cypher等图数据库语言
- 图数据库提供了专业的分析算法、工具,比如ShortestPath、PageRank、PersonalRank、Louvain等等
图数据库的可能用途
- 知识图谱
图数据库的关联特性天生的适合知识图谱的建设,在存储方面图数据库提供了灵活的设计模式,支持实时存储。在查询方面图数据库提供了关系行数据库无法提供的高效关联查询。
- 金融领域
通过建立账户(客户)的关系图,根据其社会关系、交易情况,分析客户的还款能力、还款意愿、抗风险能力等,提升金融行业小贷授信、信贷审核、贷后追踪等风控能力,并根据资金交易图谱实现反洗钱、反欺诈等系统。
- 社交领域
人与人在线上和线下的联系天然形成了一张图,汇集海量的关系数据后,能够做社区发现、舆论追踪、用户推荐等丰富的应用场景。
- 政企领域
在物联网时代,图模型通过构人、位置、事件、物的关系图,实现智能交通、道路规划、平安城市、钓鱼网站识别,惠及民生。
- 工业领域
图模型强大的表达力对复杂且快速变化的事物很强适性,在工业领域来管理复杂且快速变化的库存、供应链关系,并推动创新,提供智能制造的解决方案。
- 医疗领域
根据病人的病情特征、电子病历、历史用药、药物成分、临床试验、保险情况等多维数据绘制以用户为中心的图数据,从而实现智能诊断,提高诊断效率和准确性,共享医疗资源。
- 零售领域
通过整合用户浏览及购买数据,分析“哪些用户购买了该商品”以及“购买A商品的用户也购买了B商品”等多维数据,实现商品智能推荐,给买家更好的购物体验。
- 电信领域
人与人的通信是一个非常强的联系,通信的时间和频率则代表了这种联系的强弱。电信运营商在通信图上进行拓展骚扰电话阻断、经营分析等业务。除此之外,电信设备也可以使用图模型进行管理。
- 军工领域
通过情报网络构建事物的轨迹信息,覆盖并跟踪份子。同时可以利用图模型对复杂军工系统的研发、生产进行全生命周期数据管理。
主流图数据库对比
详细的数据库排名可以参考DB-Engines专业机构排名[3]
详细的数据库测评可以参考[4]或者进入各图数据库官网查看
总结一下:
- Neo4j
分为社区版和商业版,两者最大的区别是社区版不支持集群并对性能有阉割,但neo4j是目前最成熟和老牌的图数据库在稳定性、功能、支持语言等方面比较完备。
- ArangoDB
分为企业版和商业版,两者均支持集群,但存储后端适配单一并不支持索引后端,不支持多图管理
- OrientDB
与ArangoDB相差不大
- JanusGraph
完全开源,排名仅次于Neo4j,在处理性能上要优于Neo4j,支持千亿级节点查询,支持集群,由linux基金会负责维护,支持多图管理,支持多存储后端,支持多索引后端。
- HugeGraph
由百度负责开发和维护,在整体性能和功能上与JanusGraph不相上下,两者均是基于阿帕奇的图计算框架Tinkerpop3进行开发,对中文地区相对友好很多。分为商业版和社区版。
参考资料:
[1]https://zhuanlan.zhihu.com/p/144469165
[2]https://zhuanlan.zhihu.com/p/114834574
[3]https://db-engines.com/en/ranking
[4]https://blog.csdn.net/weixin_43018183/article/details/96101194
[5]https://blog.csdn.net/hellohiworld/article/details/104824764
[6]https://zhuanlan.zhihu.com/p/50171330
版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接,感谢各位看官!!!
本文出自:monkeyGeek
座右铭:生于忧患,死于安乐
欢迎志同道合的朋友一起交流、探讨!
