一般性问题

什么是 Amazon Neptune?

Amazon Neptune 是一项快速、可靠且完全托管的图形数据库服务,可帮助您轻松构建和运行使用高度互连数据集的应用程序。Neptune 的核心是专门构建的高性能图形数据库引擎。该引擎经过优化,可以存储数十亿条关系并以数毫秒的延迟查询图形。Neptune 支持常见的图形查询语言 Apache TinkerPop GremlinW3C SPARQLopenCypher,可让您构建查询,高效地浏览高度互连数据集。Neptune 支持图形使用案例,如建议引擎、欺诈检测、知识图谱、药物开发和网络安全。

Neptune 具有高可用性,并提供只读副本、时间点恢复、到 Amazon S3 的持续备份以及跨可用区的复制。Neptune 提供数据安全功能,支持加密静态数据和传输中数据。Neptune 完全托管,让您再也无需为硬件预置、软件修补、设置、配置或备份等数据库管理任务担心。

Amazon Neptune 支持两种用于属性图数据模型的查询语言,即开源 Apache TinkerPop Gremlin 图形遍历语言和 openCypher 查询语言;对于资源描述框架(RDF)数据模型,Neptune 支持 W3C 开放标准 SPARQL 查询语言。

可以在同一个 Neptune 集群中使用 Apache TinkerPop Gremlin、openCypher 和 RDF/SPARQL 吗?

可以,每个 Neptune 集群都可以存储属性图数据和 RDF 数据。Neptune 提供 Gremlin 端点(HTTPS 和 WebSocket)、openCypher 端点(HTTPS 和 Bolt)和 SPARQL 1.1 协议 REST 端点。 

对于属性图,您可以对相同的数据执行 Gremlin 或 openCypher 查询,无需考虑其输入语言。您可能会发现,在某些工作负载中使用 Gremlin 更方便,而在其他工作负载中使用 openCypher 更方便。您不能在 RDF 数据上对属性图数据(Gremlin 或 openCypher)执行查询,反之亦然。

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

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

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

不需要,Amazon Neptune 的 Gremlin Server 将使用 WebSockets 和 HTTPS REST 连接支持与 Apache TinkerPop 兼容的客户端。最新版本的 Neptune 支持 TinkerPop 3.6.x。请参阅文档以了解更多信息。

如何从现有的 openCypher 应用程序迁移到 Amazon Neptune?

由于 Neptune 支持 openCypher 查询语言,因此你可以将大多数使用 Bolt 协议或 HTTPS 的 Cypher 或 Neo4j 工作负载移至 Neptune。 有关如何迁移 openCypher 应用程序的更多详细信息,请阅读文档中的迁移指南

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

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

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

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

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

是的,Neptune 符合 ACID,在主写入器实例上具有即时一致性,最终在只读副本实例上保持一致性。

为什么使用 Amazon Neptune 需要 Amazon RDS 权限和资源?

Amazon Neptune 是专门构建的高性能图形数据库引擎。对于一些管理功能,例如实例生命周期管理、使用 Amazon Key Management Service(KMS)密钥加密静态数据和安全组管理,Neptune 要利用与 Amazon RDS 共享的操作技术。

Amazon Neptune 是否具有服务等级协议(SLA)?

是。请参阅 Amazon Neptune SLA

性能

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

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

Amazon Neptune 是否会执行查询优化?

是的,Amazon Neptune 会对 Gremlin、openCypher 和 SPARQL 查询使用查询优化。 要了解更多信息,请参阅 Amazon Neptune 替代查询引擎(DFE)

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

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

定价

使用 Amazon Neptune 需要多少费用?

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

哪些 AWS 区域提供 Amazon Neptune?

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

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

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

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

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

硬件和扩展

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

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

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

在 AWS 管理控制台中,选择所需的数据库实例并单击“修改”按钮,即可扩展分配至数据库实例的计算资源。可通过更改数据库实例类来修改内存和 CPU 资源。

修改数据库实例类时,在指定的维护窗口期间将应用您请求的更改。或者,您可以使用“立即应用”标记立即应用您的扩展请求。当您执行扩展操作时,这两种选项均会造成几分钟的可用性影响。请注意,任何其他待定的系统更改也将同时应用。

我能否根据使用情况自动向上和向下扩展数据库?

您可以使用 Amazon Neptune 无服务器自动扩展数据库容量。 Neptune Serverless 允许您运行和即时扩展图形工作负载,无需管理和优化容量。Neptune Serverless 自动确定和配置计算和内存资源以运行图形数据库,并根据工作负载不断变化的要求扩展容量以保持一致的性能。

Neptune 是否支持自动扩缩?

是的,Neptune 支持自动扩缩实例的只读副本。您可以配置自动扩缩,自动添加或删除只读副本,以响应连接或工作负载要求的变化。有关更多信息,请参阅文档

备份与还原

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

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

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

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

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

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

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

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

我能否将快照共享给其他 AWS 账户?

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

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

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

我能否自动共享快照?

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

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

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

我可以将我的 Amazon Neptune 快照共享到哪些区域?

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

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

否。只有与共享快照的账户位于同一地区内的账户才能访问您的共享 Amazon 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 副本可见。一个 Neptune 集群可以有一个写入器实例和最多 15 个只读副本。如果写入器实例出现故障,只读副本将自动升级为写入器实例。

我能否拥有跨区域的 Amazon Neptune 副本?

可以,Amazon Neptune 通过将您的 Neptune 集群配置为使用全球数据库来支持跨区域复制。请参阅 Amazon Neptune 全球数据库

我是否能将特定副本指定为优先失效转移目标?

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

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

您随时可以修改实例的优先级分层。单纯地修改优先级分层并不会触发故障转移。

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

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

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

您可以添加 Amazon Neptune 副本。Amazon Neptune 副本与主实例共享同一个底层存储。任何 Amazon Neptune 副本都可在不丢失任何数据的情况下被提升为主实例,因此,它可用于提高主数据库实例发生故障时的容错能力。要提高数据库的可用性,只需创建 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 支持 HTTPS 加密的客户端连接,还允许您使用通过 AWS Key Management Service(KMS)管理的密钥来加密您的数据库。在利用 Amazon Neptune 加密来运行的数据库实例上,静态存储于底层存储的数据都将加密,同一集群中的自动备份、快照和副本也是如此。加密和解密操作的处理都是无缝的。有关将 KMS 与 Amazon Neptune 一起使用的更多信息,请参阅《Amazon Neptune 用户指南》。

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

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

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

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

了解有关定价的更多信息

审核 Amazon Neptune 定价信息。

了解更多 
注册免费账户

立即享受 AWS 免费套餐。 

注册 
开始在控制台中构建

在 AWS 管理控制台中,使用 Amazon Neptune 开始构建。

登录