开始使用 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 地址。

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

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

    要了解更多关于欺诈图表及其使用位置的信息,请参阅上的欺诈图Amazon.

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

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

  • 行车路线— 鉴于当前的交通情况和典型的交通模式,图表可以帮助找到从起点到目的地的最佳路线。

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

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

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

  • 监管规则— 您可以将复杂的监管要求存储为图表,然后查询它们以检测它们可能适用于day-to-day业务运营。

  • 网络拓扑和事件— 图表数据库可以帮助您管理和保护 IT 网络。将网络拓扑存储为图表时,还可以在网络上存储和处理许多不同类型的事件。您可以回答一些问题,例如有多少主机正在运行给定的应用程序。您可以查询可能显示给定主机受到恶意程序破坏的模式,并查询连接数据,以帮助跟踪程序到下载该程序的原始主机。

你如何查询图表?

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

匹配 Gremlin 和 SPARQL 查询的示例

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

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

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

下面是一个 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 的具体步骤: