一般性问题

问:什么是 Amazon Neptune?

Amazon Neptune 是一项快速、可靠且完全托管的图形数据库服务,可帮助您轻松构建和运行适用于高度互连数据集的应用程序。为了提高性能而调整针对高度互连数据的 SQL 查询既复杂,难度又大。而有了 Amazon Neptune,您可以使用开放而流行的图形查询语言执行强效的查询,这类查询易于编写并且能够针对互连数据实现很好的执行效果。Neptune 的核心是一个专门打造的高性能图形数据库引擎,它经过优化,可存储数十亿种关系并以毫秒级延迟进行图形查询。您可以将 Neptune 用于图形使用案例,如建议引擎、欺诈检测、知识图谱、药物开发和网络安全。Amazon Neptune 属于完全托管型,能够处理一些耗时的任务,如预配置、修补、备份、恢复、故障检测和修复。您只需为您使用的每个 Amazon Neptune 数据库实例支付单项月度费用。没有前期费用或长期承付款。

问:如何试用 Amazon Neptune?

要试用 Amazon Neptune,应请求访问预览版

问:Amazon Neptune 支持哪些流行的图形查询语言?

Amazon Neptune 既支持开源 Apache TinkerPop Gremlin 图形遍历语言,又支持 W3C 标准资源描述框架 (RDF) SPARQL 查询语言。

 

问:如何从现有的 Apache TinkerPop Gremlin 应用程序迁移到 Amazon Neptune?

Amazon Neptune 提供既支持 Websocket 连接又支持 REST 连接的 Apache TinkerPop Gremlin Server。一旦您预配置了 Amazon Neptune 实例,便可以将现有 TinkerPop 应用程序配置为使用该服务提供的终端节点。另请参见通过 Gremlin 访问图形

问:我是否需要更改客户端驱动程序才能使用 Amazon Neptune 的 Gremlin Server?

不需要,Amazon Neptune 的 Gremlin Server 将使用 Websocket 和 REST 连接支持与 Apache TinkerPop 3.3 版兼容的客户端。

问:我是否可以从带有 SPARQL 终端节点的三重存储迁移到 Amazon Neptune?

Amazon Neptune 提供一个实施 SPARQL 1.1 协议的 HTTP REST 终端节点。一旦您预配置了服务实例,便可以将您的应用程序配置为指向 SPARQL 终端节点。另请参见通过 SPARQL 访问图形。

问:我是否需要更改客户端驱动程序才能使用 Amazon Neptune 的 SPARQL 终端节点?

不需要,Amazon Neptune 的 SPARQL 终端节点将适用于任何支持 SPARQL 1.1 协议的客户端。 

问:Neptune 是否符合 ACID (原子性、一致性、隔离性、持久性)?

是,Neptune 符合 ACID 并具有立即一致性。

性能

问:我是否需要使用 Amazon Neptune 为我的数据创建索引?

不需要,现有的图形数据库用户经常需要尝试并猜测供应商实施。明确维护索引只是其中的一个方面。Amazon Neptune 不要求您创建特定索引即可实现良好的查询性能,并且它能够最大限度地减少对数据库设计进行此类猜测的需要。

问:哪些类型的图形查询工作负载为了获取 Amazon Neptune 的支持而进行了优化?

Amazon Neptune 旨在支持需要高吞吐量和低延迟图形查询的图形应用程序。Amazon Neptune 最多支持 15 个只读副本,每秒钟可以支持 10 万个查询。

问:Amazon Neptune 是否执行查询优化?

执行,Amazon Neptune 针对 SPARQL 查询和 Gremlin 遍历使用查询优化。

问:Amazon Neptune 是否是在关系数据库上构建的?

不是,Amazon Neptune 是专门构建的高性能图形数据库引擎。Neptune 能够高效存储和导航图形数据,并使用扩展的、内存中的已优化架构来支持对大型图形执行快速查询评估。

定价

问:使用 Amazon Neptune 需要多少费用?

请参阅我们的定价页面,了解最新的定价信息。

问:哪些 AWS 地区提供 Amazon Neptune?

请查看我们的定价页面,了解有关地区和价格的最新信息。

问:Amazon Neptune 跨三个可用区以六种方法复制数据库卷的每个组块。这是否意味着我的有效存储价格将是定价页面上所显示价格的三到六倍?

否。Amazon Neptune 复制功能的费用捆绑在价格中。我们将根据您的数据库在数据库层消耗的存储量向您收费,而非根据在 Amazon Neptune 的虚拟化存储层消耗的存储量向您收费。

问:Amazon Neptune 中的 IO 是什么?如何计算它们?

IO 是 Amazon Neptune 针对基于 SSD 的虚拟化存储层执行的输入/输出操作。每一个数据库页面读取操作为一个 IO。Amazon Neptune 针对存储层执行读取操作,以获取不在缓冲缓存中的页面。在 Amazon Neptune 中,每一页是 16KB。
Amazon Neptune 旨在消除不必要的 IO 操作,以降低成本并确保资源可用于提供读/写流量。只有将事务日志记录推送到存储层,完成耐久型写入时,才消耗写入 IO。写入 IO 以 4KB 单位计算。例如,1024 字节的事务日志记录计为一个 IO 操作。然而,当事务日志小于 4KB 时,可由 Amazon Neptune 数据库引擎批量执行并发写入操作,以便优化 I/O 消耗情况。与传统的数据库引擎不同,Amazon Neptune 从不将修改后的数据库页面推送到存储层,这会进一步减少 IO 消耗量。

硬件和扩展

问:Amazon Neptune 数据库的最低存储限制和最大存储限制是什么?

最低存储为 10GB。根据您的数据库使用量,您的 Amazon Neptune 存储将以 10GB 的增量自动增长到 64TB,而不会影响数据库的性能。无需提前预配置存储。

问:如何扩展与我的 Amazon Neptune 数据库实例相关联的计算资源?

在 AWS 管理控制台中,选择所需的数据库实例并单击“修改”按钮,即可扩展分配至数据库实例的计算资源。可通过更改数据库实例类来修改内存和 CPU 资源。
修改数据库实例类时,在指定的维护窗口期间将应用您请求的更改。或者,您可以使用“立即应用”标记立即应用您的扩展请求。当您执行扩展操作时,这两种选项均会造成几分钟的可用性影响。请注意,任何其他待定的系统更改也将同时应用。

备份与恢复

问:我如何启用我的数据库实例备份?

Amazon Neptune 数据库实例上始终都会启用自动备份。备份不影响数据库性能。

 

问:我能否拍摄数据库快照并将其留在身边在我需要时使用?

能,拍摄快照时不影响性能。请注意,从数据库实例中恢复数据需要创建一个新的数据库实例。

问:如果我的数据库发生故障,应该用什么恢复路径?

Amazon Neptune 跨 3 个可用区自动维护 6 个数据副本,并将自动尝试在运行状况正常的可用区恢复您的数据库,而不会造成数据丢失。您的数据在 Amazon Neptune 存储内不可用的情况不太可能出现,您可以从数据库快照中进行恢复或对新实例执行时间点恢复操作。请注意,时间点恢复操作的最迟可恢复时间在过去最高可达 5 分钟。

问:如果删除数据库实例,我的自动化备份和数据库快照会发生什么状况?

您可以选择在删除数据库实例时创建最终的数据库快照。如果您进行了此操作,您可以使用此数据库快照稍后恢复已删除的数据库实例。在您删除数据库实例后,Amazon Neptune 会将用户创建的这个最终数据库快照与其他所有手动创建的数据库快照一起保留。删除数据库实例后只会保留数据库快照 (即,为时间点恢复创建的自动备份不会保留)。

问:我能够将快照共享给其他 AWS 账户?

能。借助 Neptune,您可以创建数据库快照,以便在以后用于恢复数据库。您可以与不同的 AWS 账户共享这一快照,并且对方可以使用您的快照来恢复包含您的数据的数据库。您甚至还可以将您的快照公开,这样,任何人都能恢复包含您的(公开)数据的数据库。您可以利用这一功能在拥有不同 AWS 账户的多种环境(生产、开发/测试、调试等环境)之间共享数据,也可以将所有数据的备份安全保存到一个单独的账户中,以防主 AWS 账户受到安全威胁。

问:我需要支付共享快照的费用吗?

在账户之间共享快照不需要付费。但是,您需要为快照本身以及通过共享快照恢复的任何数据库付费。了解有关 Amazon Neptune 定价的更多信息。

问:我能否自动共享快照?

我们不支持自动数据库快照共享。要共享快照,您必须手动创建一个快照,然后共享该快照。

问:我能将快照共享给多少个账户?

您可以将手动快照共享给最多 20 个 AWS 账户 ID。如果您需要将快照共享给 20 个以上的账户,则可以将快照作为公开快照进行共享,或联系支持人员要求增加配额。

问:我可以将我的 Amazone Neptune 快照共享到哪些地区?

您可以将您的 Neptune 快照共享到所有提供 Amazon Neptune 的地区。

问:我能否在不同地区之间共享 Amazon Neptune 快照?

不能。只有与共享快照的账户位于同一地区内的账户才能访问您的共享 Amazon Neptune 快照。

问:我能否共享加密的 Amazon Neptune 快照?

能,您可以共享加密的 Amazon Neptune 快照。

高可用性和复制

问:Amazon Neptune 如何提高我的数据库对磁盘故障的容错能力?

Amazon Neptune 会自动将您的数据库卷分成分散在很多个磁盘上的 10GB 的区段。每 10GB 的数据库卷组块都能在三个可用区间用六种方法进行复制。Amazon Neptune 旨在以透明方式应对多达两个数据副本丢失的情况,而不会影响数据库写入可用性,还能在不影响读取可用性的情况下应对多达三个副本丢失的情况。Amazon Neptune 存储还具有自我修复能力。可连续扫描数据块和磁盘有无出错并自动修复之。

 

问:Amazon Neptune 如何缩短数据库崩溃后的恢复时间?

与其他数据库不同的是,在数据库崩溃之后,Amazon Neptune 不需要重放最后一个数据库检查点 (通常为 5 分钟) 的重做日志,且不需要在数据库可用于操作之前确认所有更改都已应用。在大多数情况下,这会将数据库的重启时间缩短到 60 秒以下。Amazon Neptune 会将缓冲缓存移出数据库进程,并使其能够在重启时立即可用。这将防止您限制访问,直到重新填充缓存以避免停止。

问:Neptune 支持哪些类型的副本?

Amazon Neptune 支持只读副本,这些副本与主实例共享相同的底层卷。主实例做出的更新对所有 Amazon Neptune 副本可见。

功能                                                Amazon Neptune 副本

副本数量                                            最多 15 个

副本类型                                  异步 (毫秒)

对主实例的性能影响                         低

充当故障转移目标                                  是 (无数据丢失)

自动故障转移                                              是

 

问:我能否拥有跨地区的 Amazon Neptune 副本?

不能,Amazon Neptune 不支持跨地区副本。

问:我能否将特定副本指定为优先故障转移目标?

答:能。您可以为集群中的每个实例指定一种提升优先级分层。如果主实例发生故障,Amazon Neptune 会将优先级最高的副本提升为主实例。如果同一优先级分层中的 2 个或更多副本出现冲突,Amazon Neptune 会将大小相同的副本提升为主实例。

问:我能否在实例创建完成后再修改优先级分层?

答:您随时可以修改实例的优先级分层。只是修改优先级分层并不会触发故障转移。

问:我能否阻止特定副本被提升为主实例?

答:如果您不希望副本被提升为主实例,则可为其指定较低的优先级分层。不过,如果集群上优先级较高的副本因为某些原因无法运行或使用,那么 Amazon RDS 将提升优先级较低的副本。

问:如何改进单个 Amazon Neptune 数据库的可用性?

您可以添加 Amazon Neptune 副本。Amazon Neptune 副本与主实例共享同一个底层存储。任何 Amazon Neptune 副本都可在不丢失任何数据的情况下被提升为主实例,因此,它可用于提高主数据库实例发生故障时的容错能力。要提高数据库可用性,只需在 3 个可用区中的任何一个中创建 1 到 15 个副本,Amazon Neptune 将在数据库运行中断时将其纳入故障转移主选择中。

问:执行故障转移时会发生什么状况?这种情况会持续多长时间?

Amazon Neptune 会自动处理故障转移,以便您的应用程序可以尽快恢复数据库操作,而无需手动管理干预。

  • 如果您在相同或不同的可用区中有 Amazon Neptune 副本,当进行故障转移时,Amazon Neptune 会翻转您的数据库主实例的别名记录 (CNAME),以指向运行状态正常的副本;相应地,此副本会晋升为新的主实例。从开始到结束,故障转移通常会在 30 秒内完成。此外,只读副本终端节点不要求在故障转移期间进行任何 CNAME 更新。
  • 如果您没有 Amazon Neptune 副本 (即单个实例),则 Neptune 会先尝试在原始实例的可用区中创建新数据库实例。如果不能这么做,则 Neptune 会尝试在不同的可用区中创建新数据库实例。从始至终,通常会在 15 分钟内完成故障转移。

您的应用程序应在连接中断时重新尝试发出数据库请求。

问:如果我的主数据库和 Amazon Neptune 副本积极获取读取流量且发生故障转移,会发生什么情况?

Amazon Neptune 将自动检测您的主实例发生的问题,并开始将您的读取/写入流量路由到 Amazon Neptune 副本。平均来说,此故障转移将在 30 秒内完成。此外,您的 Amazon Neptune 副本提供的读取流量将短暂中断。

问:我的副本将落后主实例多久?

Amazon Neptune 副本与主实例共享同一个数据卷,因此,几乎没有复制滞后。据我们观察,滞后时间一般在 10 毫秒内。

 

安全性

问:我能否在 Amazon Virtual Private Cloud (Amazon VPC) 中使用 Amazon Neptune?

能,所有 Amazon Neptune 数据库实例都必须在 VPC 中创建。借助 Amazon VPC,您可以定义与自己的数据中心运行的传统网络非常相似的虚拟网络拓扑。这样一来,您可以完全控制谁能访问您的 Amazon Neptune 数据库。

 

问:Amazon Neptune 支持为我的传输中数据和静态数据加密吗?

支持。Amazon Neptune 支持使用 TLS (HTTPS) 为您的传输中数据加密,其中包括 AES-256 密码套件,以保护数据库实例和应用程序之间的连接。当前,这默认处于未启用状态,但是可以通过集群参数组对其进行配置。Amazon Neptune 现在支持您使用通过 AWS Key Management Service (KMS) 管理的密钥来加密您的数据库。在利用 Amazon Neptune 加密来运行的数据库实例上,静态存储于底层存储的数据都将加密,同一集群中的自动备份、快照和副本也是如此。加密和解密操作的处理都是无缝的。有关将 KMS 与 Amazon Neptune 一起使用的更多信息,请参阅《Amazon Neptune 用户指南》。

问:我可以加密现有的未加密数据库吗?

目前不支持为现有的未加密 Neptune 实例加密。要将 Amazon Neptune 加密用于现有的未加密数据库,请创建一个启用加密的新数据库实例,并将您的数据迁移到该实例中。

问:如何访问我的 Amazon Neptune 数据库?

必须通过您在创建数据库时输入的 HTTP/HTTPS 端口访问 Amazon Neptune 数据库。这样做可以为您的数据平添一重安全保障。有关如何连接到您的 Amazon Neptune 数据库的分步说明,请参阅《Amazon Neptune 用户指南》。

了解有关 Amazon Neptune 定价的更多信息

访问定价页面
已准备好开始使用?
注册体验预览版
还有更多问题?
联系我们