Amazon Neptune 引擎版本 1.3.0.0(2023 年 11 月 15 日) - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon Neptune 引擎版本 1.3.0.0(2023 年 11 月 15 日)

截至 2023 年 11 月 15 日,引擎版本 1.3.0.0 正在普遍部署中。请注意,新版本在每个区域的发布需要几天的时间。

注意

引擎版本 1.3.0.0 为自定义参数组和自定义集群参数组引入了一种新格式。因此,如果您要从 1.3.0.0 之前的引擎版本升级到引擎版本 1.3.0.0 或更高版本,则必须使用参数组系列 neptune1.3 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 neptune1neptune1.2,而这些参数组不适用于版本 1.3.0.0 及更高版本。请参阅Amazon Neptune 参数组了解更多信息。

此引擎版本中的新增功能

  • 发布了 Neptune 数据 API

    Amazon Neptune 数据 API 为 Neptune 的 40 多种数据操作提供 SDK 支持,包括数据加载、查询执行、数据查询和机器学习。它支持所有三种 Neptune 查询语言(Gremlin、openCypher 和 SPARQL),并可用于所有 SDK 语言中。它自动签署 API 请求,极大地简化了将 Neptune 集成到应用程序中的过程。

  • 增加了对将 OpenSearch 无服务器与 Neptune 集成的支持。

此引擎版本中的改进

对 Neptune 引擎更新的改进

Neptune 改变了发布引擎更新的方式,因此,您可以更好地控制更新过程。Neptune 现在不发布针对不间断更改的补丁,而是发布次要版本,这些版本可以使用 AutoMinorVersionUpgrade 实例字段进行控制,并且您可以通过订阅 RDS-EVENT-0156 事件来接收有关该版本的通知。

有关这些更改的更多信息,请参阅维护 Amazon Neptune 数据库集群

传输中加密改进

Neptune 不再支持以下密码套件:

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

在 TLS 1.2 中,Neptune 仅支持以下强密码套件:

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

Gremlin 改进
  • 在 DFE 引擎中添加了对以下 Gremlin 步骤的支持:

    • FoldStep

    • GroupStep

    • GroupCountStep

    • TraversalMapStep

    • UnfoldStep

    • LabelStep

    • PropertyKeyStep

    • PropertyValueStep

    • AndStep

    • OrStep

    • ConstantStep

    • CountGlobalStep

    • ProjectStep

  • 优化了 Gremlin DFE 查询计划,以免在使用 by() 调制时进行全顶点扫描。

  • 极大地提高了低基数和低延迟查询的性能。

  • 添加了对 TinkerPop Or 筛选谓词的 DFE 支持。

  • 改进了 DFE 对相同键上筛选器的遍历支持,适用于如下查询:

    g.withSideEffect("Neptune#useDFE", true) .V() .has('name', 'marko') .and( or( has('name', eq("marko")), has('name', eq("vardas")) ) )
  • 改进了 fail() 步骤的错误处理。

openCypher 改进
  • 极大地提高了低基数和低延迟查询的性能。

  • 提高了在查询包含许多节点类型时的查询计划性能。

  • 减少了所有 VLP 查询的延迟。

  • 通过删除单节点模式查询的冗余管道联接来提高性能。

  • 提高了包含带循环的多跳模式的查询的性能,如下所示:

    MATCH (n)-->()-->()-->(m) RETURN n m
SPARQL 改进
  • 引入了一个新的 SPARQL 运算符:PipelineHashIndexJoin

  • 提高了 SPARQL 查询的 URI 验证性能。

  • 通过批量解析字典术语,提高了 SPARQL 全文搜索查询的性能。

在此引擎版本中修复的缺陷

Gremlin 修复
  • 修复了一个 Gremlin 错误,即在检查 Gremlin 查询状态端点以查找子遍历中具有谓词的查询是否具有未在 DFE 引擎中原生处理的步骤时,会发生事务泄漏。

  • 修复了一个 Gremlin 错误,即 valueMap() 无法在 DFE 引擎的 by() 遍历下进行优化。

  • 修复了一个 Gremlin 错误,即附加到 UnionStep 的步骤标签无法分别传播到其子遍历的最后一个路径元素。

  • 修复了一个 Gremlin 错误,即查询因为包含太多 TinkerPop 步骤而失败,然后无法清理。

  • 修复了一个 Gremlin 错误,即 NullPointerException 会引发 mergeVmergeE 步骤。

  • 修复了一个 Gremlin 错误,即当其中一些字符串输出包含空格字符时,order() 无法对字符串输出正确排序。

  • 修复了在 DFE 引擎中处理 valueMap 步骤时出现的 Gremlin 正确性问题。

  • 修复了在键遍历中嵌套 GroupStepGroupCountStep 时出现的 Gremlin 正确性问题。

openCypher 修复
  • 修复了一个 openCypher 错误,该错误涉及有关空字符的错误处理。

  • 修复了 openCypher Bolt 事务处理中的一个错误。

SPARQL 修复
  • 修复了一个 SPARQL 错误,即递归函数中的值无法正确解析。

  • 修复了在通过 VALUES 子句注入大量值时可能导致性能下降的 SPARQL 错误。

  • 修复了一个 SPARQL 错误,即在使用带有语言标签的文本上调用 REGEX 运算符时从不会成功。

此版本支持的查询语言版本

在将数据库集群升级到版本 1.3.0.0 之前,请确保您的项目与以下查询语言版本兼容:

  • 支持的 Gremlin 最早版本:3.6.2

  • 支持的 Gremlin 最新版本:3.6.2

  • openCypher 版本:Neptune-9.0.20190305-1.0

  • SPARQL 版本:1.1

引擎版本 1.3.0.0 的升级路径

您可以从引擎版本 1.2.0.0 或更高版本升级到此版本。

升级到此版本

如果数据库集群运行的引擎版本有此版本的升级路径,则可以立即对其进行升级。您可以使用控制台上的数据库集群操作或使用 SDK 升级任何符合条件的集群。以下 CLI 命令将立即升级符合条件的集群:

对于 Linux、OS X 或 Unix:

aws neptune modify-db-cluster \ --db-cluster-identifier (your-neptune-cluster) \ --engine-version 1.3.0.0 \ --allow-major-version-upgrade \ --apply-immediately

对于 Windows:

aws neptune modify-db-cluster ^ --db-cluster-identifier (your-neptune-cluster) ^ --engine-version 1.3.0.0 ^ --allow-major-version-upgrade ^ --apply-immediately

您可以指定 --no-apply-immediately,而不是 --apply-immediately。要执行主要版本升级,需要使用 allow-major-upgrade 参数。另外,请务必包括引擎版本,否则您的引擎可能会升级到其它版本。

如果集群使用自定义集群参数组,请确保包含以下参数以指定此参数组:

--db-cluster-parameter-group-name (name of the custom DB cluster parameter group)

同样,如果集群中的任何实例使用自定义数据库参数组,请确保包含此参数以指定此参数组:

--db-instance-parameter-group-name (name of the custom instance parameter group)

升级前始终先测试

发布新的主要或次要 Neptune 引擎版本时,请务必先在该版本上测试您的 Neptune 应用程序,然后再升级到该版本。即使是次要版本升级,也可能引入会影响代码的新特征或行为。

首先,将当前版本的发行说明页面与目标版本的发行说明页面进行比较,以查看查询语言版本是否会发生变化或是否会发生其它重大更改。

在升级生产数据库集群之前测试新版本的最佳方法是克隆生产集群,以便克隆运行新的引擎版本。然后,您可以在不影响生产数据库集群的情况下在克隆上运行查询。

请在升级之前始终创建手动快照

在执行升级之前,我们强烈建议您始终创建数据库集群的手动快照。拥有自动快照只能提供短期保护,而手动快照在您显式删除它之前仍然可用。

在某些情况下,作为升级过程的一部分,Neptune 会为您创建手动快照,但您不应依赖此快照,无论如何都应创建自己的手动快照。

当您确定不需要将数据库集群恢复到其升级前的状态时,可以显式删除自己创建的手动快照以及 Neptune 可能已创建的手动快照。如果 Neptune 创建手动快照,则其名称将以 preupgrade 开头,后跟数据库集群的名称、源引擎版本、目标引擎版本和日期。

注意

如果您在待处理操作正在进行时尝试升级,则可能会遇到如下错误:

We're sorry, your request to modify DB cluster (cluster identifier) has failed. Cannot modify engine version because instance (instance identifier) is running on an old configuration. Apply any pending maintenance actions on the instance before proceeding with the upgrade.

如果遇到此错误,请等待待处理操作完成,或者立即触发维护时段,让之前的升级完成。

有关升级引擎版本的更多信息,请参阅维护 Amazon Neptune 数据库集群。如果您有任何问题或疑问,可通过社区论坛和 Amazon Premium Support 联系 Amazon Support 团队。