开始使用 Amazon Neptune - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

开始使用 Amazon Neptune

Amazon Neptune 是一项完全托管的图形数据库服务,可扩展以处理数十亿个关系,并允许您以毫秒级的延迟进行查询,而此类容量的成本较低。

如果您正在寻找有关Neptune 的更多详细信息,请参阅Amazon Neptune 功能的概览.

如果你已经知道图表了,请跳到使用图表笔记本. 或者,如果您要立即创建 Neptune 数据库,请参阅使用Amazon CloudFormation用于创建 Neptune 数据库集群的堆栈.

否则,在开始之前,您可能需要更多地了解图形数据库。

究竟是什么图形数据库?

图形数据库经过优化,可以存储和查询关系数据项之间。

它们将数据项本身存储为顶点的图表,以及它们之间的关系作为边缘. 每条边都有一个类型,从一个顶点(起点)引导到另一个顶点(终点)。可以称之为关系谓语以及边和顶点有时也称为节点. 在所谓的属性图中,顶点和边都可以有额外的属性也与他们有关。

下面是一张代表社交网络中的好友和爱好的小图表:

显示社交网络中的人员和爱好之间的关系的图形。

边显示为命名的箭头,顶点代表它们连接的特定人物和爱好。

此图形的简单遍历可以告知您 Justin 朋友们的爱好。

为什么要使用图形数据库?

如果实体间的连接或关系是您正在尝试建模的数据的核心,那就适合使用图形数据库。

首先,很容易将数据互连建模为图形,然后编写复杂的查询,从图表中提取真实信息。

使用关系数据库构建等效应用程序需要创建多个具有多个外键的表,然后编写嵌套的 SQL 查询和复杂联接。从编码的角度来看,这种方法不仅很快变得笨拙,而且随着数据量的增加,其性能也会迅速降低。

相比之下,像Neptune 这样的图形数据库可以查询数十亿个顶点之间的关系,而不会陷入困境。

你可以用图形数据库做什么?

图表可以通过多种方式表示现实世界实体之间的相互关系,包括行动、所有权、亲子关系、购买选择、人际关系、家庭关系等。

以下是使用图形数据库的一些最常见区域:

  • 知识图谱— 知识图可让您整理和查询各种关联信息以回答一般性问题。使用知识图谱,您可以将主题信息添加到产品目录,并对包含在其中的各种信息进行建模维基数据.

    要详细了解知识图的工作原理及其用途,请参阅知识图谱Amazon.

  • 身份图谱— 在图形数据库中,您可以存储客户兴趣、好友和购买历史等信息类别之间的关系,然后查询这些数据以提供个性化和相关的推荐。

    例如,您可以使用图形数据库,根据关注相同运动内容且具有类似购买历史记录的其他人购买的产品,向用户提供产品推荐。或者,您可以识别有共同好友但还不认识对方的人员,然后提供好友推荐。

    这种图形被称为身份图,广泛用于个性化与用户的互动。要了解更多信息,请参阅身份图谱Amazon. 要开始构建自己的身份图,可以从使用Amazon Neptune 的身份图示例。

  • 欺诈图表— 这是图形数据库的常见用途。它们可以帮助您跟踪信用卡的购买和购买地点,以检测异常用途,或者检测购买者正在尝试使用与已知欺诈案件中使用的相同的电子邮件地址和信用卡。它们可以让您检查多个人与同一个个人电子邮件地址相关联,或者多个人位于不同的物理位置共享同一个 IP 地址。

    请考虑以下图形。它显示了三个人员之间的关系以及他们的身份相关信息。每个人员都有一个地址、一个银行账户和一个身份证号。但是,我们可以看到,Matt 和 Justin 共享同一身份证号,这不正常,并表示可能由其中一人进行的诈骗。对欺诈图的查询可揭示此类关联,从而能审查它们。

    显示人员之间的关系及其个人信息的图形。

    要详细了解欺诈图表及其使用地点,请参阅欺诈图谱Amazon.

  • 社交网络— 使用图形数据库的第一个也是最常见的领域之一是社交网络应用程序。

    例如,假设您要构建一个馈入网站的社交媒体源。您可以轻松使用后端的图形数据库向用户提供结果,这些结果反映了来自其家人、好友、其 “喜欢” 关注的人员以及生活在其附近的用户的最新更新。

  • 行车路线— 根据当前的流量和典型的流量模式,图表可以帮助找到从起点到目的地的最佳路线。

  • 物流— 图表可以帮助确定使用可用运输和配送资源来满足客户需求的最有效方式。

  • DIA— 图形可以表示复杂的诊断树,可以查询这些诊断树以确定观察到的问题和失败的来源。

  • 科学研究— 利用图形数据库,您可以构建 CAN 应用程序,这些应用程序使用静态加密功能存储和导航科学数据甚至敏感医疗信息。例如,您可以存储疾病与基因相互作用的模型。您可以在蛋白质通路中寻找图形模式,以找到可能与疾病相关的其他基因。您可以将化合物建模为图形,并查询分子结构中的模式。您可以关联不同系统中来自病历的患者数据。您可以按主题组织研究出版物,以便快速找到相关信息。

  • 监管规则— 您可以将复杂的法规要求存储为图形,并对其进行查询以检测可能适用于您的 day-to-day 业务运营。

  • 网络拓扑和事件— 图形数据库可以帮助您管理和保护 IT 网络。将网络拓扑存储为图形时,还可以在网络上存储和处理许多不同类型的事件。您可以回答诸如运行给定应用程序的主机数量之类的问题。您可以查询可能显示给定主机受到恶意程序危害的模式,也可以查询连接数据,以帮助将程序追踪到下载该程序的原始主机。

你如何查询图形?

Neptune 支持三种特殊用途的查询语言,专为查询不同种类的图形数据而设计。您可以使用以下语言添加、修改、删除和查询 Neptune 图形数据库中的数据:

匹配 Gremlin 和 SPARQL 查询的示例

通过人员 (节点) 及其关系 (边缘) 的以下图形,您可以了解特定人员的 “好友的好友” 是谁,例如,Howard 的好友的好友。

展示人员之间的关系(包括其好友链)的图形。

通过观察该图形,您可以看到 Howard 有一个好友,Jack 和 Jack 有四个好友:安妮、哈里、道格和麦克。这是一个包含简单图形的简单示例,但这些类型的查询可以降低复杂性、数据集大小和结果大小。

下面是一个 Gremlin 遍历查询,该查询将返回 Howard 的好友的姓名:

g.V().has('name', 'Howard').out('friend').out('friend').values('name')

下面是一个 SPARQL 遍历查询,该查询将返回 Howard 的好友的好友的姓名:

prefix : <#> select ?names where { ?howard :name "Howard" . ?howard :friend/:friend/:name ?names . }
注意

任何资源描述框架 (RDF) 三角的各个部分都有与之关联的 URI。在以上示例中,URI 前缀经过故意缩短。

参加使用Amazon Neptune 的在线课程

如果你喜欢用视频学习,Amazon提供在线课程Amazon在线技术讲座为了帮助你前进:

    Amazon Neptune 入门

本课程由 7 个视频组成,这些视频将演示了如何设置和使用 Amazon Neptune。

更深入地挖掘图参考架构

当你思考图形数据库可以为你解决哪些问题以及如何解决这些问题时,最好的起点之一就是Neptune 图参考架构 GitHub 项目.

在那里,您可以找到图形工作负载类型的详细说明,还有三个部分可帮助您设计有效的图形数据库:

还有三个部分将引导您完成使用 Neptune 的具体步骤: