你会在AWS上运行图数据库Titan吗?

日期: 2015-03-05 作者:Brian Tarbox翻译:张培颖 来源:TechTarget中国 英文

图数据库Titan运行在多种数据库之上的,这些数据库都是亚马逊Web服务支持的。很多人认为图数据库仅对于社交应用有用,比如Facebook或者LinkedIn。但是Titan也是亚马逊Kiva系统用来管理其零售仓库的主数据库。而且由于亚马逊仓库系统可能是全球最大的仓库系统,关于零售巨头如何使用这项技术值得一看,另外企业要看看如何用其同现有的AWS部署合作。

Titan在设计应用和仓库之外也发展很好。 除了社交应用之外,图数据库同很多应用可以工作。很多应用可以自然扩展使用图形类型的关系。比如,好多内嵌在社交应用中的推荐系统常常都是基于图形的系统。

图数据库由一系列结点和边界组成;每一个结点代表了一个……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

图数据库Titan运行在多种数据库之上的,这些数据库都是亚马逊Web服务支持的。很多人认为图数据库仅对于社交应用有用,比如Facebook或者LinkedIn。但是Titan也是亚马逊Kiva系统用来管理其零售仓库的主数据库。而且由于亚马逊仓库系统可能是全球最大的仓库系统,关于零售巨头如何使用这项技术值得一看,另外企业要看看如何用其同现有的AWS部署合作。Titan在设计应用和仓库之外也发展很好。

除了社交应用之外,图数据库同很多应用可以工作。很多应用可以自然扩展使用图形类型的关系。比如,好多内嵌在社交应用中的推荐系统常常都是基于图形的系统。图数据库由一系列结点和边界组成;每一个结点代表了一个实体,每一个边界代表了两个结点之间的一种连接或者关系。图数据库,尤其是Titan易于安装和集成。

Titan是一种基于NoSQL的数据库。NoSQL是一种概括性术语,泛指所有非关系型数据库。在这个范围之下有多个不同的模型,每一个都有自己的优点和缺点。Cassandra是另一种基于NoSQL的数据库,天生适用于时间序列数据,但是不适合处理关系结点网络的即席查询。在这样的实例中,图数据库却非常合适。

Titan组件和存储引擎

技术上,Titan并不是数据库;它是一个数据库之上的客户端库。它依赖于下面的存储引擎,比如Cassandra或者Hadoop,来存储其数据。它也依赖于索引引擎,比如Lucene、ElasticSearch或者Solar,来执行相关的查询。因此,只要你的对战中有这些技术,就可以在上面添加Titan;实际上你不需要部署另一个分布式数据库系统。这样做就减少了额外开支,可以加速新技术的应用。

Titan需要一个存储引擎,因为这是用来存储结点和边界的。Cassandra和HBase都运行在AWS上,而且支持大数据风格的扩展。亚马逊关系数据服务和Aurora是所缺少的两个存储引擎;然而,在最近的波士顿AWS Meetup上,很多AWS用户要求亚马逊添加Aurora来支持Titan。像ElasticSearch、Lucene或者Solr这样的索引后端进行常规操作,但是需要执行相关的查询。一旦下载了Titan,你会得到运行嵌入式存储引擎和索引后端的配置。

开发者可以在边界上增加属性和语义,比如定义指令和基数。属性可以让开发者搜索关系的具体类型;指令和基数允许在数据上执行域的语义。

开启Titan图数据库

对于计划在AWS上使用Titan的企业而言,开始在白板上画一个应用的主数据结构是自家的方式,然后使用Gremlin命令行工具在图表中创建结点和边界。从这一点上看,你可以用Gremlin查询界面,而且可能发现面向图形的方法简化了查询。

另一个选择是采用Titan的内置数据库,“The Graph of the Gods.”你可以下载一个数据库,里面有完整一套“god”和“关系”,然后在那个数据库闪刚运行查询。为了实现这一点,启动gremlin,然而运行gremlin> GraphOfTheGodsFactory.load(g)

你也可以运行所有类型的查询,比如:

saturn = g.V.has('name','saturn').next() to find a particular node or

saturn.in('father').in('father').name to find Saturn's grandchild (Hercules) or

hercules.out('father','mother')*.getVertexLabel() to find Hercules' parents.

翻译

张培颖
张培颖

云计算网站编辑

相关推荐