Azure Cosmos DB 中的 Gremlin API 简介

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:Microsoft Azure网络

小提示:您能找到这篇{Azure Cosmos DB 中的 Gremlin API 简介}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的Azure Cosmos DB 中的 Gremlin API 简介内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

< ">Azure Cosmos DB是Azure针对任务关键型应用程序提供的多区域分布式多模型数据库服务。它是多模型数据库并支持文档、键-值、图和列系列数据模型。Azure Cosmos DB通过Gremlin API在为任何规模设计的完全托管数据库服务中提供图形数据库服务。

< ">本文提供Azure Cosmos DB Gremlin API概述,并说明如何使用它们存储具有数十亿顶点和边缘的大量图形。可在毫秒级延迟的情况下查询图形,并轻松改进图结构。Azure Cosmos DB的Gremlin API是基于Apache TinkerPop(一种图形计算框架)构建的。Azure Cosmos DB中的Gremlin API使用Gremlin查询语言。

< ">Azure Cosmos DB的Gremlin API将强大的图形数据库算法与高度可扩展的托管基础结构相结合,为缺乏灵活性和关系型方法的大多数常见数据问题提供独特、灵活的解决方案。

< ">备注

< ">无服务器容量模式现在在Azure Cosmos DB的Gremlin API上可用。

< ">Azure Cosmos DB的Gremlin API的功能

< ">Azure Cosmos DB是一个完全托管的图形数据库,提供多区域分发、存储和吞吐量弹性缩放、自动索引编制与查询、可优化的一致性级别,并支持TinkerPop标准。

< ">以下是Azure Cosmos DB Gremlin API提供的差异化功能:

< ">可灵活缩放吞吐量和存储

< ">现实世界中的图形需要扩展到超越单个服务器的容量。Azure Cosmos DB支持横向可缩放的图形数据库,就存储和预配吞吐量而言,这些数据库的大小几乎无限制。随着图形数据库规模的增长,数据将使用图形分区自动分发。

< ">多区域复制

< ">Azure Cosmos DB可以自动将图形数据复制到中国任何Azure区域。多区域复制简化了需要多区域访问数据的应用程序的开发过程。Azure Cosmos DB除了最大限度地减少中国任何地方的读写延迟外,还提供了一种自动区域故障转移机制,可以在某区域服务中断(这种情况很少见)的情况下确保应用程序持续可用。

< ">使用最广泛采用的图形查询标准进行快速查询和遍历

< ">存储异类顶点和边缘,并通过熟悉的Gremlin语法对其进行查询。Gremlin是一种命令式函数查询语言,提供了丰富的接口来实现常见的图形算法。

< ">Azure Cosmos DB支持丰富的实时查询和遍历,而无需指定架构提示、二级索引或视图。在通过使用Gremlin查询图形中了解详细信息。

< ">完全托管的图形数据库

< ">通过Azure Cosmos DB无需管理数据库和计算机资源。大多数现有的图形数据库平台受其基础结构的限制,并且通常需要进行高度维护才能确保其运营。

< ">作为一种完全托管的服务,Cosmos DB无需管理虚拟机、更新运行时软件、管理分片或复制或者处理复杂的数据层升级。每个图形加多宝对王老吉品牌门进行会自动备份,以防受到区域故障的影响。这使得开发人员能够专注于提供应用程序价值,而不是专注于操作和管理其图形数据库。

< ">自动编制索引

< ">默认情况下,Azure Cosmos DB自动为图形中的节点(也称为顶点)和边缘包含的所有属性编制索引,无需任何架构或创建二级索引。深入了解Azure Cosmos DB中的索引。

< ">与Apache TinkerPop兼容

< ">Azure Cosmos DB支持开放源代码Apache TinkerPop标准。Tinkerpop标准拥有丰富的应用程序和库生态系统,它们可以轻松地与Azure Cosmos DB的Gremlin API集成。

< ">可优化的一致性级别

< ">Azure Cosmos DB提供了五个定义明确的一致性级别,以实现应用程序的一致性和性能之间的适当平衡。对于查询和读取操作,Azure Cosmos DB提供五种不同的一致性级别:强、有限过时、会话、一致前缀和最终。通过这些细化的妥善定义的一致性级别,可以在一致性、可用性与延迟之间实现合理的平衡。有关详细信息,请参阅Azure Cosmos DB中的可优化数据一致性级别。

< ">使用Gremlin API的场景

< ">以下是Azure Cosmos DB的图形支持可能有用的一些场景:

< ">社交网络/客户365

< ">通过合并有关客户及其与其他人的互动的数据,可以开发个性化的体验、预测客户行为,或者将某些人员与其他具有类似兴趣的人员相连接。使用Azure Cosmos DB可以管理社交网络以及跟踪客户的喜好与数据。

< ">推荐引擎

< ">此场合通常用于零售行业。通过合并有关产品、用户和用户互动(例如购买、浏览某件商品或者为商品评分)的信息,可以生成自定义的推荐内容。Azure Cosmos DB的低延迟、弹性缩放和原生图形支持是这些场景的理想选择。

< ">地理空间

< ">电信、物流和旅行规划行业中的许多应用程序需要在某个区域中查找兴趣点,或者查找两个地点之间最短/最佳的路线。Azure Cosmos DB天生就很适合解决这些问题。

< ">物联网

< ">当IoT设备之间的网络和连接建模为图形时,可以更好地理解设备和资产的状态。还可以了解网络一个部分的更改可能对另一个部分造成的影响。

< ">图形数据库简介

< ">现实世界中的数据存在必然的联系。传统数据建模侧重于单独定义实体并在运行时计算它们之间的关系。虽然这种模型有其自身的优点,但高度连接的数据在其约束下可能难以进行管理。

< ">而图形数据库方法依赖于存储层中的持久关系,这使得图形检索操作非常高效。Azure Cosmos DB的Gremlin API支持属性图形模型。

< ">属性图形对象

< ">属性图形是由顶点和边缘组成的结构。两个对象都可以作为属性包含任意数量的键值对。

< ">顶点/节点-顶点表示人员、地点或事件等离散实体。

< ">边缘/关系-边表示顶点之间的关系。例如,一个人可能认识其他人、涉及到某个事件以及最近处于某个位置。

< ">属性-属性表示有关顶点和边的信息。顶点或边缘中可以包含任意数量运营电商的属性,并且这些属性可用于描述和筛选查询中的对象。属性示例包括具有姓名和年龄的顶点,或具有时间戳和/或体重的边缘。

< ">标签-标签是顶点或边缘的名称或标识符。标签可以对多个顶点或边缘进行分组,以便组中的所有顶点/边缘都具有特定的标签。例如,一个图形可以有多个标签类型为“person”的顶点。



< ">图形数据库通常包含在NoSQL或非关系数据库类别中,因为不存在对架构或受约束数据模型的依赖。由于缺乏架构,因此可以自然且高效地建模和存储连接的结构。

< ">图形数据库示例

< ">我们使用一个示例图形来了解如何在Gremlin中表示查询。下图显示了一个商业应用程序,该应用程序管理以图形形式呈现的有关用户、兴趣和设备的数据。

< ">显示人员、设备和兴趣的示例数据库

< ">此图形使用以下顶点类型(在Gremlin中也称为“标三鹿事件 危机公关签”):

< ">人员:图形中包含三名人员:Robin、Thomas和Ben

< ">兴趣:在此示例中,人员的兴趣为足球比赛

< ">设备:人员使用的设备

< ">操作系统:设备在其上运行的操作系统

< ">位置:访问设备的位置

< ">我们通过以下边缘类型表示这些实体之间的关系:

< ">认识:例如,“Thomas认识Robin”

< ">感兴趣的内容:在图形中表示人员的兴趣,例如,“Ben对足球感兴趣”

< ">RunsOS:运行Windows OS的笔记本电脑

< ">使用:表示人员使用哪种设备。例如,Robin uses a Motorola phone with serial number 77

< ">位置:表示从中访问设备的位置

< ">Gremlin控制台是Apache TinkerPop提供的交互式终端,此终端用于与图形数据进行交互。若要了解详细信息,请参阅如何使用Gremlin控制台中的快速入门文档。也可以所选的平台(Java、Node.js、Python或.NET)中使用Gremlin驱动程序执行这些操作。下面的示例演示如何使用Gremlin控制台对此图形数据运行查询。

< ">首先,让我们了解CRUD。以下Gremlin语句在图形中插入“Thomas”顶点:

< ">Java

< ">:>g.addV('person').property('id','thomas.1').property('firstName','Thomas').property('lastName','Andersen').property('age',44)

< ">接下来,以下Gremlin语句在Thomas与Robin之间插入“knows”边缘。

< ">Java

< ">:>g.V('thomas.1').addE('knows').to(g.V('robin.1'))

< ">以下查询按人员名字的降序返回“person”顶点:



< ">Java

< ">:>g.V().hasLabel('person').order().by('firstName',decr)

< ">如果需要回答类似于“Thomas的朋友使用哪些操作系统?”的问题,图形可以提供很大的方便。可以运行此Gremlin遍历从图形中获取该信息:

< ">Java

< ">:>g.V('thomas.1').out('knows').out('uses').out('runsos').group().by('name').by(count())

Azure Cosmos DB 中的 Gremlin API 简介

上一篇:Shopify春节大事件
下一篇:小米应用商店的页面访问路径功能及指标说明


版权声明:以上主题为“Azure Cosmos DB 中的 Gremlin API 简介"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    Azure Cosmos DB 中的 Gremlin API 简介
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“Azure Cosmos DB 中的 Gremlin API 简介”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通Azure Cosmos DB 中的 Gremlin API 简介的相关事宜。

关键词:Azure,Cosmos,DB,中的,Gremlin

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号