数据之间的自然关系是一个大金矿,能为企业用户提供洞察力数据库关系图。 不幸的是,传统数据库存储数据的方式打破了数据之间的关系,隐藏了有价值的洞察,所以尽管专注于数据分析方面的数据库很多,但真正有价值的洞察却很少被发现。
在保留数据关系这方面,图数据库可谓是天赋异禀,它从头开始设计数据,帮助用户从大型,复杂的相互关联的数据网络中理解和推断细微的洞察。图数据库由一系列结点和边界组成;每一个结点代表了一个实体,每一个边界代表了两个结点之间的一种连接或者关系,为了更详细的描述数据间的关系,结点和边界的属性也会存储在内。
为了更好地解释图形数据库的工作原理,下面我们使用IBM Graph来演示一下。
IBM Graph是什么
IBM Graph基于构建高性能图形应用程序的Apache TinkerPop框架,旨在通过完全托管的图形数据库服务启用强大的应用程序。 反过来,也为用户提供了简化的,Apache TinkerPop v3兼容的API和完整的Apache TinkerPop v3查询语言。 这种类型的数据库更易于利用结点,边和属性发现图中的无索引邻接关系。换句话说,图中的每个元素都直接连接到相邻的元素,从而不需要索引查找来遍历图。
通过基于图的NoSQL存储,IBM Graph可以更轻松地创建丰富的数据表示,无论是开发人员还是业务分析师,所以的团队成员都可以创建和绘制。
图形数据库(如IBM Graph)的灵活性和易用性意味着分析复杂关系不再是一项艰巨的任务。 图形数据库在新应用和服务中可以以指数级的高速率生成数据,可用来产生推荐结果、社交网络,位置或项目之间的有效路由、欺诈检测等。 它允许用户执行以下操作
1.分析事物之间的相互关系
2.分析数据以跟踪人,产品等之间的关系
3.处理大量原始数据并将结果生成为图形
4.处理复杂关系和动态模式的数据
5.在迭代开发周期中适应不断变化的业务需求
图数据库是如何工作的
索引模式IBM Graph可以使用模式来创建用于查询数据的索引。模式定义将要使用的属性的数据类型,并为属性创建索引。 在IBM Graph中查询访问的第一个属性需要索引,该模式最好事先完成(尽管后面可以附加),这样能够确保沿途引入的结点和边界可以按预期工作。
模式应定义图的属性,标签和索引。例如,如果分析Titter数据,则数据将被划分为人,标签和Teet,并且要确认它们之间的关系是entions, hashes, teets,还是favorites。 ,为了方便查询还要创建索引。
加载数据虽然批量上传是可用的,但Gremlin可以上传任意多的数据,无疑是将数据上传到服务器的最佳选择。,使用批量上传时,服务器会自动为图元素分配ID,从而防止单独批量上传的结点和边之间建立连接。,上传之后系统会做出相应的响应,告知用户Gremlin脚本中是否有错误,并返回脚本上的一个表达式。如若导入成功应该如图所示
查询数据IBM Graph提供了用于查询数据的各种API端点。 例#FormatImgID_2#如,/ vertices和/ edge端点可以通过属性或标签查询图形元素。/ Gremlin端点可以执行更复杂的查询,甚至可以在单个请求中执行多个查询。 下图是一个查示例,用于返回Titter用户Kamal最喜欢的teets
为了提高查询性能,避免Gremlin查询代码每次都被编译,可以采用绑定的方式。绑定允许用户保持脚本相同(缓存),每次改变调用的数据。例如,如果有查询,检索特定的一组离散数据点可以在绑定中分配名称。因为代码只需编译一次,所以绑定可以减少运行类似查询所需的时间。
值得注意的是这里没有直接访问Gremlin二进制协议。而是在与进行互动。用户在进行Curl请求或}
为IBM Graph配置应用程序
在创建IBM图形服务的实例时,应用程序与服务交互的必要详细信息要以JSON格式。
服务实例通常可以由一个或多个应用程序使用,并且可以通过IBM Bluemix或其外部访问。如果是Bluemix应用程序,则该服务可与用于创建它的凭据绑定,可以在VCAP_SERVICES环境变量中找到它。
为了确保应用程序可用,要进行以下配置
IBM图形端点,由apiURL值标识
服务实例用户名由用户名值标识
服务实例密码由密码值标识
在文档中,Curl示例使用$username,$passord和$apiURL引用服务凭据中的字段。
Bluemix 和 IBM Graph
IBM Graph是通过IBM Bluemix提供服务。IBM Bluemix是一种服务平台,支持多种编程语言和服务,构建,运行,部署和管理基于云的应用程序集成DevOps。 IBM Graph使用Bluemix服务有三个步骤
通过请求新的服务实例在Bluemix中创建服务实例,或者在命令行界面,使用IBM Graph作为服务名称,使用Standard作为服务计划。
(可选)标识将使用服务的应用程序。如果是Bluemix应用程序,则可以在创建服务实例时标识,如果是外部的,可以不绑定该服务。
在应用程序中编写与服务交互的代码。
学习像IBM Graph这样的新工具的最好方法是构建一个解决现实问题的应用程序。想构建一个图形数据库实例,其实有很多方向,它可用于社交图,欺诈检测和推荐引擎,并且这些应用程序的简化版本也可以基于现已存在的数据集进行构建。