- 数据库›
- Amazon Neptune›
- Amazon Neptune 常见问题
Amazon Neptune 常见问题
一般性问题
什么是 Amazon Neptune?
Amazon Neptune 是一项服务,包括图形数据库引擎、图形分析数据库引擎、图形机器学习(ML)和可视化工具,可以单独使用,也可以一起使用。通过 Neptune 服务,可以轻松地在 AWS 上处理图形数据。借助 Amazon Neptune 数据库,您可以使用专为实现卓越的可扩展性和可用性而设计的无服务器图形数据库,以每秒超过 100000 次查询的速度来扩展图形,以处理要求最苛刻的应用程序。借助 Amazon Neptune Analytics,您可以通过快速处理大量图形数据来获得见解并发现趋势。通过调用热门的图形分析算法,您可以在几秒钟内获取结果
什么是 Amazon Neptune 数据库?
Amazon Neptune 数据库提供专门构建的图形数据库,具有一整套的企业功能和集成。Neptune 数据库支持需要高可用性、灾难恢复、动态扩展和企业应用程序所需的其他功能的任务关键型图形应用程序。
什么是 Amazon Neptune Analytics?
Neptune Analytics 是一个分析数据库引擎,可以快速分析大量图形数据以获得见解并发现趋势。
什么是 Amazon Neptune ML?
Neptune ML 是一项 Neptune 数据库新功能。它采用的图形神经网络(GNN)是一种为图形构建的机器学习技术,能够通过使用图形数据,快速且更准确地进行预测。
我什么时候会使用 Neptune 数据库、Neptune Analytics 或 Neptune ML?
带有 Neptune 开发者工具的 Neptune 数据库是大规模构建任务关键型系统的适当选择。产品推荐引擎、身份和访问管理系统以及合规系统等系统通常需要 Neptune 全球数据库中提供的地理分布式功能。Neptune 数据库存储数百亿个关系,每秒可以处理数十万个交互式图形查询。
Neptune Analytics 搭载 Neptune 笔记本电脑使用,是与数据交互以获得见解的适当选择。这些功能使用户能够使用熟悉的工具(例如 Pandas、Jupyter 和 Python)与数据进行交互,以发现和查明数据中表明欺诈、非法活动、优化机会等的交互和行为模式。
Neptune Analytics 的一些常见应用场景包括临时分析、运行低延迟分析查询、运行内置图形算法以及执行向量相似度搜索。通过向量相似度搜索,Neptune Analytics 可用于构建检索增强生成(RAG)应用程序,这些应用程序通过嵌入提供的密集数据表示进行搜索。向量搜索结果可以与图形中的上下文感知数据表示相结合,以提供与关系相关的丰富上下文信息。
Neptune ML 可用于使用最先进的 GNN 设计、构建、优化和预测关系和分类。为了增强特征表,Neptune Analytics 可用于使用聚类、中心性和路径查找等常用算法从互联数据中推导关键特征。
Amazon Neptune 是否具有服务等级协议(SLA)?
符合。请参阅 Amazon Neptune SLA。
Neptune 数据库
Neptune 数据库支持哪些热门的图形查询语言?
符合。请参阅 Amazon Neptune SLA。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 应用程序迁移到 Neptune 数据库?
Neptune 数据库提供既支持 HTTPS 连接又支持 WebSocket 连接的 Apache TinkerPop Gremlin Server。一旦您预调配了 Neptune 实例,便可以将现有 TinkerPop 应用程序配置为使用该服务提供的端点。另请参阅通过 Gremlin 访问图形。
我是否需要更改客户端驱动程序才能使用 Neptune Gremlin Server?
不需要,Neptune Gremlin Server 将使用 WebSockets 和 HTTPS REST 连接支持与 Apache TinkerPop 兼容的客户端。最新版本的 Neptune 数据库支持 TinkerPop 3.6.x。请参阅文档以了解更多信息。
如何从现有的 openCypher 应用程序迁移到 Neptune 数据库?
由于 Neptune 支持 openCypher 查询语言,因此您可以将大多数使用 Bolt 协议或 HTTPS 的 Cypher 或 Neo4j 工作负载移至 Neptune。 有关如何迁移 openCypher 应用程序的更多详细信息,请阅读文档中的迁移指南。
我是否可以从带有 SPARQL 端点的三重存储迁移到 Neptune 数据库?
Neptune 提供实施 SPARQL 1.1 协议的 HTTPS REST 端点。一旦您预调配了服务实例,便可以将您的应用程序配置为指向 SPARQL 端点。另请参阅通过 SPARQL 访问图形。
我是否需要更改客户端驱动程序才能使用 Neptune SPARQL 端点?
不需要,Neptune 的 SPARQL 端点将适用于任何支持 SPARQL 1.1 协议的客户端。
Neptune 数据库是否符合 ACID(原子性、一致性、隔离性、持久性)?
是的,Neptune 符合 ACID,在主写入器实例上具有即时一致性,最终在只读副本实例上保持一致性。
为什么使用 Neptune 数据库需要 Amazon RDS 权限和资源?
Neptune 数据库是专门构建的高性能图形数据库引擎。对于一些管理功能,例如实例生命周期管理、使用 AWS Key Management Service(AWS KMS)密钥加密静态数据和安全组管理,Neptune 使用与 Amazon Relational Database Service(Amazon RDS)共享的操作技术。
哪些类型的图形查询工作负载为了获取 Neptune 数据库的支持而进行了优化?
Neptune 数据库旨在支持需要高吞吐量和低延迟图形查询的图形应用程序。Neptune 数据库可支持最多 15 个只读副本,每秒钟可以支持数十万次查询。
Neptune 数据库是否会执行查询优化?
是的,Neptune 会对 Gremlin、openCypher 和 SPARQL 查询使用查询优化。 要了解更多信息,请参阅 Amazon Neptune 替代查询引擎(DFE)。
Neptune 数据库是否是在关系数据库上构建的?
不,Neptune 是专门构建的高性能图形数据库引擎。Neptune 能够高效存储和导航图形数据,并使用扩展的、内存中的已优化架构来支持对大型图形执行快速查询评估。
Neptune 数据库的成本是多少?
请参阅我们的定价页面,了解最新的定价信息。
Neptune 数据库在哪些 AWS 区域可用?
有关提供 Neptune 数据库的 AWS 区域的更多信息,请参阅 AWS 区域表。
Neptune 数据库跨三个可用区复制数据库卷的每个组块。这是否意味着我的有效存储价格将是定价页面上所显示价格的三倍?
否。Neptune 数据库复制功能的费用捆绑在价格中。我们将根据数据库在数据库层消耗的存储量向您收费,而非 Neptune 虚拟存储层消耗的存储量。
Neptune 数据库中的 I/O 操作是什么?它们是如何计算的?
Neptune 数据库的目的是移除不必要的 I/O 操作,以降低成本,并确保资源可服务于读/写流量。只有将事务日志记录推送到存储层,完成耐久型写入时,才消耗写入 I/O 操作。写入 I/O 操作以 4KB 为单位计算。例如,1024 字节的事务日志记录计为一个 I/O 操作。
然而,当事务日志小于 4KB 时,并发写入操作可通过 Neptune 数据库引擎批量进行,以便优化 I/O 消耗。与传统的数据库引擎不同,Neptune 从不将修改后的数据库页面推送到存储层,进一步节省了 I/O 消耗。
Neptune 数据库的最低存储限制和最大存储限制是什么?
最低存储为 10GiB。根据您的数据库使用量,您的 Neptune 存储将以 10GiB 的增量自动增长到 128TiB,而不会影响数据库的性能。无需提前预配置存储。
如何扩展与我的 Neptune 数据库实例相关联的计算资源?
在 AWS 管理控制台中,选择所需的数据库实例并选择“修改”按钮,即可扩展分配至数据库实例的计算资源。可通过更改数据库实例类来修改内存和 CPU 资源。
修改数据库实例类时,在指定的维护窗口期间将应用您请求的更改。或者,您可以使用“立即应用”标记来立即应用您的扩展请求。当您执行扩展操作时,这两种选项均会造成几分钟的可用性影响。请注意,任何其他待定的系统更改也将同时应用。
我能否根据使用情况自动向上和向下扩展 Neptune 数据库?
您可以使用 Amazon Neptune 无服务器自动扩展数据库容量。Neptune Serverless 允许您运行和即时扩展图形工作负载,无需管理和优化容量。Neptune Serverless 会自动确定和预调配计算和内存资源以运行图形数据库,并根据工作负载不断变化的要求扩展容量以保持一致的性能。
Neptune 数据库是否支持自动扩缩?
是的,Neptune 支持自动扩缩实例的只读副本。您可以配置自动扩缩,自动添加或删除只读副本,以响应连接或工作负载要求的变化。有关更多信息,请参阅文档。
如何为我的 Neptune 数据库实例启用备份?
Neptune 数据库实例上始终都会启用自动备份。备份不影响数据库性能。
我能否拍摄数据库快照并将其留在身边,以便在需要时使用?
能,拍摄快照时不影响性能。请注意,从数据库快照中恢复数据需要创建一个新的数据库实例。
如果我的数据库发生故障,应该用什么恢复路径?
Neptune 数据库跨三个可用区自动维护数据副本,并将自动尝试在运行状况正常的可用区恢复您的实例,而不会造成数据丢失。您的数据在 Neptune 存储内不可用的情况不太可能出现,您可以从数据库快照中进行恢复或对新实例执行时间点恢复操作。请注意,时间点恢复操作的最迟可恢复时间在过去最高可达 5 分钟。
如果删除数据库实例,我的自动化备份和数据库快照会发生什么状况?
您可以选择在删除数据库实例时创建最终的数据库快照。如果您进行了此操作,则可以使用此数据库快照稍后恢复已删除的数据库实例。在您删除数据库实例后,Neptune 会将用户创建的这个最终数据库快照与其他所有手动创建的数据库快照一起保留。删除数据库实例后只会保留数据库快照(例如,为时间点恢复创建的自动备份不会保留)。
我能否将快照共享给其他 AWS 账户?
符合。借助 Neptune,您可以创建数据库快照,以便在以后用于恢复数据库。您可以与不同的 AWS 账户共享这一快照,并且对方可以使用您的快照来恢复包含您的数据的数据库。您甚至还可以将您的快照公开,这样,任何人都能恢复包含您的(公开)数据的数据库。您可以使用此功能在拥有不同 AWS 账户的各种环境(生产、开发/测试、分段等)之间共享数据,也可以将所有数据的备份安全保存到一个单独的账户中,以防主 AWS 账户受到安全威胁。
我是否需要支付共享快照的费用?
在账户之间共享快照不需要付费。但是,您需要为快照本身以及通过共享快照恢复的任何数据库付费。了解有关 Amazon Neptune 定价的更多信息。
我能否自动共享快照?
我们不支持自动数据库快照共享。要共享快照,您必须手动创建一个快照,然后共享该快照。
我能将快照共享给多少个账户?
您可以将手动快照共享给最多 20 个 AWS 账户 ID。如果您需要将快照共享给 20 个以上的账户,则可以将快照作为公开快照进行共享,或联系支持人员要求增加配额。
我可以将我的 Neptune 数据库快照共享到哪些区域?
您可以将您的 Neptune 数据库快照共享到提供 Neptune 的 AWS 区域。
我能否在不同区域之间共享 Neptune 数据库快照?
否。只有与共享快照的账户位于同一地区内的账户才能访问您的共享 Neptune 数据库快照。
我能否共享加密的 Neptune 数据库快照?
能,您可以共享加密的 Neptune 数据库快照。
我能在 Neptune 服务之外使用 Neptune 快照吗?
不能。Neptune 快照只能在该服务内部使用。
Neptune 数据库如何提高我的数据库对磁盘故障的容错能力?
只能在至少两个可用区中拥有至少两个子网的 Amazon VPC 中创建 Neptune 数据库集群。通过将集群实例分布在至少两个可用区,Neptune 可帮助确保在不太可能发生可用区故障的情况下,数据库集群中有可用的实例。您的 Neptune 数据库集群的集群卷始终会跨越三个可用区,以提供持久存储,减少数据丢失的可能性。Neptune 旨在以透明方式应对多达两个数据副本丢失的情况,而不会影响数据库写入可用性,还能在不影响读取可用性的情况下应对多达三个副本丢失的情况。Neptune 存储还具有自我修复能力。可连续扫描数据块和磁盘有无出错并自动修复之。
Neptune 数据库如何缩短数据库崩溃后的恢复时间?
与其他数据库不同的是,在数据库崩溃之后,Neptune 不需要重放最后一个数据库检查点(通常为 5 分钟)的重做日志,且不需要在数据库可用于操作之前确认所有更改都已应用。在大多数情况下,这会将数据库的重启时间缩短到 60 秒以下。Neptune 会将缓冲缓存移出数据库进程,并使其能够在重启时立即可用。这将防止您限制访问,直到重新填充缓存以避免停止。
Neptune 数据库支持哪些类型的复制?
Neptune 支持只读副本,这些副本与主实例共享相同的底层卷。主实例做出的更新对所有 Amazon Neptune 副本可见。一个 Neptune 集群可以有一个写入器实例和最多 15 个只读副本。如果写入器实例出现故障,只读副本将自动升级为写入器实例。
我能否拥有跨区域的 Neptune 数据库副本?
我是否能将特定副本指定为优先失效转移目标?
符合。您可以为集群中的每个实例指定一个提升优先级分层。如果主实例发生故障,Neptune 数据库会将优先级最高的副本提升为主实例。如果同一优先级分层中的 2 个或更多副本出现冲突,Neptune 会将大小相同的副本提升为主实例。
我能否在实例创建完成后再修改优先级分层?
您随时可以修改实例的优先级分层。只是修改优先级分层并不会触发故障转移。
我能否阻止特定副本被提升为主实例?
如果您不希望某个副本被提升为主实例,可为其指定较低的优先级分层。不过,如果集群中优先级较高的副本因为某些原因无法正常运行或使用,那么 Neptune 将会提升优先级较低的副本。
如何改进单个 Neptune 数据库的可用性?
您可以添加 Neptune 副本,这些副本与主实例共享同一个底层存储。任何 Neptune 副本都可在不丢失任何数据的情况下被提升为主实例,因此,它可用于提高主数据库实例发生故障时的容错能力。要提高数据库的可用性,只需创建 1 到 15 个副本,Neptune 将在数据库运行中断时将这些副本纳入失效转移的主要选择中。
失效转移时会发生什么状况?这种情况会持续多长时间?
Neptune 数据库会自动处理失效转移,以便您的应用程序可以尽快恢复数据库操作,而无需手动管理干预。如果您在相同或不同的可用区中有 Neptune 副本,当进行失效转移时,Neptune 会翻转您的数据库主端点的规范名称记录(CNAME),以指向运行状态正常的副本;相应地,此副本会晋升为新的主实例。 从开始到结束,失效转移通常会在 30 秒内完成。
此外,只读副本终端节点不要求在故障转移期间进行任何 CNAME 更新。如果您没有 Neptune 副本(即单个实例),则 Neptune 会先尝试在原始实例的可用区中创建新数据库实例。如果不能这么做,则 Neptune 会尝试在不同的可用区中创建新数据库实例。从始至终,通常会在 15 分钟内完成故障转移。您的应用程序应在连接中断时重新尝试发出数据库请求。
如果我的主数据库和 Amazon Neptune 数据库副本积极获取读取流量且发生失效转移,会发生什么情况?
Neptune 数据库将自动检测您的主实例发生的问题,并开始将您的读取/写入流量路由到 Neptune 数据库副本。平均来说,此失效转移将在 30 秒内完成。此外,您的 Neptune 数据库副本提供的读取流量将短暂中断。
我的副本将落后主实例多久?
Neptune 数据库副本与主实例共享同一个数据卷,因此,几乎没有复制滞后。据我们观察,滞后时间一般在 10 毫秒内。
我能否在 Amazon Virtual Private Cloud(Amazon VPC)中使用 Neptune 数据库?
能,所有 Amazon Neptune 数据库实例都必须在 VPC 中创建。借助 Amazon VPC,您可以定义一个与自己数据中心内运行的传统网络非常相似的虚拟网络拓扑。这样一来,您可以完全控制谁能访问您的 Neptune 数据库。
我可以加密现有的未加密数据库吗?
目前不支持为现有的未加密 Neptune 实例加密。要将 Neptune 加密用于现有的未加密数据库,请创建一个启用加密的新数据库实例,并将您的数据迁移到该实例中。
如何访问我的 Neptune 数据库?
必须通过您在 VPC 内创建数据库时输入的 HTTPS/端口访问 Neptune 数据库。这样做可以为您的数据平添一重安全保障。有关如何连接到您的 Neptune 数据库的分步说明,请参阅《Amazon Neptune 用户指南》。
Neptune Analytics
Amazon Neptune Analytics 支持哪些热门的图形查询语言?
您可以使用 openCypher,这是一个开源项目,使您可以轻松地使用 Cypher 语言进行图形处理、调用 Neptune Analytics 算法和进行向量相似度搜索。
哪些类型的图形查询工作负载为了获取 Neptune Analytics 的支持而进行了优化?
Neptune Analytics 非常适合访问图形的大部分或整个图形的图形查询。Neptune Analytics 是内存中的引擎,它可以将这些大型图形加载到内存中,从而在几秒钟内提供响应。 此外,Neptune Analytics 使用热门的图形分析算法库每秒可以提供数千次分析查询,用于对社交影响者进行排名、检测欺诈群组或寻找网络活动模式等操作。对于生成式人工智能应用程序,Neptune Analytics 可以存储向量嵌入并提供向量相似度搜索。
如何使用 Neptune Analytics 来处理我的 Neptune 数据库中的图形?
您可以选择现有的 Neptune 集群作为数据来源,该数据来源将自动加载到 Neptune Analytics 中。
目前支持哪些图形算法?
Neptune Analytics 支持 12 种算法,用于路径查找、检测社区(聚类)、识别重要数据(中心性)和量化相似度。路径查找算法用于供应链优化的路线规划等应用场景,而页面排名等中心性算法则用于识别图形中最具影响力的卖家。同样,诸如连接组件、聚类和中心性算法之类的算法可用于欺诈检测应用场景,以确定连接的网络是一群朋友还是由一组有组织的欺诈者组成的欺诈团伙。
Neptune Analytics 复合 ACID 标准吗?
是,Neptune Analytics 符合 ACID 标准,具有很强的一致性。
Neptune Analytics 支持的向量的最大维度是多少?
Neptune Analytics 支持对存储在图形数据中的嵌入(最多 65000 个维度)进行向量搜索索引。
我可以添加多少个索引?
Neptune Analytics 支持对存储在图形数据中的嵌入进行一个向量搜索索引。
我需要使用 Neptune Analytics 的单独向量数据库吗?
我能否在 Amazon VPC 中使用 Neptune Analytics 吗?
是的,您可以在 Amazon VPC 中使用 Neptune Analytics。对于私有访问,您可以创建禁用“public-access”(默认)的图形,并指定 VPC 中的子网。Neptune Analytics 将在您的 VPC 中为每个图形创建一个请求者管理的 VPC 接口端点。您将能够将安全组和端点策略附加到端点,但无法删除端点。将收取标准 VPC 接口端点费用。
我是否能通过公共互联网访问 Neptune Analytics?
符合。您可以选择启用特定于图形的公共端点通过互联网连接到图形。使用 Neptune Analytics,所有客户端都必须进行身份验证,所有请求都需要通过 SigV4 签名,并且所有连接都必须使用图形 ID 与图形进行交互。
Neptune Analytics 是否支持高可用性?
是,Neptune Analytics 提供具有增强可用性和持久性的多可用区部署。默认情况下,它会在单独的可用区中预调配热备用服务器。使用热备用服务器时,失效转移时间以秒为单位。如果没有备用设备,该服务会在几分钟内预调配新的底层计算容量。
Neptune Analytics 的成本是多少?
有关最新定价信息,请参阅 Neptune 定价页面。
Neptune Analytics 在哪些区域可用?
有关提供 Neptune Analytics 的区域的更多信息,请参阅 AWS 区域表。
Neptune ML
Neptune ML 支持哪些语言?
Neptune ML 支持 Gremlin 和 SPARQL。
使用 Neptune ML 我能完成什么样的预测任务?
Neptune ML 提供节点分类、多类分类、节点回归、边缘分类、单类分类、边缘回归和链接(边缘)预测。有关更多详细信息,请访问 Neptune 用户指南。
Neptune ML 的成本是多少?
可在 Neptune 定价页面找到定价详细信息。