和零售巨头学如何在AWS上运行图数据库Titan
图数据库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)
你也可以运行所有类型的查询,比如: