查看原文
其他

为什么开源图形数据库大行其道?

2016-07-14 Susan Hall 云头条

开源图形数据库最先被Facebook和Twitter等社交网络所使用,如今正得到主流市场的采用。

 

图形数据库使用图形结构用于语义查询,由于Facebook和Twitter等社交网络而备受瞩目。不过,如今它们的用途绝不仅仅是连接亲朋好友之间的关系。


开源图形数据库


由于许多公司在数据管理和存储方面日益避开专有软件和厂商锁定,开源图形数据库被证明特别受欢迎。开源图形数据库还为软件开发人员赋予了更大的灵活性,更容易控制前期成本。


各大社交网络都在使用开源图形数据库。


  • Twitter开发了开源FlockDB(https://github.com/twitter/flockdb),用于管理宽而浅的网络图形。

  • 谷歌的Cayley(https://github.com/cayleygraph/cayley)其灵感源自Freebase(https://en.wikipedia.org/wiki/Freebase)背后的图形数据库,谷歌搜索引擎背后的知识库:知识图(KnowledgeGraph)也是如此。

  • Facebook使用的ApacheGiraph(http://giraph.apache.org)是为高扩展性构建的。


Sourcegraph在产品中使用大规模开源图形数据库,这是一种面向开源开发代码的搜索引擎。联合创始人兼首席执行官奎因·斯莱克(QuinnSlack)说:“还记得谷歌之前的AltaVista吗?AltaVista很好,但是谷歌好得多,因为它实际上明白互联网上所有网页是如何链接起来的。”


我们在本文中将介绍:


  • 图形数据库能够做什么?

  • 图形数据库是如何工作的?为何它比关系数据库或NoSQL数据库更适合某些数据任务?

  • 正在使用图形数据库的一些公司,以及它们在如何使用?

  • 图形数据库最常见的使用场合

  • 图形数据库的优缺点

  • 图形数据库市场规模和几家最主要的厂商

  • 像甲骨文和微软这些公司在如何应对图形数据库趋势?

  • 开源ApacheTinkerPop项目在如何影响图形数据库的采用?


图形数据库能够做什么?


图形数据库不仅可以找到不同数据点之间的关系,还能排名那些关系的相关性或权重。


斯蒂芬·马利特(StephenMallette)是ApacheTinkerPop开源图形数据库项目的副总裁,兼DataStax公司的软件工程师,这家公司专门开发企业版的NoSQLCassandra数据库,并提供商业支持。他说:“图形数据库代表了一种自然的数据建模方式,因为它们往往让数据可以以我们在实际环境下思考和推理的方式直接存储起来。”


他说:“眼下,图形数据库的好处已从惠及创新者和早期采用者开始惠及主流用户。”


图形数据库是如何工作的?


关系数据库在找出关系方面表现不佳。它们需要一开始对数据建模,为此要通过外键来连接表。而更多的连接操作意味着性能大幅下降,这让它们尤其不适合在线应用系统。这还无法灵活地针对业务需求进行变化。


根据Neo4j的几位主管编写的一份电子书(https://neo4j.com/graph-databases-book/)声称,大多数NoSQL数据库也无法顺畅地连接断开连接的数据和图形,无论是键值数据库、文档数据库还是列式数据库,都是如此。这家公司在2010年推出了开源图形数据库,与产品基于开源技术的许多厂商一样,它现在也提供社区版数据库和企业版数据库。


图形数据库


虽说这可以做到,但随着许多公司的运营规模日益庞大,只会变得越来越难。与此同时,TwitterFacebook在处理数十亿个关系。


图形数据库将连接的数据作为连接的数据存储起来,而不是要求应用程序利用断开连接的数据创建一个网络。


它们将数据存储在单个节点中,这些节点代表名为顶点(vertex)的实体:人员、产品或一个数据,节点之间的不同关系称为边(edge)。一个节点可能拥有产品名称,另一个节点可能拥有厂商名称,它们之间的关系表明这家厂商供应这个产品。


一些定义要求无索引邻接,这意味着连接的节点物理“指向”数据库中的另一节点。


Neo4J的作者们在电子书中指出,因而,“比如说,我们可以要求图形数据库为我们找出爱喝浓咖啡但不爱吃球芽甘蓝,并且住在某个小区的人喜爱的所有口味的冰淇淋。”


他们写道:“无论我们想了解客户之间的关系,电话或数据中心网络中元素之间的关系,娱乐制作者和消费者之间的关系,还是基因和蛋白质之间的关系,能够了解并分析高度连接的数据组成的庞大图形,将是确定哪些公司在未来十年超越竞争对手的关键。”


谁在使用图形数据库?


当然,不是只有社交网络在使用图形数据库。下面是另外几个著名的例子,表明图形数据库在扮演重要角色:


  • 图形数据库技术帮助国际调查记者联盟连接巴拿马文件中的关系,包括巴拿马律师事务所莫萨克丰塞卡(MossackFonseca)泄露的关于隐秘境外账户的2.6TB数据。那些关系包括:地址相同但没有结婚的夫妻、用于洗钱的银行账户,以及帐户上未必指名的不同人员之间的电子邮件。

  • 纽约的蒙特菲奥医疗中心(MontefioreMedical Center)构建了基于图形数据库技术的数据湖,并与梅奥诊所合作开发了一种预测算法,利用众多身体指标,预测患者何时可能在48小时内会有严重的不良反应。

  • 沃尔玛使用图形数据库技术,为其网上零售业务向客户推荐产品。


何时使用图形数据库?


图形数据库无法解决每一个业务问题。在因深入钻研医疗分析技术而著称的GeisingerHealth System,首席数据官尼古拉斯·马尔科(NicholasMarko)博士表示,标准的商业智能工具足以满足该企业组织80%的要求。


图形数据库最合理的使用场合就是这种场合:了解数据关系至关重要,需要性能、灵活性和更低的延迟压倒聚合批处理的功能。


比如说,检测信用卡诈骗需要将持卡购物与持卡人的正常购物模式进行比较。在这种情况下,实时标记可疑活动的功能就变得至关重要。


DataStax的马利特说:“我认为,数据很复杂,数据里面的关系又具有重要价值时,你通常需要考虑图形数据库。”


 “图形数据库在这种情形下会大放异彩,因为数据建模很直观,关系被认为是‘一等公民’。”


他补充道:“由于关系是一等公民,图形中的实体(域对象)变得连接和遍历任意深度很直观简单,从而允许对数据进行复杂的推理,而换成关系数据库或其他NoSQL数据库,原本很难进行这种操作。”


图形数据库的优缺点


图形数据库的优点包括:


  • 性能。在关系数据库中,查询性能因表连接数量增加而迅速下降,而在图形数据库中,数据集变大后,性能基本上保持不变。

  • 灵活性。可以添加新类型的关系、节点、标签和子图形,并不干扰现有的查询和应用程序。

  • 敏捷性。图形数据模型的无模式(schema-free)性质意味着,数据模型可以与迭代软件交付实践一同发展。


用户在图形数据库上面临的问题包括分区和密度。在分布式环境下,庞大图形分布在多机器计算集群上。市场领导者满足限制跨机器通信这一要求的办法就是,把经常一起检索的信息放在同一个机器上。


而如果客户在一家购物网站购买了许多产品,这就构成了一种密集图形,其中大多数对当前查询来说可能是无关信息。数据库需要针对每一个独特的查询,进行非常专门的过滤。


马利特表示,图形数据库并不擅长迅速执行全局聚合,不过开源TinkerPop有助于缓解这一问题。


他表示,举例说,“仅仅计数图形中的所有顶点就需要迭代处理图形中的每个顶点。而在有数十亿个顶点的图形中,这可能要花很长时间,如果你执行的不仅仅是计数――先找到所有‘产品’顶点,然后遍历‘销售’顶点以计算‘月销量’,那么这种操作的开销可能会变得更加庞大。”


马利特表示,将图形数据库用于有那种类型需求的应用,“会带来一个弱点,你一定要有所留意。这个问题并非不可克服,但如果你的大多数应用需要这种类型的实时分析,你可能需要重新考虑图形模型,或者在一些情况下,需要考虑其他的数据存储方法。”


图形数据库市场


虽然IDC预计到2017年,整个数据库市场的规模将达到500亿美元,但图形数据库在其中仅占很小的份额。弗雷斯特研究公司预测,到2017年,25%的企业会使用图形数据库。


作为最流行的图形数据库,Neo4j在整个DB-Engines排行榜上名列第21位。OrientDB这个开源文档/图形混合数据库是第二流行的图形数据库,其次是Titan,这个开源项目用在DataStax及其他产品中。


Neo4j最近发布了版本3.0,其架构总体上主要专注于一种新的数据存储系统;而图形原生存储是这个市场的另一个问题。


大玩家和图形数据库趋势


各大数据库玩家、甚至是以专有软件闻名的那些厂商已经发布或正在发布图形数据库功能。


微软首席执行官萨蒂亚·纳德拉(SatyaNadella)近日提到,LinkedIn的图形技术是促使微软斥资262亿美元收购的最吸引人的地方之一。微软也一直在开发图形引擎(GraphEngine),这是一种分布式内存中大图形处理引擎。


今年3月份,甲骨文发布了并行图形分析(PGX)V1.2,采用并行机制来提高性能,还发布了一种新的查询语言用于图形模式匹配,一种新的算法和API,帮助你在图形的基础上构建推荐引擎。


云计算市场的领导者亚马逊网络服务的NoSQLDynamoDB为图形提供了一款Titan插件。


ApacheTinkerPop


DataStax和IBM最近宣布了基于TinkerPop的商用产品,今年5月份,TinkerPop成为了Apache软件基金会旗下的一个顶级项目。


TinkerPop是一种开源图形计算框架,既可用于实时事务图形数据库(OLTP),又可用于批处理分析图形处理系统(OLAP)。它可以用于处理单一机器上的小图形,也可以处理需要分布式环境的庞大图形。


该项目专注于为图形数据库建立行业标准,包括一种名为Gremlin的标准语言。与此同时,Gremlin遍历机器旨在跨语言工作。


马利特表示,TinkerPop可能会有助于用户日益关注图形数据库。


他说:“如果没有像TinkerPop这样的项目,图形数据库世界的碎片化现象会相当严重。每个图形系统都有自己的API,用自己的方法来进行查询,没有用于集成的简单方法。那种碎片化看起来就像一种风险很大的技术选择。设想一下:要是没有JDBC[用于访问数据库的JavaAPI],关系数据库市场会是什么样子。TinkerPop缓解了这个风险,因为它统一了用于与图形系统交互的API,那样就有可能避免厂商锁定,并且为所有图形降低了学习难度。”


相关阅读:

Gartner发布2016年数据仓库和数据管理解决方案魔力象限

16款开源大数据数据库:总有一个适合你

开源安全漏洞数据库 OSVDB 正式关闭

排名前十的SQL和NoSQL数据库

Gartner:微软、甲骨文和AWS是三大数据库领导厂商

新兴的NoSQL数据库Cassandra,你知之几何?

究竟哪种NoSQL数据库适合你?

SQL vs NoSQL:你需要知道什么?


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存