我们熟悉的关系型数据库如mysql,oracle等,不过名不副实,Mysql等并不适合存储或查询复杂关系。而图数据库,当然也不是存图片的。
图什么是-What?
形式上,图是点和边的组合;术语上,图是「一些节点」和「关联这些节点的联系」的组合。
图广泛存在于世界之中,从人与人之间的联系、工厂与消费者之间的联系到电话与数据中心网络节点之间的关系、基因和蛋白质之间的关联,都会涉及大量的高度关联数据。这些数据构成了庞大的图,图数据库就是呈现和查询这些关联的做好的方式。
图就是世界的广泛联系。
带标签的属性图(labeled property graph)是目前最流行的图模型形式。带标签的属性图有几个特点:
- 它包含节点和联系
- 节点上有属性,如年龄、性别、学历、情感状态等。
- 节点上有一个多个标签,比如动漫、科技、美食等。
- 联系有名字和方向,并且总有一个开始节点和结束节点。
- 联系也有属性,比如关注、、跑男团等。
图数据库的发展趋势-When?
从2013年开始,图数据库(neo4j为例)和大数据(Hive) 都开始进入增长阶段,相对来说,neo4j的增长趋势更为强烈;到了2016年,二者都开始进入稳定期。可见,图数据库的应用领域其实是非常可观的。
比起传统的信息存储和组织模式,图数据库能够很清晰揭示复杂的模式,尤其在错综复杂的社交,物流,金融风控行业效果更为明显。
百花齐放的图数据库,有Operational 图数据库、RDF图数据库、多模式图数据、分析及大图数据库,图数据库的关注度越来越多,并且大都是有持续在更新。
图数据库-Why?
随着社交、电商、金融、零售、物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系网,传统数据库很难处理关系运算。大数据行业需要处理的数据之间的关系随数据量呈几何级数增长,亟需一种支持海量复杂数据关系运算的数据库,图数据库应运而生。
生活就是一张大网,不是吗?林林总总错综复杂的关系就是一张超大图。用图数据库表示这些关系数据简直是天经地义,是数字仿生学。
世界上很多著名的公司都在使用图数据库。比如:
- 社交领域:Facebook, Twitter,Linkedin用它来管理社交关系,实现好友推荐
- 零售领域:eBay,沃尔玛使用它实现商品实时推荐,给买家更好的购物体验
- 金融领域:摩根大通,花旗和瑞银等银行在用图数据库做风控处理
- 汽车制造领域:沃尔沃,戴姆勒和丰田等顶级汽车制造商依靠图数据库推动创新制造解决方案
- 电信领域:Verizon, Orange和AT&T 等电信公司依靠图数据库来管理网络,控制访问并支持客户360
- 酒店领域:万豪和雅高酒店等顶级酒店公司依使用图数据库来管理复杂且快速变化的库存
学过数据结构这么课程的同学脑海中应该或多或少有图
的概念。
图由两个元素组成:节点
和关系
。
图数据库(Graph database)并非指存储图片的数据库,而是以图这种数据结构存储和查询数据。
根据存储和处理模型不同,市面上图数据库也有一些区分。
比如:
Neo4J就是属于原生图数据库,它使用的后端存储是专门为Neo4J这种图数据库定制和优化的,理论上说能更有利于发挥图数据库的性能。
而JanusGraph不是原生图数据库,而将数据存储在其他系统中,比如HBase。