

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

# Amazon Neptune 的引擎版本
<a name="engine-releases"></a>

Amazon Neptune 定期发布引擎更新。

您可以使用[实例状态 API](access-graph-status.md) 或 Neptune 控制台确定当前已安装的引擎发行版。通过版本号，您可以得知自己运行的是原始主要版本、次要版本还是补丁版本。有关版本编号的更多信息，请参阅[引擎版本号](cluster-maintenance.md#engine-version-numbers)。

有关更新的更多一般信息，请参阅[集群维护](cluster-maintenance.md)。

从引擎版本 1.3.0.0 开始，引擎版本的结构将如下表所示。次要版本号是经过评估以进行 [`AutoMinorVersionUpgrade`](engine-maintenance-management.md#using-amvu) 处理的版本号。


| 版本 | 产品版本 | 主要版本 | 次要版本 | 修补版本 | Status | Released | 使用寿命结束 | 升级到： | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| [1.4.7.0](engine-releases-1.4.7.0.md) | 1 | 4 | 7 | 0 | *处于活动状态* | 2026-03-03 | 2027-06-03 | 不适用 | 
| [1.4.6.3](engine-releases-1.4.6.3.md) | 1 | 4 | 6 | 3 | *处于活动状态* | 2025-12-18 | 2027-06-03 | 1.4.7.0 | 
| [1.4.6.2](engine-releases-1.4.6.2.md) | 1 | 4 | 6 | 2 | *处于活动状态* | 2025-11-18 | 2027-06-03 | 1.4.7.0 | 
| [1.4.6.1](engine-releases-1.4.6.1.md) | 1 | 4 | 6 | 1 | *处于活动状态* | 2025-09-18 | 2027-03-06 | 1.4.6.2 | 
| [1.4.6.0](engine-releases-1.4.6.0.md) | 1 | 4 | 6 | 0 | *处于活动状态* | 2025-09-02 | 2027-03-06 | 1.4.6.1 | 
| [1.4.5.1](engine-releases-1.4.5.1.md) | 1 | 4 | 5 | 1 | *处于活动状态* | 2025-06-30 | 2027-03-06 | 1.4.6.0 | 
| [1.4.5.0](engine-releases-1.4.5.0.md) | 1 | 4 | 5 | 0 | *处于活动状态* | 2025-04-09 | 2027-03-06 | 1.4.5.1 | 
| [1.4.4.0](engine-releases-1.4.4.0.md) | 1 | 4 | 4 | 0 | *处于活动状态* | 2025-02-24 | 2027-03-06 | 1.4.5.0 | 
| [1.4.3.0](engine-releases-1.4.3.0.md) | 1 | 4 | 3 | 0 | *处于活动状态* | 2025-01-21 | 2027-03-06 | 1.4.4.0 | 
| [1.4.2.0](engine-releases-1.4.2.0.md) | 1 | 4 | 2 | 0 | *处于活动状态* | 2024-12-19 | 2027-03-06 | 1.4.3.0 | 
| [1.4.1.0](engine-releases-1.4.1.0.md) | 1 | 4 | 1 | 0 | *处于活动状态* | 2024-11-21 | 2027-03-06 | 1.4.2.0 | 
| [1.4.0.0](engine-releases-1.4.0.0.md) | 1 | 4 | 0 | 0 | *处于活动状态* | 2024-11-06 | 2027-03-06 | 1.4.1.0 | 
| [1.3.4.0](engine-releases-1.3.4.0.md) | 1 | 3 | 4 | 0 | *处于活动状态* | 2024-10-01 | 2027-03-06 | 1.4.0.0 | 
| [1.3.3.0](engine-releases-1.3.3.0.md) | 1 | 3 | 3 | 0 | *处于活动状态* | 2024-08-05 | 2027-03-06 | 1.3.4.0 | 
| [1.3.2.1](engine-releases-1.3.2.1.md) | 1 | 3 | 2 | 1 | *处于活动状态* | 2024-06-20 | 2027-03-06 | 1.3.3.0 | 
| [1.3.2.0](engine-releases-1.3.2.0.md) | 1 | 3 | 2 | 0 | *处于活动状态* | 2024-06-10 | 2027-03-06 | 1.3.2.1 | 
| [1.3.1.0](engine-releases-1.3.1.0.md) | 1 | 3 | 1 | 0 | *处于活动状态* | 2024-03-06 | 2027-03-06 | 1.3.2.1 | 
| [1.3.0.0](engine-releases-1.3.0.0.md) | 1 | 3 | 0 | 0 | *处于活动状态* | 2023-11-15 | 2027-03-06 | 1.3.2.1 | 

下表列出了自 1.0.1.0 以来的所有引擎版本以及版本信息。 end-of-life您可以参照此表中的日期来规划您的测试和升级周期。


| 版本 | 主要版本 | 次要版本 | Status | Released | 使用寿命结束 | 升级到： | 
| --- | --- | --- | --- | --- | --- | --- | 
| [1.2.1.2](engine-releases-1.2.1.2.md) | 1.2 | 1.2 | *处于活动状态* | 2024-08-05 | 2026-06-30 | 1.3.0.0 | 
| [1.2.1.1](engine-releases-1.2.1.1.md) | 1.2 | 1.1 | *处于活动状态* | 2024-03-11 | 2026-06-30 | 1.3.0.0 | 
| [1.2.1.0](engine-releases-1.2.1.0.md) | 1.2 | 1.0 | *处于活动状态* | 2023-03-08 | 2026-06-30 | 1.3.0.0 | 
| [1.2.0.2](engine-releases-1.2.0.2.md) | 1.2 | 0.2 | *处于活动状态* | 2022-11-16 | 2026-06-30 | 1.3.0.0 | 
| [1.2.0.1](engine-releases-1.2.0.1.md) | 1.2 | 0.1 | *处于活动状态* | 2022-10-26 | 2026-06-30 | 1.3.0.0 | 
| [1.2.0.0](engine-releases-1.2.0.0.md) | 1.2 | 0.0 | *处于活动状态* | 2022-07-21 | 2026-06-30 | 1.3.0.0 | 
| [1.1.1.0](engine-releases-1.1.1.0.md) | 1.1 | 1.0 | *处于活动状态* | 2022-04-19 | 2026-06-30 | 1.2.1.0 | 
| [1.1.0.0](engine-releases-1.1.0.0.md) | 1.1 | 0.0 | *已弃用* | 2021-11-19 | 2025-03-15 | 1.1.1.0 | 
| [1.0.5.1](engine-releases-1.0.5.1.md) | 1.0 | 5.1 | *已弃用* | 2021-10-01 | 2023-01-30 | 1.1.0.0 | 
| [1.0.5.0](engine-releases-1.0.5.0.md) | 1.0 | 5.0 | *已弃用* | 2021-07-27 | 2023-01-30 | 1.1.0.0 | 
| [1.0.4.2](engine-releases-1.0.4.2.md) | 1.0 | 4.2 | *已弃用* | 2021-06-01 | 2023-01-30 | 1.1.0.0 | 
| [1.0.4.1](engine-releases-1.0.4.1.md) | 1.0 | 4.1 | *已弃用* | 2020-12-08 | 2023-01-30 | 1.1.0.0 | 
| [1.0.4.0](engine-releases-1.0.4.0.md) | 1.0 | 4.0 | *已弃用* | 2020-10-12 | 2023-01-30 | 1.1.0.0 | 
| [1.0.3.0](engine-releases-1.0.3.0.md) | 1.0 | 3.0 | *已弃用* | 2020-08-03 | 2023-01-30 | 1.1.0.0 | 
| [1.0.2.2](engine-releases-1.0.2.2.md) | 1.0 | 2.2 | *已弃用* | 2020-03-09 | 2022-07-29 | 1.0.3.0 | 
| [1.0.2.1](engine-releases-1.0.2.1.md) | 1.0 | 2.1 | *已弃用* | 2019-11-22 | 2022-07-29 | 1.0.3.0 | 
| [1.0.2.0](engine-releases-1.0.2.0.md) | 1.0 | 2.0 | *已弃用* | 2019-11-08 | 2020-05-19 | 1.0.3.0 | 
| [1.0.1.2](engine-releases-1.0.1.2.md) | 1.0 | 1.2 | *已弃用* | 2019-10-15 |  — |  — | 
| [1.0.1.1](engine-releases-1.0.1.1.md) | 1.0 | 1.1 | *已弃用* | 2019-08-13 |  — |  — | 
| [1.0.1.0.\$1](engine-releases-1.0.1.0.md) | 1.0 | 1.0.\$1 | *已弃用* | 2019-07-02 及之前 |  — |  — | 

## 主要发动机版本 end-of-life规划
<a name="eol-planning"></a>

Neptune 引擎版本几乎总是在日历季度末达到使用寿命的尽头。只有在出现重大的安全或可用性问题时，才会出现例外。

当引擎版本达到其使用寿命结束时，您需要将 Neptune 数据库升级到较新的版本。

通常，Neptune 引擎版本将继续可用，如下所示：
+ **次要引擎版本：**次要引擎版本在发布后的至少 6 个月内保持可用。
+ **主要引擎版本：**主要引擎版本在发布后的至少 12 个月内保持可用。

在引擎版本终止使用前至少 3 个月，系统 AWS 会自动向与您的 AWS 账户关联的电子邮件地址发送电子邮件通知，并将相同的消息发布到您的 Healt [AWS h Das](https://docs.aws.amazon.com/health/latest/ug/aws-health-dashboard-status.html) hboard。这将使您有时间计划和准备升级。

当引擎版本达到其使用寿命结束时，您将无法再使用该版本创建新的集群或实例，自动缩放功能也无法使用该版本创建实例。

实际达到使用寿命结束的引擎版本将在维护时段期间自动升级。在引擎版本使用寿命结束前 3 个月发送给您的邮件将包含有关此自动更新将涉及的内容的详细信息，包括您将自动升级到的版本、对数据库集群的影响以及我们建议的操作。

**重要**  
您有责任使数据库引擎版本保持最新。 AWS 敦促所有客户将其数据库升级到最新的引擎版本，以便从最新的安全、隐私和可用性保护措施中受益。如果您在弃用日期之后在不受支持的引擎或软件（“旧版引擎”）上运行数据库，则更有可能面临安全、隐私和运营风险，包括停机事件。  
在任何引擎上操作您的数据库均受管理您使用 AWS 服务的协议的约束。传统引擎并非普遍可用。 AWS 不再为传统引擎提供支持，如果 AWS 确定旧版引擎对服务、其关联公司或任何第三方构成安全或责任风险或损害风险，则 AWS 可以随时限制对任何传统引擎的访问或使用。 AWS您决定继续在旧版引擎中运行您的内容可能会导致您的内容不可用、损坏或无法恢复。在旧版引擎上运行的数据库受服务水平协议 (SLA) 例外情况的约束。  
在旧版引擎上运行的数据库和相关软件包含错误、错误、缺陷和 AND/OR 有害组件。因此，无论协议或服务条款中存在任何相反之处，都 AWS 是 “按原样” 提供传统引擎。

# 亚马逊 Neptune Engine 版本 1.4.7.0 (2026-03-03)
<a name="engine-releases-1.4.7.0"></a>

截至2026年3月03日，引擎版本1.4.7.0已全面部署。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
**升级暂时不可用**  
由于与全局数据库 (GDB) 集群升级相关的已知问题，目前无法升级到 Neptune 引擎版本 1.4.7.0。我们预计将在几周内启用升级。

## 此引擎版本中的新增功能
<a name="engine-releases-1470-features"></a>
+ OpenCypher 通过 OC 从 S3 中读取对 Parquet 和 CSV 文件的支持。参见[neptune.read ()](access-graph-opencypher-21-extensions-s3-read.md)文档。
+ OpenCypher 地理空间查询功能。此版本包括基于 ISO/IEC 13249-3:2016 标准的 12 个空间类型函数、存储在新的地理索引中以便快速检索的 POINT 的新几何属性类型，以及对熟知文本 (WKT) 格式的支持。请参阅[空间数据](access-graph-opencypher-22-spatial-data.md)和[空间函数](access-graph-opencypher-22-spatial-functions.md)文档。

## 此引擎版本中的改进
<a name="engine-releases-1470-improvements"></a>
+ 提高了返回小结果集的 SPARQL 子查询的查询性能，包括 LIMIT 值较小的子查询
+ 在变量受大量常量值（例如，SPARQL VALUES 子句或 UNWIND 子句）约束的情况下，提高了 OpenCypher 查询性能
+ 通过对字典插入进行一些优化，改进了低延迟插入查询
+ 在 DFE 引擎中添加了新的 Gremlin 语言步骤（参见 DFE 中的 [Gremlin 步骤介绍](gremlin-step-coverage-in-DFE.md)）。
  + 路径和遍历步骤：`order(local)`
  + 汇总和收集步骤：`dedup(local)`
+  OpenCypher 查询的性能改进，包括`COLLECT(DISTINCT ...)`。使用引擎版本 1.4.7.0 或更高版本时，不再需要[重写收集 (DISTINCT...) 查询](best-practices-content-11.md)中描述的重写。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1470-defects"></a>

常规修复：
+ 修复了加载大量边缘文件时批量加载无响应的问题
+ 修复了影响从 1.4.0.0、1.4.1.0 和 1.4.2.0 版本起的辅助集群更新的全局数据库集群修补问题。

## 此版本支持的查询语言版本
<a name="engine-releases-1.4.7.0-query-versions"></a>

在将数据库集群升级到版本 1.4.7.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.7.1`
+ *支持的 Gremlin 最新版本：*`3.7.1`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.4.7.0 的升级路径
<a name="engine-releases-1.4.7.0-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.4.7.0-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.4.7.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.4.7.0 ^
4.     --allow-major-version-upgrade ^
5.     --apply-immediately
```

您可以指定 `--no-apply-immediately`，而不是 `--apply-immediately`。要执行主要版本升级， allow-major-version-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)
```

### 升级前始终先测试
<a name="engine-1.4.7.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.4.7.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何疑问或疑虑， AWS 可通过社区论坛和[AWS 高级支持与支持团队联系](https://aws.amazon.com/support)。

# 亚马逊 Neptune Engine 版本 1.4.6.3 (2025-12-18)
<a name="engine-releases-1.4.6.3"></a>

截至 2025 年 12 月 18 日，引擎版本 1.4.6.3 已全面部署。请注意，新版本在每个区域的发布需要几天的时间。

## 此引擎版本中修复的缺陷 (1.4.6.3)
<a name="engine-releases-1.4.6.3-defects"></a>

**常规修复**
+  在数据流引擎 (DFE) 执行期间，一些被错误归类为内部服务器错误的异常现在可以正确报告为内存不足异常。
+  修复了当内联边缘 ID 验证遇到意外字典条目类型时，可能导致 Neptune 数据库实例在启动过程中失败的问题。内联边缘 ID 验证现在仅适用于 Gremlin 查询引擎配置，并且可以优雅地处理非 URI 字典条目。
+  修复了由于端点解析不正确而导致 Neptune 批量加载器在某些区域无法连接到 S3 的问题。

**openCypher 修复**
+  修复了在使用查询中偶尔发生的引擎崩溃问题`CALL`。
+  修复了突变查询的超时和取消处理。
+  修复了当传递给的其中一个属性值为空值时，`MERGE`子句给`MERGE`出的结果不正确的问题。

## 此版本支持的查询语言版本
<a name="engine-releases-1.4.6.3-query-versions"></a>

在将数据库集群升级到版本 1.4.6.3 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.7.1`
+ *支持的 Gremlin 最新版本：*`3.7.1`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.4.6.3 的升级路径
<a name="engine-releases-1.4.6.3-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.4.6.3-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.4.6.3 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.4.6.3 ^
4.     --allow-major-version-upgrade ^
5.     --apply-immediately
```

您可以指定 `--no-apply-immediately`，而不是 `--apply-immediately`。要执行主要版本升级， allow-major-version-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)
```

### 升级前始终先测试
<a name="engine-1.4.6.3-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.4.6.3-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何疑问或疑虑， AWS 可通过社区论坛和[AWS 高级支持与支持团队联系](https://aws.amazon.com/support)。

# 亚马逊 Neptune Engine 版本 1.4.6.2 (2025-11-18)
<a name="engine-releases-1.4.6.2"></a>

截至 2025 年 11 月 18 日，引擎版本 1.4.6.2 已全面部署。请注意，新版本在每个区域的发布需要几天的时间。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.4.6.2-defects"></a>

**常规修复**
+  在数据流引擎 (DFE) 执行期间，一些被错误归类为内部故障异常 (IFEs) 的异常现在可以正确报告为并发修改异常 (CMEs)。

**Gremlin 修复**
+  与 DFE 相比，提高了 Gremlin 的发动机稳定性 

**openCypher 修复**
+  修复了 Neptune 引擎版本 1.4.6.0 中引入的问题，即 OpenCypher MERGE 查询未正确处理传入的关系方向 (←)。使用像 MERGE (n) ← [: type]-(m) 这样的模式的查询现在可以创建具有正确方向的关系。
+  修复了未正确回滚的写入器事务的提交操作失败的问题。
+  引用参数化值的 MERGE 查询现在支持优化的查询计划。

## 此版本支持的查询语言版本
<a name="engine-releases-1.4.6.2-query-versions"></a>

在将数据库集群升级到版本 1.4.6.2 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.7.1`
+ *支持的 Gremlin 最新版本：*`3.7.1`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.4.6.2 的升级路径
<a name="engine-releases-1.4.6.2-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.4.6.2-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.4.6.2 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.4.6.2 ^
4.     --allow-major-version-upgrade ^
5.     --apply-immediately
```

您可以指定 `--no-apply-immediately`，而不是 `--apply-immediately`。要执行主要版本升级， allow-major-version-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)
```

### 升级前始终先测试
<a name="engine-1.4.6.2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.4.6.2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何疑问或疑虑，AWS可通过社区论坛和[AWS高级支持与支持团队联系](https://aws.amazon.com/support)。

# Amazon Neptune 引擎版本 1.4.6.1（2025 年 9 月 18 日）
<a name="engine-releases-1.4.6.1"></a>

截至 2025 年 9 月 18 日，引擎版本 1.4.6.1 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.4.6.1-defects"></a>

**常规修复**
+  删除了版本 [Amazon Neptune 引擎版本 1.4.6.0（2025 年 9 月 2 日）](engine-releases-1.4.6.0.md) 中引入的对使用不符合 RFC 1918 规范的私有 IP 范围的集群的网络检查。

**Gremlin 修复**
+  修复了交易的 websocket 连接管理问题。
+  修复了使用 gremlin DFE 模式时出现的罕见实例重启问题 

## 此版本支持的查询语言版本
<a name="engine-releases-1.4.6.1-query-versions"></a>

在将数据库集群升级到版本 1.4.6.1 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.7.1`
+ *支持的 Gremlin 最新版本：*`3.7.1`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.4.6.1 的升级路径
<a name="engine-releases-1.4.6.1-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.4.6.1-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.4.6.1 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.4.6.1 ^
4.     --allow-major-version-upgrade ^
5.     --apply-immediately
```

您可以指定 `--no-apply-immediately`，而不是 `--apply-immediately`。要执行主要版本升级， allow-major-version-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)
```

### 升级前始终先测试
<a name="engine-1.4.6.1-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.4.6.1-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何疑问或疑虑， AWS 可通过社区论坛和[AWS 高级支持与支持团队联系](https://aws.amazon.com/support)。

# Amazon Neptune 引擎版本 1.4.6.0（2025 年 9 月 2 日）
<a name="engine-releases-1.4.6.0"></a>

截至 2025 年 9 月 2 日，引擎版本 1.4.6.0 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**警告**  
 1.4.6.0 引擎版本包括针对以下集群的新网络检查：这些集群在数据库 VPC 中使用不符合 RFC 1918 规范的私有 IP 范围，且未启用 IAM 身份验证。如果您有此 VPC 和 IAM 配置，则需要更新您的数据库 VPC 以使用 RFC 1918 私有 IP 范围 and/or 启用 IAM 身份验证，以避免升级到 1.4.6.0 后出现查询错误。

## 此引擎版本中的新增功能
<a name="engine-releases-1.4.6.0-features"></a>
+  使用公共端点连接到 Neptune。有关更多信息，请参阅 [Neptune 公有端点](neptune-public-endpoints.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.4.6.0-improvements"></a>

**常规改进**
+  提高了更新操作的 SPARQL 性能。
+  提高了`CREATE``MERGE`、和`SET`（突变）操作的 OpenCypher 性能。
+  提高了 CALL 子查询操作的 OpenCypher 性能。

**openCypher 改进**
+  添加了新的查询提示以支持[查询级别超时](opencypher-query-hints-timeout-hint.md)。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.4.6.0-defects"></a>

**Gremlin 修复**
+  与 Gremlin 会话的连接必须发生在创建这些会话的同一个频道上，这意味着不可能将多个客户端实例连接到同一个会话。
+  Gremlin 会话总是在客户端关闭时关闭，但是现在，当服务器发起关闭连接操作时，它们也会关闭，这样可以防止意外或非预期的重新连接操作。
+  修复了读取大型 blob 类型数据的 Gremlin 查询的内存泄漏问题。

**openCypher 修复**
+  修复了 `CALL` 子查询之后的变量处理。
+  修复了正确处理算术溢出场景的`reduce`函数问题。
+  修复了启用查询计划缓存时影响参数化查询的内存泄漏问题。
+  修复了在复杂`WHERE`子句中`NOT EXISTS`使用的问题。
+  修复了并发内存异常 (CMEs) 被误报为的问题。 BadRequestException

**SPARQL 修复**
+  针对远程源不可用时的 SPARQL `LOAD/UNLOAD` 错误消息进行了修复。

## 此版本支持的查询语言版本
<a name="engine-releases-1.4.6.0-query-versions"></a>

在将数据库集群升级到版本 1.4.6.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.7.1`
+ *支持的 Gremlin 最新版本：*`3.7.1`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.4.6.0 的升级路径
<a name="engine-releases-1.4.6.0-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.4.6.0-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.4.6.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.4.6.0 ^
4.     --allow-major-version-upgrade ^
5.     --apply-immediately
```

您可以指定 `--no-apply-immediately`，而不是 `--apply-immediately`。要执行主要版本升级， allow-major-version-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)
```

### 升级前始终先测试
<a name="engine-1.4.6.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.4.6.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何疑问或疑虑，AWS可通过社区论坛和[AWS高级支持与支持团队联系](https://aws.amazon.com/support)。

# Amazon Neptune 引擎版本 1.4.5.1（2025 年 6 月 30 日）
<a name="engine-releases-1.4.5.1"></a>

截至 2025 年 6 月 30 日，引擎版本 1.4.5.1 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.4.5.1-defects"></a>

**常规修复**
+  修复了影响所有查询语言的无服务器扩展问题。
+  修复了在列表上运行 `collect(distinct())` 时，某些 openCypher 查询时返回内部错误的问题。
+  修复了在使用 OpenSearch 无服务器时，某个并发 FTS 查询会导致其他并发 FTS 查询终止的问题。

## 此版本支持的查询语言版本
<a name="engine-releases-1.4.5.1-query-versions"></a>

在将数据库集群升级到版本 1.4.5.1 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.7.1`
+ *支持的 Gremlin 最新版本：*`3.7.1`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.4.5.1 的升级路径
<a name="engine-releases-1.4.5.1-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.4.5.1-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.4.5.1 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.4.5.1 ^
4.     --allow-major-version-upgrade ^
5.     --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)
```

### 升级前始终先测试
<a name="engine-1.4.5.1-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.4.5.1-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.4.5.0（2025 年 4 月 9 日）
<a name="engine-releases-1.4.5.0"></a>

截至 2025 年 4 月 9 日，引擎版本 1.4.5.0 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**警告**  
 由于某些无服务器配置可能出现问题，我们已暂时暂停升级到 1.4.5.0 版本。我们建议升级到 1.4.5.1 引擎版本。升级到 1.4.5.0 的操作已被暂时禁用。

## 此引擎版本中的新增功能
<a name="engine-releases-1.4.5.0-features"></a>
+  在 DFE 引擎中新增了 Gremlin 语言步骤。
  +  **路径和遍历步骤：**asDate()、dateAdd()、dateDiff()、fail()、Inject()、label()、path()、project()、repeat()、sack()、select()、unfold()、disjunct()、drop()、identity()、intersect()、length()、loops()、barrier()、order()、range()、reverse()、sample()、cap()、split()、filter()、flatMap()、map()、sideEffect()、union()、index() 
  +  **聚合和收集步骤：**aggregate(global)、combine()、count()、dedup(global)、fold()、group()、groupCount() 
  +  **数学步骤：**max ()、mean()、min()、sum() 
  +  **元素步骤：**otherV()、elementMap()、element()、V()、out()、in()、both()、outE()、inE()、bothE()、outV()、inV()、bothV()、otherV() 
  +  **属性步骤：**properties()、key()、valueMap()、value() 
  +  **筛选步骤：**and()、coalesce()、coin()、is()、local()、none()、not()、or()、where() 
  +  **字符串操作步骤：**concat()、lTrim()、rTrim()、substring()、toLower()、toUpper()、trim() 
  + 

**谓词：**
    +  Compare：eq、neq、lt、lte、gt、gte 
    +  Contains：within、without 
    +  TextP：结尾为、包含、、、不包含 notStartingWith notEndingWith 
    +  P：and、or、between、outside、inside 

 关于 DFE 中可用的所有 Gremlin 步骤的详细信息，请参阅 [DFE 中的 Gremlin 步骤覆盖](gremlin-step-coverage-in-DFE.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.4.5.0-improvements"></a>

**常规改进**
+  慢查询日志锁等待时间得到改进。慢查询日志现在包括共享锁和独占锁的等待时间指标。在延迟读写提升情况下，这些指标会作为每个事务的一部分存储。这些指标显示在慢查询日志的 storageCounters 部分。
+  不再支持的密码套件：
  +  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1 SHA256 
  +  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1 SHA384 
  +  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1CBC\$1 SHA256 
  +  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1 SHA384 

**Gremlin 改进**
+  向 Gremlin 语言新增了许多步骤。有关更多信息，请参阅 [DFE 中的 Gremlin 步骤覆盖](gremlin-step-coverage-in-DFE.md)。

**openCypher 改进**
+  CREATE、MERGE 和 SET（变更操作）性能提升。
+  CALL 子查询性能改进。
+  支持多部分 openCypher 响应的 HTTP 尾标头。有关更多信息，请参阅[可选的 HTTP 尾标头](https://docs.aws.amazon.com//neptune/latest/userguide/access-graph-opencypher-queries.html#optional-http-trailing-headers)。
+  向 openCypher 添加了 day、month 和 year 时间函数。有关更多信息，请参阅[时间函数](https://docs.aws.amazon.com//neptune/latest/userguide/access-graph-opencypher-extensions.html#temporal-functions)。

  ```
  RETURN day(datetime('2021-06-03T01:48:14Z'))
  {
    "results": [{
        "day(datetime('2021-06-03T01:48:14Z'))": 3
      }]
  }
  ```

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.4.5.0-defects"></a>

**常规修复**
+  修复了丢失 Audit/SlowQueryLog 日志文件的问题。

**Gremlin 修复**
+  修复了在禁用“结果缓存”功能时，Gremlin 查询出现的问题。结尾使用 iterate() 的查询会返回结果而非空响应。
+  修复了由于多个并发查询使用相同键导致的 Gremlin“结果缓存”问题。其中一个并发查询错误地返回了结果，而不是空结果。
+  修复了 Amazon S3 导出查询的问题：通过延长清理时间，避免因超时或取消导致的 Amazon S3 多部分上传失败。
+  修复了与 Gremlin Amazon S3 导出相关的权限问题。

**SPARQL 修复**
+  修复了在处理声明多个基数的 SPARQL 查询时 IRIs 会导致仅使用初始声明的问题。
+  修复了在处理使用无效模式字符串的 SPARQL `REPLACE` 函数时，会返回错误的问题。
+  修复了在处理带有不区分大小写（`"i"`）标志的 SPARQL `REPLACE` 函数处理 Unicode 数据时的问题。
+  修复了在解析使用无效 `\u` 和 `\U` 代码点转义序列的 SPARQL 查询时，可能导致无响应返回的问题。
+  修复了 SPARQL `IRI` 函数中的一个问题，该问题并不总是能 IRIs 根据当前基础 IRI 正确解析。
+  修复了导致`SPARQL INSERT DATA`使用前缀名称的`DELETE DATA`更新无法根据当前基础 IRI 正确解析的问题。 IRIs 

## 此版本支持的查询语言版本
<a name="engine-releases-1.4.5.0-query-versions"></a>

在将数据库集群升级到版本 1.4.5.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.7.1`
+ *支持的 Gremlin 最新版本：*`3.7.1`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.4.5.0 的升级路径
<a name="engine-releases-1.4.5.0-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.4.5.0-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.4.5.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.4.5.0 ^
4.     --allow-major-version-upgrade ^
5.     --apply-immediately
```

您可以指定 `--no-apply-immediately`，而不是 `--apply-immediately`。要执行主要版本升级， allow-major-version-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)
```

### 升级前始终先测试
<a name="engine-1.4.5.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.4.5.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何疑问或疑虑，AWS可通过社区论坛和[AWS高级支持与支持团队联系](https://aws.amazon.com/support)。

# Amazon Neptune 引擎版本 1.4.4.0（2025 年 2 月 24 日）
<a name="engine-releases-1.4.4.0"></a>

截至 2025 年 2 月 24 日，引擎版本 1.4.4.0 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**警告**  
 由于在处理数值类型参数的重复使用时存在缺陷，对于包含数值参数的参数化查询，这一使用案例中的查询计划缓存暂时不受支持。例如：  

```
MATCH (n:movie) WHERE n.runtime>=$minutes RETURN n 
      UNION 
      MATCH (n:show) WHERE n.duration>=$minutes RETURN n
      
      parameters={"minutes":130}
```
 对语句或字典索引执行大量索引搜索的查询，可能会出现约 5% 的性能回退。例如，获取所有顶点的计数，或获取所有顶点的 `id`，不会受到影响。获取所有顶点的所有属性，可能会出现最多 5% 的性能回退。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.4.4.0-defects"></a>

**常规修复**
+  修复了当 `WITH` 子句同时包含星号（`*`）和别名表达式时，会导致 openCypher 中的查询解析错误的问题。

## 此版本支持的查询语言版本
<a name="engine-releases-1.4.4.0-query-versions"></a>

在将数据库集群升级到版本 1.4.4.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.7.1`
+ *支持的 Gremlin 最新版本：*`3.7.1`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.4.4.0 的升级路径
<a name="engine-releases-1.4.4.0-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.4.4.0-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.4.4.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.4.4.0 ^
4.     --allow-major-version-upgrade ^
5.     --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)
```

### 升级前始终先测试
<a name="engine-1.4.4.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.4.4.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.4.3.0（2025 年 1 月 21 日）
<a name="engine-releases-1.4.3.0"></a>

截至 2025 年 1 月 21 日，引擎版本 1.4.3.0 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**警告**  
 由于在处理数值类型参数的重复使用时存在缺陷，对于包含数值参数的参数化查询，这一使用案例中的查询计划缓存暂时不受支持。例如：  

```
MATCH (n:movie) WHERE n.runtime>=$minutes RETURN n 
      UNION 
      MATCH (n:show) WHERE n.duration>=$minutes RETURN n
      
      parameters={"minutes":130}
```
 对语句或字典索引执行大量索引搜索的查询，可能会出现约 5% 的性能回退。例如，获取所有顶点的计数，或获取所有顶点的 `id`，不会受到影响。获取所有顶点的所有属性，可能会出现最多 5% 的性能回退。

## 此引擎版本中的新增特征
<a name="engine-releases-1.4.3.0-features"></a>
+  [将 Gremlin 查询结果导出到 Amazon S3](exporting-gremlin.md)。将 Gremlin 查询结果直接导出至 Amazon S3。该特征支持您将大型查询结果导出到 Amazon S3 存储桶，而不是作为查询响应返回，从而更高效地处理大规模结果集。

  ```
  g.V().
      hasLabel('Comment').
      valueMap().
      call('neptune.query.exportToS3', [
      'destination': 's3://your-bucket/path/result.json',
      'format': 'GraphSONv3',
      'keyArn': 'optional-kms-key-arn'
    ])
  ```
+  **R7i 实例**。R7i 实例系列（最高至 48xlarge）现已在以下区域提供：
  +  ap-northeast-1 – 亚太地区（东京） 
  +  ap-northeast-2 – 亚太地区（首尔） 
  +  ap-south-1 – 亚太地区（孟买） 
  +  ap-southeast-1 – 亚太地区（新加坡） 
  +  ap-southeast-2 – 亚太地区（悉尼） 
  +  ap-southeast-3 – 亚太地区（雅加达） 
  +  ca-central-1 – 加拿大（中部） 
  +  eu-central-1 – 欧洲地区（法兰克福） 
  +  eu-north-1 – 欧洲地区（斯德哥尔摩） 
  +  eu-south-2 – 欧洲（西班牙） 
  +  eu-west-1 – 欧洲地区（爱尔兰） 
  +  eu-west-2 – 欧洲地区（伦敦） 
  +  eu-west-3 – 欧洲地区（巴黎） 
  +  us-east-1 – 美国东部（弗吉尼亚州北部） 
  +  us-east-2 – 美国东部（俄亥俄州） 
  +  us-west-1 – 美国西部（北加利福尼亚） 
  +  us-west-2 – 美国西部（俄勒冈州） 

## 此引擎版本中的改进
<a name="engine-releases-1.4.3.0-improvements"></a>

**常规改进**
+  实验模式支持字典垃圾回收（GC）。

   启用后，后台作业会清理未使用的字典条目。它不会减少 `VolumeBytesUsed`，但会释放索引中的空间以便插入新的数据。与未启用字典 GC 时相比，启用字典 GC 时的 `VolumeBytesUsed` 增长率可能会降低。当 `neptune_streams` 参数未启用时，此功能适用于属性图数据（通过 Gremlin 或 openCypher 插入）。有关更多信息，请参阅 [Neptune 字典垃圾回收](storage-gc.md)。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.4.3.0-defects"></a>

**常规修复**
+  修复了两个在使用 DFE 引擎时影响 FreeableMemory 的内存不足问题。

**openCypher 修复**
+  修复了在处理重复行时，MERGE ON MATCH / ON CREATE 出现的问题。

  ```
  UNWIND [1, 1] AS id
  MERGE (n:Person {id: id})
    ON CREATE SET n.p = 5
    ON MATCH SET n.p = 6
  ```

## 此版本支持的查询语言版本
<a name="engine-releases-1.4.3.0-query-versions"></a>

在将数据库集群升级到版本 1.4.3.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.7.1`
+ *支持的 Gremlin 最新版本：*`3.7.1`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.4.3.0 的升级路径
<a name="engine-releases-1.4.3.0-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.4.3.0-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.4.3.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.4.3.0 ^
4.     --allow-major-version-upgrade ^
5.     --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)
```

### 升级前始终先测试
<a name="engine-1.4.3.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.4.3.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.4.2.0（2024 年 12 月 19 日）
<a name="engine-releases-1.4.2.0"></a>

截至 2024 年 12 月 19 日，引擎版本 1.4.2.0 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**警告**  
 由于在处理数值类型参数的重复使用时存在缺陷，对于包含数值参数的参数化查询，这一使用案例中的查询计划缓存暂时不受支持。例如：  

```
MATCH (n:movie) WHERE n.runtime>=$minutes RETURN n 
      UNION 
      MATCH (n:show) WHERE n.duration>=$minutes RETURN n
      
      parameters={"minutes":130}
```
 对语句或字典索引执行大量索引搜索的查询，可能会出现约 5% 的性能回退。例如，获取所有顶点的计数，或获取所有顶点的 `id`，不会受到影响。获取所有顶点的所有属性，可能会出现最多 5% 的性能回退。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.4.2.0-defects"></a>

**常规修复**
+  由于查询中重复使用数值类型参数存在处理错误，对在 OPTIONAL MATCH 和列表推导中，对同一变量进行多次属性访问的查询，修复了执行计划并改进了性能。例如：

  ```
  MATCH (n)
    WHERE n.name = 'A'
  OPTIONAL MATCH (n)-[:knows]->(m)
    WHERE m.name = 'C' or m.city = 'B'
  RETURN m
  ```

## 此版本支持的查询语言版本
<a name="engine-releases-1.4.2.0-query-versions"></a>

在将数据库集群升级到版本 1.4.2.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.7.1`
+ *支持的 Gremlin 最新版本：*`3.7.1`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.4.2.0 的升级路径
<a name="engine-releases-1.4.2.0-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.4.2.0-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.4.2.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.4.2.0 ^
4.     --allow-major-version-upgrade ^
5.     --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)
```

### 升级前始终先测试
<a name="engine-1.4.2.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.4.2.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.4.1.0（2024 年 11 月 21 日）
<a name="engine-releases-1.4.1.0"></a>

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

**警告**  
 由于在处理数值类型参数的重复使用时存在缺陷，对于包含数值参数的参数化查询，这一使用案例中的查询计划缓存暂时不受支持。例如：  

```
MATCH (n:movie) WHERE n.runtime>=$minutes RETURN n 
      UNION 
      MATCH (n:show) WHERE n.duration>=$minutes RETURN n
      
      parameters={"minutes":130}
```
 对语句或字典索引执行大量索引搜索的查询，可能会出现约 5% 的性能回退。例如，获取所有顶点的计数，或获取所有顶点的 `id`，不会受到影响。获取所有顶点的所有属性，可能会出现最多 5% 的性能回退。

## 此引擎版本中的新增功能
<a name="engine-releases-1.4.1.0-features"></a>
+  新增了对 `CALL` 子查询中只读子查询的支持，支持您在定义的作用域内执行操作。每条传入行都会执行一次 `CALL` 子查询，子查询返回的变量可用于封闭查询的外层作用域。外层作用域的变量可以通过 `WITH` 子句导入到 `CALL` 子查询中。有关更多信息，请参阅 [Neptune 中的 CALL 子查询支持](https://docs.aws.amazon.com//neptune/latest/userguide/access-graph-opencypher-extensions.html#call-subquery-support)。

  ```
  MATCH (origin:airport {code:"AUS"})-[:route]->(stopover) 
  CALL { 
    WITH stopover 
    MATCH (stopover)-[r:route]->(destination) 
    RETURN destination 
    ORDER BY r.dist DESC LIMIT 2 
  } 
  RETURN stopover, destination
  ```
+  新增了 openCypher 函数。我们引入了八个新函数，用于处理字符串、收集操作和集合排序，包括：`textIndexOf`、`collToSet`、`collSubtract`、`collIntersection`、`collSort`、`collSortMaps`、`collSortMulti` 和 `collSortNodes`。有关这些函数的描述、输入参数、输出和示例，请参阅 [Neptune openCypher 函数](https://docs.aws.amazon.com//neptune/latest/userguide/access-graph-opencypher-extensions.html#opencypher-compliance-new-functions)。

## 此引擎版本中的改进
<a name="engine-releases-1.4.1.0-improvements"></a>

**Gremlin 改进**
+  新的实验室模式参数 `AccurateQRCMemoryEstimation`。[Gremlin 查询结果缓存](https://docs.aws.amazon.com//neptune/latest/userguide/gremlin-results-cache.html)启用后，允许在数据库上缓存查询结果。默认情况下，会使用近似估算值来确定缓存结果的大小。启用实验室模式参数 `AccurateQRCMemoryEstimation` 后，缓存结果的大小将使用准确估算而非近似值。
+  修复了默认执行引擎中 Gremlin 查询的“not”过滤优化问题。该问题影响在边过滤时，not() 步骤与 outV()/inV()/otherV() 任意步骤结合使用的查询。示例查询包括：
  +  `g.E().hasLabel("knows").not(outV().hasId("5"))` 
  +  `g.V().has('airport','code','SDF').outE().where(not(otherV().has(id, within('1','5','7')))).count()` 

**openCypher 改进**
+  使用大型静态列表或映射的查询的性能得到改进。对于对嵌套映射的大列表使用 UNWIND 来插入或更新带属性的节点的某些查询，性能提升显著。
+  引入了新的 openCypher 查询提示，用于指示引擎假设查询中使用的值具有一致的数据类型。有关新[AssumeConsistentDataTypes](https://docs.aws.amazon.com//neptune/latest/userguide/opencypher-query-hints-AssumeConsistentDataTypes.html)的 OpenCypher 查询提示的详细信息，请参阅。
+  引入了一组[新的 openCypher 函数](https://docs.aws.amazon.com//neptune/latest/userguide/access-graph-opencypher-extensions.html#opencypher-compliance-new-functions)，用于处理文本和值集合。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.4.1.0-defects"></a>

**Gremlin 修复**
+  修复了在 `GraphTraversalSource` “g” 对象上使用任何`withStrategies()/withoutStrategies()/with()`步骤时， TinkerPop OSS 代码路径中用于构建遍历查询的字节码表示形式的问题。该问题会错误地将新指令追加到 Bytecode，而非替换同一策略对应的现有指令，进而导致结果缓存失效过程中出现缓存键不匹配，无法正常清除已存储的结果。

**openCypher 修复**
+  更正了 in CREATE/MERGE/MATCH 子``~id`match`句的行为。当使用诸如空或非字符串类型之类的无效``~id``值时，现在会为 CREATE/MERGE 子句抛出正确的异常，而`MATCH`子句返回的结果为零。
+  修复了当用户在聚合函数中使用不支持类型的值（例如 sum(<string>)）时可能抛出的 IFE。
+  修复了来自大量查询工作负载的某些低延迟突变查询因错误 OutOfMemory 而失败的问题。

**SPARQL 修复**
+  修复了处理包含 `'%'` 字符的 SPARQL 查询时出现的审计日志问题。

## 此版本支持的查询语言版本
<a name="engine-releases-1.4.1.0-query-versions"></a>

在将数据库集群升级到版本 1.4.1.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.7.1`
+ *支持的 Gremlin 最新版本：*`3.7.1`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.4.1.0 的升级路径
<a name="engine-releases-1.4.1.0-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.4.1.0-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.4.1.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.4.1.0 ^
4.     --allow-major-version-upgrade ^
5.     --apply-immediately
```

您可以指定 `--no-apply-immediately`，而不是 `--apply-immediately`。要执行主要版本升级， allow-major-version-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)
```

### 升级前始终先测试
<a name="engine-1.4.1.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.4.1.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何疑问或疑虑，AWS可通过社区论坛和[AWS高级支持与支持团队联系](https://aws.amazon.com/support)。

# Amazon Neptune 引擎版本 1.4.0.0（2024 年 11 月 6 日）
<a name="engine-releases-1.4.0.0"></a>

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

**注意**  
[引擎版本 1.3.0.0](engine-releases-1.3.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.3.0.0 之前的引擎版本升级到引擎版本 1.3.0.0 或更高版本，则必须使用参数组系列 `neptune1.3` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1` 或 `neptune1.2`，而这些参数组不适用于版本 1.3.0.0 及更高版本。同样，对于 1.4.0.0 及更高的引擎版本，您应使用 1.4.0.0 集群参数组。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。

**警告**  
 由于在处理数值类型参数的重复使用时存在缺陷，对于包含数值参数的参数化查询，这一使用案例中的查询计划缓存暂时不受支持。例如：  

```
MATCH (n:movie) WHERE n.runtime>=$minutes RETURN n 
      UNION 
      MATCH (n:show) WHERE n.duration>=$minutes RETURN n
      
      parameters={"minutes":130}
```
 对语句或字典索引执行大量索引搜索的查询，可能会出现约 5% 的性能回退。例如，获取所有顶点的计数，或获取所有顶点的 `id`，不会受到影响。获取所有顶点的所有属性，可能会出现最多 5% 的性能回退。

## 此引擎版本中的新增功能
<a name="engine-releases-1.4.0.0-features"></a>
+  当向属性图中添加边时，如果未显式指定 ID，服务器默认会分配一个基于 UUID 的边 ID，并存储在字典中。现在，通过设置新的群集参数`neptune_enable_server_generated_edge_id = 1`，服务器将 IDs 使用内部管理的 8 字节整数进行分配，而不会产生任何字典开销。这可以节省存储空间并提升查询性能，同时无需修改查询语句。该功能目前仅支持通过 Gremlin 查询语言执行的插入操作。
+  此外，在 DFE 引擎中增加了对 Gremlin limit() 步骤在嵌套遍历中执行的支持。

  ```
  g.V().project("foo").by(out().order().by(T.id).limit(1))
  ```

## 此引擎版本中的改进
<a name="engine-releases-1.4.0.0-improvements"></a>

**常规改进**
+  Neptune 会在大事务完成且日志不再用于恢复时，自动回收该事务占用的撤销存储空间。
+  支持全局数据库可存活副本。此功能支持在主集群的写入实例重启期间，副集群仍能处理读取请求。以前，写入实例重启时，副集群中的所有读取实例也会随之重启。而在本次版本中，副集群的读取实例在写入实例重启期间仍可继续提供读取服务，从而提升集群的读取可用性。
+  审计日志现在采用同步写入方式，这保证了每条查询都会被记录。但对于特别大的查询（>100kb）或高吞吐量工作负载（>1000qps），可能会对性能产生一定影响。

**Gremlin 改进**
+  默认情况下，每个查询的超时时间会被限制为小于集群级超时时间。在之前的版本中，引入了此检查，但需要通过实验室模式参数 “” StrictTimeoutValidation 显式启用。在此版本中，“StrictTimeoutValidation” 将默认启用，必须明确禁用才能保持原来的行为。

**openCypher 改进**
+  在之前的版本中，我们引入了[扩展的日期时间格式支持](https://docs.aws.amazon.com//neptune/latest/userguide/feature-opencypher-compliance.html#opencypher-compliance-time-na)，通过实验室模式参数 `DatetimeMillisecond` 启用。现在，默认情况下，扩展的日期时间格式支持已启用。

**SPARQL 改进**
+  新增了用于查询权限的显式 IAM 操作。

  ```
  Previously:
  COPY: WriteDataViaQuery & ReadDataViaQuery
  MOVE: WriteDataViaQuery & DeleteDataViaQuery
  DELETEINSERT: ReadDataViaQuery & DeleteDataViaQuery
  
   Now, 
  COPY: WriteDataViaQuery & ReadDataViaQuery & DeleteDataViaQuery 
  MOVE: WriteDataViaQuery & ReadDataViaQuery & DeleteDataViaQuery 
  DELETEINSERT: ReadDataViaQuery, WriteDataViaQuery if there is INSERT clause, DeleteDataViaQuery if there is DELETE clause.
  ```

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.4.0.0-defects"></a>

**常规修复**
+  修复了无服务器实例在纵向扩展时可能导致数据库重启的问题。
+  修复了审计日志文件管理相关的问题，该问题可能导致日志文件无法下载或轮换，在某些情况下还会增加 CPU 使用率。
+  修复了 DFE 引擎中优化导致 Map 输出生成延迟的查询问题。
+  修复了审计日志与慢查询日志时间戳不匹配的问题。

**Gremlin 修复**
+  解决了 Gremlin WebSocket 连接管理中的一个问题，即运行时间超过连接空闲超时时间的查询会过早终止。此问题特别影响使用 AIOHTTP 传输的 Python Gremlin 客户端。

**openCypher 修复**
+  修复了 collect 步骤中的问题：当 collect(distinct(n)) 查询结构中存在 null 值时，会导致内部失败异常。
+  修复了启用查询计划缓存时，查询可能出现 `NullPointerException` 问题。
+  修复了查询包含 LIMIT 子句时，评估的数据量超过实际需求的问题。
+  修复了在参数化查询中使用范围操作符（<、<=、>、>=）并启用查询计划缓存时，可能产生重复结果的问题。
+  修复了在使用 Bolt 连接执行 UNION 和 UNION ALL 操作时，结果列被转置的问题。

## 此版本支持的查询语言版本
<a name="engine-releases-1.4.0.0-query-versions"></a>

在将数据库集群升级到版本 1.4.0.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.7.1`
+ *支持的 Gremlin 最新版本：*`3.7.1`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.4.0.0 的升级路径
<a name="engine-releases-1.4.0.0-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.4.0.0-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.4.0.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.4.0.0 ^
4.     --allow-major-version-upgrade ^
5.     --apply-immediately
```

您可以指定 `--no-apply-immediately`，而不是 `--apply-immediately`。要执行主要版本升级， allow-major-version-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)
```

### 升级前始终先测试
<a name="engine-1.4.0.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.4.0.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何疑问或疑虑，AWS可通过社区论坛和[AWS高级支持与支持团队联系](https://aws.amazon.com/support)。

# Amazon Neptune 引擎版本 1.3.4.0（2024 年 10 月 1 日）
<a name="engine-releases-1.3.4.0"></a>

截至 2024 年 10 月 1 日，引擎版本 1.3.4.0 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
[引擎版本 1.3.0.0](engine-releases-1.3.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.3.0.0 之前的引擎版本升级到引擎版本 1.3.0.0 或更高版本，则必须使用参数组系列 `neptune1.3` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1` 或 `neptune1.2`，而这些参数组不适用于版本 1.3.0.0 及更高版本。同样，对于 1.4.0.0 及更高的引擎版本，您应使用 1.4.0.0 集群参数组。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。

**警告**  
 在某些条件下，当更新操作符与基于操作的授权策略结合使用时，SPARQL 1.1 更新操作可能会出现问题。如果您正在将 SPARQL 1.1 更新操作与基于操作的授权策略配合使用，建议升级到最新的 Neptune 次版本引擎（至少 1.3.4.0 版本），该版本包含了对此问题的修复。  
 由于在处理数值类型参数重复使用的场景（如下方查询示例）时存在问题，涉及数值参数值的参数化查询的查询计划缓存已被暂时禁用：  

```
MATCH (n:movie) WHERE n.runtime>=$minutes RETURN n 
UNION 
MATCH (n:show) WHERE n.duration>=$minutes RETURN n

parameters={"minutes":130}
```

## 此引擎版本中的改进
<a name="engine-releases-1.3.4.0-improvements"></a>
+  此外，在 DFE 引擎中增加了对 Gremlin limit() 步骤在嵌套遍历中执行的支持。
+  添加了与 Gremlin 结果缓存相关的 CloudWatch 指标，如下所示，这些指标可用于诊断和调整结果缓存延迟。有关详细信息，请参阅 [Neptune 指标](https://docs.aws.amazon.com//neptune/latest/userguide/cw-metrics.html#cw-metrics-available)。

  ```
  NumResultCacheHit
  NumResultCacheMiss
  ResultCacheSizeInBytes
  ResultCacheItemCount
  ResultCacheOldestItemTimestamp
  ResultCacheNewestItemTimestamp
  ```

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.3.4.0-defects"></a>

**常规改进**
+ 修复了在极少数情况下引擎崩溃而不是返回查询错误的问题。

**Gremlin 修复**
+  我们改进了客户端或代理 established/used 通过 HTTP 连接发送 websocket 升级请求时的请求处理和错误报告（在此之前，返回了 400 个响应，错误为 “未提供 gremlin 脚本，代码 MissingParameterException”）。
+  通过更新单基数属性值优化了`mergeV`步骤的处理。例如，Neptune 现在原生支持下面的查询。

  ```
  g.mergeV([(T.id): 1234]). option(onMatch, ['age': single(20), 'name': single('alice'), 'city': set('miami')])
  ```
+  修复了 Gremlin DFE 查询评估问题，该问题导致查询失败，并且. `InternalFailureException` 在某些模式下会出现此错误`select`，如以下示例所示：

  ```
  g.V("1").as("a").as("b").select("a","b").dedup()
  ```

**openCypher 修复**
+  修复了在存在空值的情况下运行`collect(distinct())`会导致返回错误的问题。
+  修复了运行包含范围过滤器（针对参数值 </<=/>/>=）的参数化查询会导致结果的问题。 duplicate/missing 
+  修复了 DFE 引擎在 LIMIT 查询中生成的输出多于请求量的问题，该问题可能导致内存不足错误。

**SPARQL 修复**
+  修复了在启用 IAM 身份验证的集群上运行联合 SPARQL 更新查询会导致返回错误的问题。
+  修复了针对 SPARQL 1.1 更新操作的基于操作的权限问题。

## 此版本支持的查询语言版本
<a name="engine-releases-1.3.4.0-query-versions"></a>

在将数据库集群升级到版本 1.3.4.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.7.1`
+ *支持的 Gremlin 最新版本：*`3.7.1`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.3.4.0 的升级路径
<a name="engine-releases-1.3.4.0-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.3.4.0-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.3.4.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.3.4.0 ^
4.     --allow-major-version-upgrade ^
5.     --apply-immediately
```

您可以指定 `--no-apply-immediately`，而不是 `--apply-immediately`。要执行主要版本升级， allow-major-version-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)
```

### 升级前始终先测试
<a name="engine-1.3.4.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.3.4.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何疑问或疑虑， AWS 可通过社区论坛和[AWS 高级支持与支持团队联系](https://aws.amazon.com/support)。

# Amazon Neptune 引擎版本 1.3.3.0（2024 年 8 月 5 日）
<a name="engine-releases-1.3.3.0"></a>

截至 2024 年 8 月 5 日，引擎版本 1.3.3.0 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
[引擎版本 1.3.0.0](engine-releases-1.3.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.3.0.0 之前的引擎版本升级到引擎版本 1.3.0.0 或更高版本，则必须使用参数组系列 `neptune1.3` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1` 或 `neptune1.2`，而这些参数组不适用于版本 1.3.0.0 及更高版本。同样，对于 1.4.0.0 及更高的引擎版本，您应使用 1.4.0.0 集群参数组。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。

**警告**  
 引擎版本 1.3.3.0 存在一些潜在问题，您需特别注意。有关更多信息，请参阅下面的 [1.3.3.0 版本中的问题缓解](#1.3.3.0-mitigation)部分。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.3.3.0-defects"></a>

**常规改进**
+ 修复了当谓词缓存中的谓词数量过多时导致引擎不稳定的问题。

**openCypher 修复**
+  修复了在抛出内部异常后，查询执行可能一直卡住的问题。
+  修复了在使用查询计划缓存时，查询可能因内部异常而失败的问题。

**SPARQL 修复**
+  在使用基于操作的授权策略时，SPARQL 1.1 Graph Store HTTP Protocol（GSP）在特定条件下可能会出现的问题已修复。

## 1.3.3.0 版本中的问题缓解
<a name="1.3.3.0-mitigation"></a>
+  使用数值过滤条件的查询在启用查询计划缓存时可能返回错误结果。为避免此问题，请使用查询提示 `QUERY:PLANCACHE "disabled"` 跳过查询计划缓存。例如，使用：

  ```
  USING QUERY:PLANCACHE "disabled"
  MATCH (n:person)
  WHERE n.yearOfBirth > $year
  RETURN n
  
  parameters={"year":1950}
  ```
+  多次使用相同参数名的查询可能失败，提示错误 `Parameter name should not be a number and/or contain _internal_ or _modified_user_ string within it. These are reserved for planCache. Otherwise, rerun with HTTP parameter planCache=disabled`。在这种情况下，可以像上面那样跳过查询计划缓存，或者像下面示例中那样对参数进行重复设置：

  ```
  MATCH (n:movie) WHERE n.runtime>=$minutes RETURN n 
  UNION 
  MATCH (n:show) WHERE n.duration>=$minutes RETURN n
  
  parameters={"minutes":130}
  ```

   使用提示 `QUERY:PLANCACHE "disabled"` 或修改参数：

  ```
  MATCH (n:movie) WHERE n.runtime>=$rt_min RETURN n 
  UNION 
  MATCH (n:show) WHERE n.duration>=$dur_min RETURN n
  
  parameters={"rt_min":130, "dur_min":130}
  ```
+  使用 Bolt 协议执行的查询，如果是 UNION 或 UNION ALL 查询，可能会返回错误结果。为避免此问题，可以考虑通过 HTTP 端点执行该特定查询。或者，在使用 Bolt 协议时，将联合查询的每一部分分别执行。

## 此版本支持的查询语言版本
<a name="engine-releases-1.3.3.0-query-versions"></a>

在将数据库集群升级到版本 1.3.3.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.7.1`
+ *支持的 Gremlin 最新版本：*`3.7.1`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.3.3.0 的升级路径
<a name="engine-releases-1.3.3.0-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.3.3.0-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.3.3.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.3.3.0 ^
4.     --allow-major-version-upgrade ^
5.     --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)
```

### 升级前始终先测试
<a name="engine-1.3.3.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.3.3.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.3.2.1（2024 年 6 月 20 日）
<a name="engine-releases-1.3.2.1"></a>

截至 2024 年 6 月 20 日，引擎版本 1.3.2.1 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
[引擎版本 1.3.0.0](engine-releases-1.3.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.3.0.0 之前的引擎版本升级到引擎版本 1.3.0.0 或更高版本，则必须使用参数组系列 `neptune1.3` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1` 或 `neptune1.2`，而这些参数组不适用于版本 1.3.0.0 及更高版本。同样，对于 1.4.0.0 及更高的引擎版本，您应使用 1.4.0.0 集群参数组。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。

**警告**  
 引擎版本 1.3.2.1 存在一些潜在问题，您需特别注意。有关更多信息，请参阅下面的 [1.3.2.1 版本中的问题缓解](#1.3.2.1-mitigation)部分。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.3.2.1-new"></a>

**openCypher 修复**
+  在查询计划缓存特征中发现了一个错误，涉及包含内部 `WITH` 子句且 `SKIP` 和 `LIMIT` 为参数的参数化查询。SKIP/LIMIT 值未被正确参数化，因此，后续使用不同参数值执行相同的缓存查询计划时，仍会返回第一次执行的结果。此问题已修复。

  ```
  # insert some nodes
  UNWIND range(1, 10) as i CREATE (s {name: i}) RETURN s
  
  # sample query
  MATCH (p) 
  WITH p ORDER BY p.name SKIP $s LIMIT $l 
  RETURN p.name as res
  
  # first time executing with {"s": 2, "l": 1}
  {
    "results" : [ {
      "res" : 3
    } ]
  }
  
  # second time executing with {"s": 2, "l": 10}
  # due to bug, produces
  {
    "results" : [ {
      "res" : 3
    } ]
  }
  # with fix, produces correct results: 
  {
    "results" : [ {
      "res" : 3
    }, {
      "res" : 4
    }, {
      "res" : 5
    }, {
      "res" : 6
    }, {
      "res" : 7
    }, {
      "res" : 8
    }, {
      "res" : 9
    }, {
      "res" : 10
    } ]
  }%
  ```
+  修复了在参数化变更查询中，如果传入的参数在数据库中尚不存在会抛出 `InternalFailureException` 的问题。
+  修复了参数化 Bolt 查询在查询资源清理过程中遇到竞争条件而导致卡住的问题。

## 1.3.2.1 中的变更是从 1.3.2.0 延续下来的
<a name="engine-releases-1.3.2.1-carried-over-1320"></a>

### 自引擎版本 1.3.2.0 延续下来的改进
<a name="engine-releases-1.3.2.1-improvements"></a>

**常规改进**
+ 支持 TLS 1.3 版本，包括加密套件 TLS\$1AES\$1128\$1GCM\$1SHA256 和 TLS\$1AES\$1256\$1GCM\$1SHA384。TLS 1.3 为可选配置，TLS 1.2 仍为最低要求版本。
+  在此版本中，openCypher 对日期时间格式的扩展支持处于 lab\$1mode 状态。我们建议您进行测试。

**Gremlin 改进**
+ TinkerPop 3.7.x 升级
  + 大幅扩展了 Gremlin 语言功能。
    + 新增字符串、列表和日期处理步骤。
    + 新增在 `mergeV()` 步骤中指定基数的语法。
    + `union()` 现在可作为起始步骤使用。
    + 如需了解 3.7.x 版本的详细变更，请参阅 [TinkerPop 升级文档](https://tinkerpop.apache.org/docs/3.7.1/upgrade/#_tinkerpop_3_7_1)。
  +  升级适用于 Java 客户端的 Gremlin 语言驱动时请注意，序列化器类已进行部分[重命名](https://tinkerpop.apache.org/docs/3.7.1/upgrade/#_serializer_renaming)。如果已指定，则需要更新配置文件和代码中的包和类名。
+  `StrictTimeoutValidation`（仅在通过实验室模式启用 `StrictTimeoutValidation` 后生效，需配置 `StrictTimeoutValidation=enabled`）：当 `StrictTimeoutValidation` 参数设置为值 `enabled` 时，通过请求选项或查询提示指定的单查询超时时间，不得超过参数组中设置的全局超时值。若超出限制，Neptune 会抛出 `InvalidParameterException`。当该参数值为 `disabled` 时，可通过 `/status` 端点的响应确认此设置；在 Neptune 1.3.2.0 和 1.3.2.1 版本中，该参数的默认值为 `Disabled`。

**openCypher 改进**
+  与之前的引擎版本相比，Amazon Neptune 引擎版本 1.3.2.0 的 openCypher 查询性能的速度提高了 9 倍，吞吐量提高了 10 倍。
+  低延迟查询和吞吐量性能改进：低延迟 openCypher 查询的整体性能改进。新版本还提高了此类查询的吞吐量。使用参数化查询时，这些改进更为显著。
+  支持查询计划缓存：查询提交至 Neptune 时，查询字符串会被解析、优化并转换为查询计划，然后由引擎执行。应用程序通常依赖通用查询模式，这些模式会通过传入不同参数值来实例化。查询计划缓存可以通过缓存查询计划，避免对此类重复的模式进行解析和优化，从而降低整体延迟。有关更多信息，请参阅[Amazon Neptune 中的查询计划缓存](access-graph-qpc.md)。
+  改进 DISTINCT 聚合查询的性能。
+  改进涉及可空变量的联接查询的性能。
+  改进涉及“id(node/relationship)不等于某值”条件的查询的性能。
+  扩展了对日期时间功能的支持（仅在实验室模式启用 `DatetimeMillisecond` 后生效，需配置 `DatetimeMillisecond=enabled`）。有关更多信息，请参阅 [Neptune openCypher 实施中的时间支持（Neptune Analytics 和 Neptune 数据库 1.3.2.0 及更高版本）](feature-opencypher-compliance.md#opencypher-compliance-time-na)。

### 自引擎版本 1.3.2.0 延续下来的缺陷修复
<a name="engine-releases-1.3.2.1-defects"></a>

**常规改进**
+ 在验证对 Graphlytics 存储桶访问权限时，更新了 NeptuneML 的错误提示信息。

**Gremlin 修复**
+ 修复了 DFE 查询转换中缺失标签信息的问题，该问题出现在非路径贡献步骤包含标签的场景中。例如：

  ```
  g.withSideEffect('Neptune#useDFE', true).
    V().
    has('name', 'marko').
    has("name", TextP.regex("mark.*")).as("p1").
    not(out().has("name", P.within("peter"))).
    out().as('p2').
    dedup('p1', 'p2')
  ```
+ 修复了 DFE 查询转换中的 `NullPointerException` 错误，该错误在查询被拆分为两个 DFE 片段执行时发生，且第一个片段被优化为不可满足节点。例如：

  ```
  g.withSideEffect('Neptune#useDFE', true).
    V().
    has('name', 'doesNotExists').
    has("name", TextP.regex("mark.*")).
    inject(1).
    V().
    out().
    has('name', 'vadas')
  ```
+ 修复了查询中 by() 调节器包含 ValueTraversal 且输入为 Map 时，Neptune 可能会抛出 `InternalFailureException`。例如：

  ```
  g.V().
    hasLabel("person").
    project("age", "name").by("age").by("name").
    order().by("age")
  ```

**openCypher 修复**
+ 改进了 UNWIND 操作（例如将列表展开为单独值），以帮助防止出现内存不足（OOM）的情况。例如：

  ```
  MATCH (n)-->(m)
  WITH collect(m) AS list
  UNWIND list AS m
  RETURN m, list
  ```
+ 修复了通过 UNWIND 注入 ID 时，多个 MERGE 操作中的自定义 ID 优化问题。例如：

  ```
  UNWIND [{nid: 'nid1', mid: 'mid1'}, {nid: 'nid2', mid: 'mid2'}] as ids
  MERGE (n:N {`~id`: ids.nid})
  MERGE (m:M {`~id`: ids.mid})
  ```
+ 修复了在复杂查询中访问属性和多跳双向关系时的内存激增问题。例如：

  ```
  MATCH (person1:person)-[:likes]->(res)-[:partOf]->(group)-[:knows]-(:entity {name: 'foo'}), 
         (person1)-[:knows]->(person2)-[:likes]-(res2), (comment)-[:presentIn]->(:Group {name: 'barGroup'}), 
         (person1)-[:commented]->(comment2:comment)-[:partOf]->(post:Post), (comment2)-[:presentIn]->(:Group {name: 'fooGroup'}), 
         (comment)-[:contains]->(info:Details)-[:CommentType]->(:CommentType {name: 'Positive'}),
         (comment2)-[:contains]->(info2:Details)-[:CommentType]->(:CommentType {name: 'Positive'}) 
  WHERE datetime('2020-01-01T00:00') <= person1.addedAfter <= datetime('2023-01-01T23:59') AND comment.approvedBy = comment2.approvedBy 
  MATCH (comment)-[:contains]->(info3:Details)-[:CommentType]->(:CommentType {name: 'Neutral'})
  RETURN person1, group.name, info1.value,  post.ranking, info3.value
  ```
+ 修复了以 null 作为分组变量的聚合查询问题。例如：

  ```
  MATCH (n)
  RETURN null AS group, sum(n.num) AS result
  ```

**SPARQL 修复**
+ 修复了 SPARQL 解析器，提高了处理包含大量三元组和大令牌的 INSERT DATA 等大查询的解析速度。

### 1.3.2.1 版本中的问题缓解
<a name="1.3.2.1-mitigation"></a>
+  使用数值过滤条件的查询在启用查询计划缓存时可能返回错误结果。为避免此问题，请使用查询提示 `QUERY:PLANCACHE "disabled"` 跳过查询计划缓存。例如，使用：

  ```
  USING QUERY:PLANCACHE "disabled"
  MATCH (n:person)
  WHERE n.yearOfBirth > $year
  RETURN n
  
  parameters={"year":1950}
  ```
+  多次使用相同参数名的查询可能失败，提示错误 `Parameter name should not be a number and/or contain _internal_ or _modified_user_ string within it. These are reserved for planCache. Otherwise, rerun with HTTP parameter planCache=disabled`。在这种情况下，可以像上面那样跳过查询计划缓存，或者像下面示例中那样对参数进行重复设置：

  ```
  MATCH (n:movie) WHERE n.runtime>=$minutes RETURN n 
  UNION 
  MATCH (n:show) WHERE n.duration>=$minutes RETURN n
  
  parameters={"minutes":130}
  ```

   使用提示 `QUERY:PLANCACHE "disabled"` 或修改参数：

  ```
  MATCH (n:movie) WHERE n.runtime>=$rt_min RETURN n 
  UNION 
  MATCH (n:show) WHERE n.duration>=$dur_min RETURN n
  
  parameters={"rt_min":130, "dur_min":130}
  ```
+  使用 Bolt 协议执行的查询，如果是 UNION 或 UNION ALL 查询，可能会返回错误结果。为避免此问题，可以考虑通过 HTTP 端点执行该特定查询。或者，在使用 Bolt 协议时，将联合查询的每一部分分别执行。

### 此版本支持的查询语言版本
<a name="engine-releases-1.3.2.1-query-versions"></a>

在将数据库集群升级到版本 1.3.2.1 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.7.1`
+ *支持的 Gremlin 最新版本：*`3.7.1`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.3.2.1 的升级路径
<a name="engine-releases-1.3.2.1-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.3.2.1-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.3.2.1 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.3.2.1 ^
4.     --allow-major-version-upgrade ^
5.     --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)
```

### 升级前始终先测试
<a name="engine-1.3.2.1-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.3.2.1-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.3.2.0（2024 年 6 月 10 日）
<a name="engine-releases-1.3.2.0"></a>

截至 2024 年 6 月 10 日，引擎版本 1.3.2.0 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
[引擎版本 1.3.0.0](engine-releases-1.3.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.3.0.0 之前的引擎版本升级到引擎版本 1.3.0.0 或更高版本，则必须使用参数组系列 `neptune1.3` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1` 或 `neptune1.2`，而这些参数组不适用于版本 1.3.0.0 及更高版本。同样，对于 1.4.0.0 及更高的引擎版本，您应使用 1.4.0.0 集群参数组。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。

**警告**  
 引擎版本 1.3.2.0 存在一些潜在问题，您需特别注意。有关更多信息，请参阅下面的 [1.3.2.0 版本中的问题缓解](#1.3.2.0-mitigation)部分。

## 此引擎版本中的改进
<a name="engine-releases-1.3.2.0-improvements"></a>

**常规改进**
+ 支持 TLS 1.3 版本，包括加密套件 TLS\$1AES\$1128\$1GCM\$1SHA256 和 TLS\$1AES\$1256\$1GCM\$1SHA384。TLS 1.3 为可选配置，TLS 1.2 仍为最低要求版本。

**Gremlin 改进**
+ TinkerPop 3.7.x 升级
  + 大幅扩展了 Gremlin 语言功能。
    + 新增字符串、列表和日期处理步骤。
    + 新增在 `mergeV()` 步骤中指定基数的语法。
    + `union()` 现在可作为起始步骤使用。
    + 如需了解 3.7.x 版本的详细变更，请参阅 [TinkerPop 升级文档](https://tinkerpop.apache.org/docs/3.7.1/upgrade/#_tinkerpop_3_7_1)。
  +  升级适用于 Java 客户端的 Gremlin 语言驱动时请注意，序列化器类已进行部分[重命名](https://tinkerpop.apache.org/docs/3.7.1/upgrade/#_serializer_renaming)。如果已指定，则需要更新配置文件和代码中的包和类名。
+  `StrictTimeoutValidation`（仅在通过实验室模式启用 `StrictTimeoutValidation` 后生效，需配置 `StrictTimeoutValidation=enabled`）：当 `StrictTimeoutValidation` 参数设置为值 `enabled` 时，通过请求选项或查询提示指定的单查询超时时间，不得超过参数组中设置的全局超时值。若超出限制，Neptune 会抛出 `InvalidParameterException`。当该参数值为 `disabled` 时，可通过 `/status` 端点的响应确认此设置；在 Neptune 1.3.2.0 版本中，该参数的默认值为 `Disabled`。

**openCypher 改进**
+  与之前的引擎版本相比，Amazon Neptune 引擎版本 1.3.2.0 的 openCypher 查询性能的速度提高了 9 倍，吞吐量提高了 10 倍。
+  低延迟查询和吞吐量性能改进：低延迟 openCypher 查询的整体性能改进。新版本还提高了此类查询的吞吐量。使用参数化查询时，这些改进更为显著。
+  支持查询计划缓存：查询提交至 Neptune 时，查询字符串会被解析、优化并转换为查询计划，然后由引擎执行。应用程序通常依赖通用查询模式，这些模式会通过传入不同参数值来实例化。查询计划缓存可以通过缓存查询计划，避免对此类重复的模式进行解析和优化，从而降低整体延迟。
+  改进 DISTINCT 聚合查询的性能。
+  改进涉及可空变量的联接查询的性能。
+  改进涉及“id(node/relationship)不等于某值”条件的查询的性能。
+  扩展了对日期时间功能的支持（仅在实验室模式启用 `DatetimeMillisecond` 后生效，需配置 `DatetimeMillisecond=enabled`）。有关更多信息，请参阅 [Neptune openCypher 实施中的时间支持（Neptune Analytics 和 Neptune 数据库 1.3.2.0 及更高版本）](feature-opencypher-compliance.md#opencypher-compliance-time-na)。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.3.2.0-defects"></a>

**常规改进**
+ 在验证对 Graphlytics 存储桶访问权限时，更新了 NeptuneML 的错误提示信息。

**Gremlin 修复**
+ 修复了 DFE 查询转换中缺失标签信息的问题，该问题出现在非路径贡献步骤包含标签的场景中。例如：

  ```
  g.withSideEffect('Neptune#useDFE', true).
    V().
    has('name', 'marko').
    has("name", TextP.regex("mark.*")).as("p1").
    not(out().has("name", P.within("peter"))).
    out().as('p2').
    dedup('p1', 'p2')
  ```
+ 修复了 DFE 查询转换中的 `NullPointerException` 错误，该错误在查询被拆分为两个 DFE 片段执行时发生，且第一个片段被优化为不可满足节点。例如：

  ```
  g.withSideEffect('Neptune#useDFE', true).
    V().
    has('name', 'doesNotExists').
    has("name", TextP.regex("mark.*")).
    inject(1).
    V().
    out().
    has('name', 'vadas')
  ```
+ 修复了查询中 by() 调节器包含 ValueTraversal 且输入为 Map 时，Neptune 可能会抛出 `InternalFailureException`。例如：

  ```
  g.V().
    hasLabel("person").
    project("age", "name").by("age").by("name").
    order().by("age")
  ```

**openCypher 修复**
+ 改进了 UNWIND 操作（例如将列表展开为单独值），以帮助防止出现内存不足（OOM）的情况。例如：

  ```
  MATCH (n)-->(m)
  WITH collect(m) AS list
  UNWIND list AS m
  RETURN m, list
  ```
+ 修复了通过 UNWIND 注入 ID 时，多个 MERGE 操作中的自定义 ID 优化问题。例如：

  ```
  UNWIND [{nid: 'nid1', mid: 'mid1'}, {nid: 'nid2', mid: 'mid2'}] as ids
  MERGE (n:N {`~id`: ids.nid})
  MERGE (m:M {`~id`: ids.mid})
  ```
+ 修复了在复杂查询中访问属性和多跳双向关系时的内存激增问题。例如：

  ```
  MATCH (person1:person)-[:likes]->(res)-[:partOf]->(group)-[:knows]-(:entity {name: 'foo'}), 
         (person1)-[:knows]->(person2)-[:likes]-(res2), (comment)-[:presentIn]->(:Group {name: 'barGroup'}), 
         (person1)-[:commented]->(comment2:comment)-[:partOf]->(post:Post), (comment2)-[:presentIn]->(:Group {name: 'fooGroup'}), 
         (comment)-[:contains]->(info:Details)-[:CommentType]->(:CommentType {name: 'Positive'}),
         (comment2)-[:contains]->(info2:Details)-[:CommentType]->(:CommentType {name: 'Positive'}) 
  WHERE datetime('2020-01-01T00:00') <= person1.addedAfter <= datetime('2023-01-01T23:59') AND comment.approvedBy = comment2.approvedBy 
  MATCH (comment)-[:contains]->(info3:Details)-[:CommentType]->(:CommentType {name: 'Neutral'})
  RETURN person1, group.name, info1.value,  post.ranking, info3.value
  ```
+ 修复了以 null 作为分组变量的聚合查询问题。例如：

  ```
  MATCH (n)
  RETURN null AS group, sum(n.num) AS result
  ```

**SPARQL 修复**
+ 修复了 SPARQL 解析器，提高了处理包含大量三元组和大令牌的 INSERT DATA 等大查询的解析速度。

## 1.3.2.0 版本中的问题缓解
<a name="1.3.2.0-mitigation"></a>
+ 在版本 1.3.2.0 中，当在内层 `WITH` 子句中使用参数化的 `skip` 或 `limit` 时，查询计划缓存存在问题。例如：

  ```
  MATCH (n:Person)
  WHERE n.age > $age
  WITH n skip $skip LIMIT $limit 
  RETURN n.name, n.age
  
  parameters={"age": 21, "skip": 2, "limit": 3}
  ```

  在这种情况下，第一次查询计划中的 skip 和 limit 参数值会被应用到后续查询，可能导致意外结果。

  **缓解方法**

  为防止该问题，在提交包含参数化 skip 和/或 limit 子句的查询时，请添加查询提示 `QUERY:PLANCACHE "disabled"`。或者，也可以将这些值直接硬编码到查询中。

  **选项 1：**使用查询提示禁用查询计划缓存：

  ```
  Using QUERY:PLANCACHE "disabled"
  MATCH (n:Person) WHERE n.age > $age
  WITH n skip $skip LIMIT $limit
  RETURN n.name, n.age
  
  parameters={"age": 21, "skip": 2, "limit": 3}
  ```

  **选项 2：**硬编码 skip 和 limit 值：

  ```
  MATCH (n:Person)
  WHERE n.age > $age
  WITH n skip 2 LIMIT 3
  RETURN n.name, n.age
  
  parameters={"age": 21}
  ```
+  使用数值过滤条件的查询在启用查询计划缓存时可能返回错误结果。为避免此问题，请使用查询提示 `QUERY:PLANCACHE "disabled"` 跳过查询计划缓存。例如，使用：

  ```
  USING QUERY:PLANCACHE "disabled"
  MATCH (n:person)
  WHERE n.yearOfBirth > $year
  RETURN n
  
  parameters={"year":1950}
  ```
+  多次使用相同参数名的查询可能失败，提示错误 `Parameter name should not be a number and/or contain _internal_ or _modified_user_ string within it. These are reserved for planCache. Otherwise, rerun with HTTP parameter planCache=disabled`。在这种情况下，可以像上面那样跳过查询计划缓存，或者像下面示例中那样对参数进行重复设置：

  ```
  MATCH (n:movie) WHERE n.runtime>=$minutes RETURN n 
  UNION 
  MATCH (n:show) WHERE n.duration>=$minutes RETURN n
  
  parameters={"minutes":130}
  ```

   使用提示 `QUERY:PLANCACHE "disabled"` 或修改参数：

  ```
  MATCH (n:movie) WHERE n.runtime>=$rt_min RETURN n 
  UNION 
  MATCH (n:show) WHERE n.duration>=$dur_min RETURN n
  
  parameters={"rt_min":130, "dur_min":130}
  ```
+  使用 Bolt 协议执行的查询，如果是 UNION 或 UNION ALL 查询，可能会返回错误结果。为避免此问题，可以考虑通过 HTTP 端点执行该特定查询。或者，在使用 Bolt 协议时，将联合查询的每一部分分别执行。

## 此版本支持的查询语言版本
<a name="engine-releases-1.3.2.0-query-versions"></a>

在将数据库集群升级到版本 1.3.2.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.7.1`
+ *支持的 Gremlin 最新版本：*`3.7.1`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.3.2.0 的升级路径
<a name="engine-releases-1.3.2.0-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.3.2.0-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.3.2.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.3.2.0 ^
4.     --allow-major-version-upgrade ^
5.     --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)
```

### 升级前始终先测试
<a name="engine-1.3.2.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.3.2.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.3.1.0（2024 年 3 月 6 日）
<a name="engine-releases-1.3.1.0"></a>

截至 2024 年 3 月 6 日，引擎版本 1.3.1.0 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
[引擎版本 1.3.0.0](engine-releases-1.3.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.3.0.0 之前的引擎版本升级到引擎版本 1.3.0.0 或更高版本，则必须使用参数组系列 `neptune1.3` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1` 或 `neptune1.2`，而这些参数组不适用于版本 1.3.0.0 及更高版本。同样，对于 1.4.0.0 及更高的引擎版本，您应使用 1.4.0.0 集群参数组。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。

## 此引擎版本中的改进
<a name="engine-releases-1.3.1.0-improvements"></a>

**常规改进**
+ Neptune 改进了在 profile/explain 中显示的警告。
+ 已从 TLS 协商中使用的默认命名组中移除过时的 NIST 椭圆曲线。移除的曲线包括 sect409k1、sect409r1 和 sect571k1。

**Gremlin 改进**
+ 改进了 DFE 统计计算，以避免无服务器实例出现非常高的 NCU。
+ 提升了 Gremlin 中 WITHIN 的性能。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.3.1.0-defects"></a>

**Gremlin 修复**
+ 对 Gremlin DFE 查询计划进行了多项改进。
+ 修复了包含可选遍历的 Gremlin 查询问题，例如：g.V().hasLabel('person').group().by(id()).by(\$1\$1.in('friend').id().fold())，此前没有 friend 边的 person 不会被分组。
+ 修复了在 `by` 调节器中包含 coalesce 步骤时，如果使用 DFE 引擎执行会报错的问题。
+ 修复了在 Gremlin 会话中连接到只读副本时，只读查询无法正常运行的问题。
+ 修复了在 Gremlin 的首次 WebSocket 连接请求成功时，审计日志中未显示 IAM ARN 的问题。
+ 增强了 DFE 对 coalesce 和 identify 步骤的覆盖。
+ 针对完整 DFE 查询计划进行了特征集优化。

**openCypher 修复**
+ 修复了 openCypher SET 子句中的错误，支持对非变量表达式进行赋值（例如：MATCH (n:TEST) SET (CASE WHEN n.prop = 2 THEN n END).prop = 3 RETURN n.prop）。
+ 修复了涉及聚合和 order by 的 openCypher 查询失败的问题。
+ 改进了对包含静态映射的大列表的 UNWIND。
+ 修复了使用自定义 ID 且存在重复值的 openCypher MERGE 查询的错误。

**SPARQL 修复**
+ 修复了 SPARQL 中可选模式的变量作用域相关错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.3.1.0-query-versions"></a>

在将数据库集群升级到版本 1.3.1.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.6.2`
+ *支持的 Gremlin 最新版本：*`3.6.5`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.3.1.0 的升级路径
<a name="engine-releases-1.3.1.0-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.3.1.0-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.3.1.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.3.1.0 ^
4.     --allow-major-version-upgrade ^
5.     --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)
```

### 升级前始终先测试
<a name="engine-1.3.1.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.3.1.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.3.0.0（2023 年 11 月 15 日）
<a name="engine-releases-1.3.0.0"></a>

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

**注意**  
[引擎版本 1.3.0.0](#engine-releases-1.3.0.0) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.3.0.0 之前的引擎版本升级到引擎版本 1.3.0.0 或更高版本，则必须使用参数组系列 `neptune1.3` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1` 或 `neptune1.2`，而这些参数组不适用于版本 1.3.0.0 及更高版本。同样，对于 1.4.0.0 及更高的引擎版本，您应使用 1.4.0.0 集群参数组。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。

## 此引擎版本中的新增功能
<a name="engine-releases-1.3.0.0-features"></a>
+ 发布了 [Neptune 数据 API](data-api.md)。

  Amazon Neptune 数据 API 为 Neptune 的 40 多种数据操作提供 SDK 支持，包括数据加载、查询执行、数据查询和机器学习。它支持所有三种 Neptune 查询语言（Gremlin、openCypher 和 SPARQL），并可用于所有 SDK 语言中。它自动签署 API 请求，极大地简化了将 Neptune 集成到应用程序中的过程。
+ 增加了对将 [OpenSearch 无服务器](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-overview.html)与 Neptune 集成的支持。

## 此引擎版本中的改进
<a name="engine-releases-1.3.0.0-improvements"></a>

**对 Neptune 引擎更新的改进**

Neptune 改变了发布引擎更新的方式，因此，您可以更好地控制更新过程。Neptune 现在不发布针对不间断更改的补丁，而是发布次要版本，这些版本可以[使用 `AutoMinorVersionUpgrade` 实例字段](engine-maintenance-management.md#using-amvu)进行控制，并且您可以通过[订阅](events-subscribing.md) [`RDS-EVENT-0156`](event-lists.md#RDS-EVENT-0156) 事件来接收有关该版本的通知。

有关这些更改的更多信息，请参阅[维护 Amazon Neptune 数据库集群](cluster-maintenance.md)。

**传输中加密改进**

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`
+ 优化了 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 全文搜索查询的性能。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.3.0.0-defects"></a>

**Gremlin 修复**
+ 修复了一个 Gremlin 错误，即在检查 Gremlin 查询状态端点以查找子遍历中具有谓词的查询是否具有未在 DFE 引擎中原生处理的步骤时，会发生事务泄漏。
+ 修复了一个 Gremlin 错误，即 `valueMap()` 无法在 DFE 引擎的 `by()` 遍历下进行优化。
+ 修复了一个 Gremlin 错误，即附加到 `UnionStep` 的步骤标签无法分别传播到其子遍历的最后一个路径元素。
+ 修复了一个 Gremlin 错误，即查询因为包含太多 TinkerPop 步骤而失败，然后无法清理。
+ 修复了一个 Gremlin 错误，即 `NullPointerException` 会引发 `mergeV` 和 `mergeE` 步骤。
+ 修复了一个 Gremlin 错误，即当其中一些字符串输出包含空格字符时，`order()` 无法对字符串输出正确排序。
+ 修复了在 DFE 引擎中处理 `valueMap` 步骤时出现的 Gremlin 正确性问题。
+ 修复了在键遍历中嵌套 `GroupStep` 或 `GroupCountStep` 时出现的 Gremlin 正确性问题。

**openCypher 修复**
+ 修复了一个 openCypher 错误，该错误涉及有关空字符的错误处理。
+ 修复了 openCypher Bolt 事务处理中的一个错误。

**SPARQL 修复**
+ 修复了一个 SPARQL 错误，即递归函数中的值无法正确解析。
+ 修复了在通过 `VALUES` 子句注入大量值时可能导致性能下降的 SPARQL 错误。
+ 修复了一个 SPARQL 错误，即在使用带有语言标签的文本上调用 `REGEX` 运算符时从不会成功。

## 此版本支持的查询语言版本
<a name="engine-releases-1.3.0.0-query-versions"></a>

在将数据库集群升级到版本 1.3.0.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.6.2`
+ *支持的 Gremlin 最新版本：*`3.6.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.3.0.0 的升级路径
<a name="engine-releases-1.3.0.0-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.3.0.0-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.3.0.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.3.0.0 ^
4.     --allow-major-version-upgrade ^
5.     --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)
```

### 升级前始终先测试
<a name="engine-1.3.0.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.3.0.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.1.2（2024 年 8 月 5 日）
<a name="engine-releases-1.2.1.2"></a>

截至 2024 年 8 月 5 日，引擎版本 1.2.1.2 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

**警告**  
 在使用基于操作的授权策略时，SPARQL 1.1 Graph Store HTTP Protocol（GSP）在特定条件下可能会出现一个问题。如果您在使用基于操作的授权策略搭配 SPARQL 1.1 Graph Store HTTP Protocol，我们建议您升级到最新的小版本 Neptune 引擎（至少为 1.2.1.2），其中已包含对此问题的修复。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.1.2-defects"></a>

**SPARQL 修复**
+ 在使用基于操作的授权策略时，SPARQL 1.1 Graph Store HTTP Protocol（GSP）在特定条件下可能会出现的问题已修复。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.1.2-query-versions"></a>

在将数据库集群升级到版本 1.2.1.2 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.6.2`
+ *支持的 Gremlin 最新版本：*`3.6.2`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.1.2 的升级路径
<a name="engine-releases-1.2.1.2-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.2.1.2-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.1.2 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.1.2 ^
4.     --allow-major-version-upgrade ^
5.     --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)
```

### 升级前始终先测试
<a name="engine-1.2.1.2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.1.2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.1.1（2024 年 3 月 11 日）
<a name="engine-releases-1.2.1.1"></a>

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

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.2.1.1-improvements"></a>

**常规改进**。

Neptune 改进了在 profile/explain 中显示的警告。

**Gremlin 改进**
+ 改进了 DFE 统计计算，以避免无服务器实例出现非常高的 NCU。
+ 提升了 Gremlin 中 WITHIN 的性能。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.1.1-defects"></a>

**Gremlin 修复**
+ 修复了 Gremlin DFE 引擎查询计划排序相关的错误。
+ 修复了原本报告为 InternalFailureException 的 Gremlin 内存不足错误。
+ 修复了在首次 WebSocket 连接请求成功时，审计日志中未显示 IAM ARN 的问题。
+ 修复了启用 TinkerPop 会话的 Gremlin 查询问题：即使所有查询均为只读并连接到读取实例，某些会话中的查询仍会失败。

**openCypher 修复**
+ 修复了 openCypher SET 子句中的错误，支持对非变量表达式进行赋值（例如：MATCH (n:TEST) SET (CASE WHEN n.prop = 2 THEN n END).prop = 3 RETURN n.prop）。
+ 修复了涉及聚合和 order by 的 openCypher 查询失败的问题。
+ 改进了对包含静态映射的大列表的 UNWIND。
+ 修复了使用自定义 ID 且存在重复值的 openCypher MERGE 查询的错误。

**SPARQL 修复**
+ 修复了 SPARQL DFE 查询规划器中的错误。
+ 修复了 SPARQL 与 BIND 和 OPTIONAL 关键字联合使用时的错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.1.1-query-versions"></a>

在将数据库集群升级到版本 1.2.1.1 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.6.2`
+ *支持的 Gremlin 最新版本：*`3.6.2`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.1.1 的升级路径
<a name="engine-releases-1.2.1.1-upgrade-paths"></a>

您可以从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 或更高版本升级到此版本。

## 升级到此版本
<a name="engine-releases-1.2.1.1-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.1.1 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.1.1 ^
4.     --allow-major-version-upgrade ^
5.     --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)
```

### 升级前始终先测试
<a name="engine-1.2.1.1-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.1.1-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.1.0（2023 年 3 月 8 日）
<a name="engine-releases-1.2.1.0"></a>

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

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此版本的后续补丁版本
<a name="engine-releases-1.2.1.0-patches"></a>
+ [版本：1.2.1.0.R2（2023 年 5 月 2 日）](engine-releases-1.2.1.0.R2.md) 
+ [版本：1.2.1.0.R3（2023 年 6 月 13 日）](engine-releases-1.2.1.0.R3.md) 
+ [版本：1.2.1.0.R4（2023 年 8 月 10 日）](engine-releases-1.2.1.0.R4.md) 
+ [版本：1.2.1.0.R5（2023 年 9 月 2 日）](engine-releases-1.2.1.0.R5.md) 
+ [版本：1.2.1.0.R6（2023 年 9 月 12 日）](engine-releases-1.2.1.0.R6.md) 
+ [版本：1.2.1.0.R7（2023 年 10 月 6 日）](engine-releases-1.2.1.0.R7.md) 

## 此引擎版本中的新增功能
<a name="engine-releases-1.2.1.0-features"></a>
+ 增加了对 [TinkerPop 3.6.2](https://tinkerpop.apache.org/docs/3.6.2-SNAPSHOT/dev/provider/) 的支持，它增加了许多新的 Gremlin 特征，例如新的 `mergeV()`、`mergeE()`、`element()` 和 `fail()` 步骤。`mergeV()` 和 `mergeE()` 步骤特别值得注意，因为它们为执行类似更新插入的操作提供了期待已久的声明性选项，这应该可以大大简化现有的代码模式并使 Gremlin 更易于阅读。3.6.x 版本还添加了正则表达式谓词，对采用 `Map` 的 `property()` 步骤进行了新的重载，并对 `by()` 调制行为进行了重大修订，此行为在使用它的所有步骤中都更加一致。

  有关版本 3.6 中的更改以及升级时需要考虑的事项的信息，请参阅 [TinkerPop 更改日志](https://github.com/apache/tinkerpop/blob/3.6.0/CHANGELOG.asciidoc#release-3-6-0)和[升级页面](https://tinkerpop.apache.org/docs/current/upgrade/)。

  如果您使用 `fold().coalesce(unfold(), <mutate>)` 进行条件插入，我们建议您迁移到[此处](https://tinkerpop.apache.org/docs/3.6.0/reference/#mergevertex-step)和[此处](https://tinkerpop.apache.org/docs/3.6.0/reference/#mergeedge-step)描述的新 `mergeV/E()` 语法。Neptune 对 `Merge` 使用的锁定模式比对 `Coalesce` 使用的锁定模式更窄，这可以减少并发修改异常 (CME)。

  有关此 TinkerPop 版本中提供的新特征的更多信息，请参阅 Stephen Mallette 的博客[探索 Amazon Neptune 中 Apache TinkerPop 3.6.x 的新特征](https://aws.amazon.com/blogs/database/exploring-new-features-of-apache-tinkerpop-3-6-x-in-amazon-neptune/)。
+ 增加了对由第三代 Intel Xeon 可扩展处理器提供支持的 [R6i 实例类型](https://aws.amazon.com/ec2/instance-types/r6i/)的支持。它们非常适合内存密集型工作负载，与同类 R5 实例类型相比，计算/性价比最多可提高 15%，每个 vCPU 的内存带宽最多可提高 20%。
+ 为属性图和 RDF 图形添加了[图形摘要 API](neptune-graph-summary.md) 端点，可让您快速获得有关图形的摘要报告。

  对于属性 (PG) 图，图形摘要 API 会提供节点和边缘标签以及属性键的只读列表，以及节点、边缘和属性的计数。对于 RDF 图形，它提供了类和谓词键的列表，以及四元组、主语和谓词的计数。

  以下更改与新的图形摘要 API 一起推出：
  + 添加了新的 [GetGraphSummary](iam-dp-actions.md#getgraphsummary) 数据面板操作。
  + 添加了一个新的 `rdf/statistics` 端点来替换 `sparql/statistics` 端点（该端点现已弃用）。
  + 将统计数据状态响应中 `summary` 字段的名称更改为 `signatureInfo`，以免将其与图形摘要信息混淆。之前的引擎版本将继续在 JSON 响应中使用 `summary`。
  + 将统计数据状态响应中 `date` 字段的精度从分钟更改为毫秒。以前的格式是 `2020-05-07T23:13Z`（分钟精度），而新的格式是 `2023-01-24T00:47:43.319Z`（毫秒精度）。两者都符合 ISO 8601 标准，但此更改可能会破坏现有代码，具体取决于日期的解析方式。
  + 在 Workbench 中添加了新的 [`%statistics`](notebooks-magics.md#notebooks-line-magics-statistics) 行魔术命令，可以让您检索 DFE 引擎的统计数据。
  + 在 Workbench 中添加了新的 [`%summary`](notebooks-magics.md#notebooks-line-magics-summary) 行魔术命令，可以让您检索图形摘要信息。
+ 为记录执行时间超过指定阈值的查询添加了[慢速查询日志记录](slow-query-logs.md)。使用两个新的动态参数，即 [neptune\$1enable\$1slow\$1query\$1log](parameters.md#parameters-db-cluster-parameters-neptune_enable_slow_query_log) 和 [neptune\$1slow\$1query\$1log\$1threshold](parameters.md#parameters-db-cluster-parameters-neptune_slow_query_log_threshold)，可以启用和控制慢速查询日志记录。
+ 增加了对两个[动态参数](parameter-groups.md)的支持，即新的集群参数 [neptune\$1enable\$1slow\$1query\$1log](parameters.md#parameters-db-cluster-parameters-neptune_enable_slow_query_log) 和 [neptune\$1slow\$1query\$1log\$1threshold](parameters.md#parameters-db-cluster-parameters-neptune_slow_query_log_threshold)。当您对动态参数进行更改时，它会立即生效，无需重启任何实例。
+ 添加了 Neptune 特定的 [removeKeyFromMap()](access-graph-opencypher-extensions.md#opencypher-compliance-removeKeyFromMap-function) 函数，该函数从映射中删除指定的键并返回生成的新映射。

## 此引擎版本中的改进
<a name="engine-releases-1.2.1.0-improvements"></a>
+ 将 Gremlin DFE 支持扩展到具有本地范围的 `limit` 步骤。
+ 在 DFE 引擎中增加了对 Gremlin `DedupGlobalStep` 的 `by()` 调制支持。
+ 增加了对 Gremlin `SelectStep` 和 `SelectOneStep` 的 DFE 支持。
+ 各种 Gremlin 运算符的性能改进和正确性修复，包括 `repeat`、`coalesce`、`store` 和 `aggregate`。
+ 提高了涉及 `MERGE` 和 `OPTIONAL MATCH` 的 openCypher 查询的性能。
+ 改进了 openCypher 查询的性能，这些查询涉及文本值映射列表的 `UNWIND`。
+ 改进了对 `id` 具有 `IN` 筛选条件的 openCypher 查询的性能。例如：

  ```
  MATCH (n) WHERE id(n) IN ['1', '2', '3'] RETURN n
  ```
+ 增加了使用 BASE 语句为 SPARQL 查询指定基本 IRI 的功能（请参阅[用于查询和更新的默认基本 IRI](feature-sparql-compliance.md#opencypher-compliance-default-iri)）。
+ 缩短了 Gremlin 和 openCypher 仅限边缘批量加载的加载处理等待时间。
+ 使批量加载在 Neptune 重启时异步恢复，以避免在恢复尝试失败之前因 Amazon S3 连接问题而导致的漫长等待时间。
+ 改进了对 SPARQL DESCRIBE 查询的处理，这些查询将 [describeMode](sparql-query-hints-for-describe.md#sparql-query-hints-describeMode) 查询提示设置为 `"CBD"`（简洁的界限描述），并且涉及大量空白节点。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.1.0-defects"></a>
+ 修复了一个 openCypher 错误，即在 Bolt 和 SPARQL-JSON 中，查询返回字符串 `"null"`，而不是 null 值。
+ 修复了列表推导中的 openCypher 错误，该错误会生成 null 值而不是为列表元素提供的值。
+ 修复了字节值未正确序列化的 openCypher 错误。
+ 修复了 `UnionStep` 中的一个 Gremlin 错误，该错误发生在输入是边缘遍历到子遍历内的顶点时。
+ 修复了一个 Gremlin 错误，该错误导致与 `UnionStep` 关联的步骤标签无法正确传播到每个子遍历的最后一步。
+ 修复了 `dedup` 步骤的 Gremlin 错误，其中 `repeat` 步骤后面有标签，附加到 `dedup` 步骤的标签无法在查询中进一步使用。
+ 修复了一个 Gremlin 错误，即转换 `union` 步骤中的 `repeat` 步骤失败并出现内部错误。
+ 修复了 Gremlin 正确性问题，此类问题通过回退到 Tinkerpop 影响将 `limit` 作为非并集步骤的子遍历的 DFE 查询。以下形式的查询会受到影响：

  ```
  g.withSideEffect('Neptune#useDFE', true).V().as("a").select("a").by(out().limit(1))
  ```
+ 修复了一个 SPARQL 错误，即 `SPARQL GRAPH` 模式不会考虑 `FROM NAMED` 子句提供的数据集。
+ 修复了一个 SPARQL 错误，即包含一些 `FROM` 和/或 `FROM NAMED` 子句的 SPARQL `DESCRIBE` 并不总是正确使用默认图形中的数据，有时还会引发异常。请参阅[SPARQL DESCRIBE 相对于默认图形的行为](sparql-default-describe.md)。
+ 修复了一个 SPARQL 错误，以便在拒绝 null 字符时返回正确的异常消息。
+ 修复了一个 SPARQL [explain](sparql-explain.md) 错误，该错误会影响包含 [PipelinedHashIndexJoin](sparql-explain-operators.md#sparql-explain-operator-pipeline-hash-index-join) 运算符的计划。
+ 修复了在提交返回常量值的查询时引发内部错误的错误。
+ 修复了死锁探测器逻辑偶尔会导致引擎无响应的问题。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.1.0-query-versions"></a>

在将数据库集群升级到版本 1.2.1.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.6.2`
+ *支持的 Gremlin 最新版本：*`3.6.2`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.1`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.1.0 的升级路径
<a name="engine-releases-1.2.1.0-upgrade-paths"></a>

您可以从任何高于或等于 [1.1.0.0](engine-releases-1.1.0.0.md) 的先前 Neptune 引擎版本手动升级到此版本。

**注意**  
从[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 开始，您在 `1.2.0.0` 之前的引擎版本中使用的所有自定义参数组和自定义集群参数组现在都必须使用参数组系列 `neptune1.2` 重新创建。之前的版本使用参数组系列 `neptune1`，而这些参数组将不适用于 `1.2.0.0` 以后的版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。

您不会自动升级到此主要发行版本。

## 升级到此版本
<a name="engine-releases-1.2.1.0-upgrading"></a>

Amazon Neptune 1.2.1.0 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.2.1.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.1.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.1.0.R7（2023 年 10 月 6 日）
<a name="engine-releases-1.2.1.0.R7"></a>

截至 2023 年 10 月 6 日，引擎版本 1.2.1.0.R7 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.1.0.R7-defects"></a>
+ 修复了在某些情况下失败的事务没有正确关闭的错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.1.0.R7-query-versions"></a>

在将数据库集群升级到版本 1.2.1.0.R7 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.6.2`
+ *支持的 Gremlin 最新版本：*`3.6.2`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 升级到此版本
<a name="engine-releases-1.2.1.0.R7-upgrading"></a>

Amazon Neptune 1.2.1.0.R7 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.2.1.0.R7-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.1.0.R7-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.1.0.R6（2023 年 9 月 12 日）
<a name="engine-releases-1.2.1.0.R6"></a>

截至 2023 年 9 月 12 日，引擎版本 1.2.1.0.R6 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的新增功能
<a name="engine-releases-1.2.1.0.R6-features"></a>
+ 发布了 [Neptune 数据 API](data-api.md)。

  Amazon Neptune 数据 API 为加载数据、运行查询、获取有关数据的信息以及运行机器学习操作提供 SDK 支持。它支持 Neptune 中的 Gremlin 和 openCypher 查询语言，并可用于所有 SDK 语言中。它自动签署 API 请求，极大地简化了将 Neptune 集成到应用程序中的过程。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.1.0.R6-defects"></a>
+ 修复了启用慢速查询日志后，在高负载下可能导致 CPU 峰值的错误。
+ 修复了一个 Gremlin 错误，即添加边缘及其属性，然后添加 `inV()` 或 `outV()` 会导致 `InternalFailureException`。
+ 修复了在某些情况下导致批量加载程序性能下降的 IAM 角色链中的几个问题。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.1.0.R6-query-versions"></a>

在将数据库集群升级到版本 1.2.1.0.R6 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.6.2`
+ *支持的 Gremlin 最新版本：*`3.6.2`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 升级到此版本
<a name="engine-releases-1.2.1.0.R6-upgrading"></a>

Amazon Neptune 1.2.1.0.R6 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.2.1.0.R6-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.1.0.R6-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.1.0.R5（2023 年 9 月 2 日）
<a name="engine-releases-1.2.1.0.R5"></a>

截至 2023 年 9 月 2 日，引擎版本 1.2.1.0.R5 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的新增功能
<a name="engine-releases-1.2.1.0.R5-features"></a>
+ 发布了 [Neptune 数据 API](data-api.md)。

  Amazon Neptune 数据 API 为加载数据、运行查询、获取有关数据的信息以及运行机器学习操作提供 SDK 支持。它支持 Neptune 中的 Gremlin 和 openCypher 查询语言，并可用于所有 SDK 语言中。它自动签署 API 请求，极大地简化了将 Neptune 集成到应用程序中的过程。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.1.0.R5-defects"></a>
+ 修复了一个 Gremlin 错误，即添加边缘及其属性，然后添加 `inV()` 或 `outV()` 会导致 `InternalFailureException`。
+ 修复了在某些情况下导致批量加载程序性能下降的 IAM 角色链中的几个问题。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.1.0.R5-query-versions"></a>

在将数据库集群升级到版本 1.2.1.0.R5 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.6.2`
+ *支持的 Gremlin 最新版本：*`3.6.2`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 升级到此版本
<a name="engine-releases-1.2.1.0.R5-upgrading"></a>

Amazon Neptune 1.2.1.0.R5 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.2.1.0.R5-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.1.0.R5-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.1.0.R4（2023 年 8 月 10 日）
<a name="engine-releases-1.2.1.0.R4"></a>

截至 2023 年 8 月 10 日，引擎版本 1.2.1.0.R4 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
在某些情况下，此引擎版本中引入的更改可能会导致您观察到批量加载性能下降。因此，到此版本的升级已临时暂停，直到此问题得到解决。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.2.1.0.R4-improvements"></a>
+ 添加了对于 Gremlin 的 [GraphSON-1.0](https://tinkerpop.apache.org/docs/3.4.1/dev/io/#graphson) 支持。要使用 GraphSON-1.0，请使用以下值传递 `Accept header`：

  ```
  application/vnd.gremlin-v1.0+json;types=false
  ```

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.1.0.R4-defects"></a>
+ 修复了一个 Gremlin 错误，即在检查 Gremlin 查询状态端点以查找子遍历中具有谓词的查询是否具有未原生处理的步骤时，会发生事务泄漏。
+ 修复了 Bolt 事务处理中的一个 openCypher 错误。
+ 修复了存储层上可能导致崩溃的并发问题。
+ 修复了慢速查询日志中的一个错误，以确保它们在禁用时处于非活动状态。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.1.0.R4-query-versions"></a>

在将数据库集群升级到版本 1.2.1.0.R4 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.6.2`
+ *支持的 Gremlin 最新版本：*`3.6.5`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.1.0.R4 的升级路径
<a name="engine-releases-1.2.1.0.R4-upgrade-paths"></a>

## 升级到此版本
<a name="engine-releases-1.2.1.0.R4-upgrading"></a>

Amazon Neptune 1.2.1.0.R4 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.2.1.0.R4-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.1.0.R4-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.1.0.R3（2023 年 6 月 13 日）
<a name="engine-releases-1.2.1.0.R3"></a>

截至 2023 年 6 月 13 日，引擎版本 1.2.1.0.R3 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
在某些情况下，此引擎版本中引入的更改可能会导致您观察到批量加载性能下降。因此，到此版本的升级已临时暂停，直到此问题得到解决。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的新增功能
<a name="engine-releases-1.2.1.0.R3-features"></a>
+ 增加了对使用 [IAM 角色链](bulk-load-tutorial-chain-roles.md)进行跨账户批量加载的支持。

## 此引擎版本中的改进
<a name="engine-releases-1.2.1.0.R3-improvements"></a>
+ 改进了 Gremlin 的 `fail()` 步骤，以区分它产生的异常与泛型 `InternalFailureException`，并确保向其提供的任何用户提供的消息都能传播回调用方。
+ 改进了 Gremlin 查询引擎对 `store`、`aggregate`、`cap`、`limit` 和 `hasLabel` 的优化。
+ 添加了对 openCypher 三角函数的支持：
  + `acos()`
  + `asin()`
  + `atan()`
  + `atan2()`
  + `cos()`
  + `cot()`
  + `degrees()`
  + `pi()`
  + `radians()`
  + `sin()`
  + `tan()`
+ 添加了对多个 openCypher 聚合函数的支持：
  + `percentileDisc()`
  + `stDev()`
+ 添加了对将 `datetime` 转换为 `epochmillis` 的 openCypher `epochmillis()` 函数的支持。例如：

  ```
  MATCH (n) RETURN epochMillis(n.someDateTime)
  1698972364782
  ```
+ 添加了对 openCypher 模数 (`%`) 运算符的支持。
+ 添加了对 openCypher 静态调试解释工具的支持。
+ 添加了对 openCypher `randomUUID()` 函数的支持。
+ 提高了 openCypher 性能：
  + 改进了解析器和查询计划器。
  + 提高了 DFE 引擎中的 CPU 利用率。
  + 提高了包含多个重用相同变量的更新子句的查询的性能。示例为：

    ```
    MERGE (n {name: 'John'})
      or
    MERGE (m {name: 'Jim'})
      or
    MERGE (n)-[:knows {since: 2023}]→(m)
    ```
  + 针对多跳查询模式优化了查询计划，例如：

    ```
    MATCH (n)-->()-->()-->(m)
    RETURN n m
    ```
  + 通过参数化查询提高了列表和映射注入的性能。例如：

    ```
    UNWIND $idList as id MATCH (n {`~id`: id})
    RETURN n.name
    ```
  + 通过使 `WITH` 成为适当的屏障，改进了包含它的查询执行。
  + 经过优化，可避免在 `Unfold` 和聚合函数中对值进行冗余具体化。
+ 提高了 `VALUES` 子句中包含大量静态输入的 SPARQL 查询的性能，例如：

  ```
  SELECT ?n WHERE { VALUES (?name) { ("John") ("Jim") ... many values ... } ?n a ?n_type . ?n ?name . }
  ```
+ 提高了 SPARQL CBD 查询性能。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.1.0.R3-defects"></a>
+ 修复了一个 Gremlin 错误，即在查询计划阶段，深度嵌套的长查询会导致 CPU 使用率过高和查询超时。
+ 修复了使用 `mergeV` 或 `mergeE` 时可能引发无效 `NullPointerException` 的 Gremlin 错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.1.0.R3-query-versions"></a>

在将数据库集群升级到版本 1.2.1.0.R3 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.6.2`
+ *支持的 Gremlin 最新版本：*`3.6.2`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.1.0.R3 的升级路径
<a name="engine-releases-1.2.1.0.R3-upgrade-paths"></a>

## 升级到此版本
<a name="engine-releases-1.2.1.0.R3-upgrading"></a>

Amazon Neptune 1.2.1.0.R3 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.2.1.0.R3-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.1.0.R3-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.1.0.R2（2023 年 5 月 2 日）
<a name="engine-releases-1.2.1.0.R2"></a>

截至 2023 年 5 月 2 日，引擎版本 1.2.1.0.R2 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.2.1.0.R2-improvements"></a>
+ 为所有 [Neptune ML API](machine-learning-api-reference.md) 添加了 `enableInterContainerTrafficEncryption` 参数，您可以使用该参数在训练或超参数调整任务中启用和禁用容器间流量加密。
+ 增加了对 Gremlin `mergeV()` 和 `mergeE()` 的多标签支持。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.1.0.R2-defects"></a>
+ 修复了一个 openCypher 错误，即更新和返回查询无法正确处理 `orderBy`、`limit` 或 `skip`。
+ 修复了一个 openCypher 错误，该错误允许一个请求中包含的参数被另一个同时请求中包含的参数所覆盖。
+ 修复了一个 openCypher 错误，即慢速查询日志不包含正确的查询时间。
+ 修复了一个 Gremlin 错误，即当包含 `GroupCountStep` 的查询作为字符串提交时，可能会发生事务泄漏。
+ 修复了启用慢速查询日志时 WebSocket 查询失败的 Gremlin 错误。
+ 修复了一个 Gremlin 错误，即 WebSocket 请求的慢速查询日志中缺少存储计数器调试日志。
+ 修复了几个涉及 `mergeV()` 和 `mergeE()` 的 Gremlin 错误。
+ 修复了一个 SPARQL 错误，即命名图形查询成本被错误估计，从而导致次优查询计划和内存不足错误。
+ 修复了在支持 IAM 的集群上影响 Gremlin 和 openCypher 查询授权的错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.1.0.R2-query-versions"></a>

在将数据库集群升级到版本 1.2.1.0.R2 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.6.2`
+ *支持的 Gremlin 最新版本：*`3.6.2`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.1.0.R2 的升级路径
<a name="engine-releases-1.2.1.0.R2-upgrade-paths"></a>

## 升级到此版本
<a name="engine-releases-1.2.1.0.R2-upgrading"></a>

Amazon Neptune 1.2.1.0.R2 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.2.1.0.R2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.1.0.R2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.0.2（2022 年 11 月 20 日）
<a name="engine-releases-1.2.0.2"></a>

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

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此版本的后续补丁版本
<a name="engine-releases-1.2.0.2-patches"></a>
+ [版本：1.2.0.2.R2（2022 年 12 月 15 日）](engine-releases-1.2.0.2.R2.md) 
+ [版本：1.2.0.2.R3（2023 年 3 月 27 日）](engine-releases-1.2.0.2.R3.md) 
+ [版本：1.2.0.2.R4（2023 年 5 月 8 日）](engine-releases-1.2.0.2.R4.md) 
+ [版本：1.2.0.2.R5（2023 年 8 月 16 日）](engine-releases-1.2.0.2.R5.md) 
+ [版本：1.2.0.2.R6（2023 年 9 月 12 日）](engine-releases-1.2.0.2.R6.md) 

## 此引擎版本中的新增功能
<a name="engine-releases-1.2.0.2-features"></a>
+ 在 Neptune ML 中引入了 Gremlin 的[实时归纳推理](machine-learning-overview-evolving-data.md#inductive-vs-transductive-inference)。
+ 引入了 openCypher 扩展，该扩展支持[为实体指定自定义 ID 值](access-graph-opencypher-extensions.md#opencypher-compliance-custom-ids)，而不是 Neptune 原本应生成的 UUID。分配自定义 ID 的功能使从 Neo4j 迁移到 Neptune 变得更加容易。
**警告**  
openCypher 规范的这一扩展不向后兼容，因为 `~id` 现在视为保留的属性名称。如果您已在数据和查询中将 `~id` 用作属性，则在升级到此版本之前，必须[将 `~id` 属性迁移到新的属性键](access-graph-opencypher-extensions.md#opencypher-compliance-custom-ids-migrating)。
+ 添加了[几种新的 SPARQL `DESCRIBE` 模式](sparql-query-hints-for-describe.md)以及用于配置它们的查询提示。

## 此引擎版本中的改进
<a name="engine-releases-1.2.0.2-improvements"></a>
+ 提高了 openCypher 的性能，特别是对于 VLP 查询。
+ 改进了具有非终端限制的 Gremlin 查询的 DFE 性能，例如：

  ```
  g.withSideEffect('Neptune#useDFE',true).V().hasLabel('Student').limit(5).out('takesCourse')
  ```

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.0.2-query-versions"></a>

在将数据库集群升级到版本 1.2.0.2 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.0.2 的升级路径
<a name="engine-releases-1.2.0.2-upgrade-paths"></a>

## 升级到此版本
<a name="engine-releases-1.2.0.2-upgrading"></a>

Amazon Neptune 1.2.0.2 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.0.2 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.0.2 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.2.0.2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.0.2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.0.2.R6（2023 年 9 月 12 日）
<a name="engine-releases-1.2.0.2.R6"></a>

截至 2023 年 9 月 12 日，引擎版本 1.2.0.2.R6 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.0.2.R6-defects"></a>
+ 修复了一个 SPARQL 错误，即在使用带有语言标签的文本上调用 `REGEX` 运算符时从不会成功。
+ 修复了导致批量加载性能下降的问题。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.0.2.R6-query-versions"></a>

在将数据库集群升级到版本 1.2.0.2.R6 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.5`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.0.2.R6 的升级路径
<a name="engine-releases-1.2.0.2.R6-upgrade-paths"></a>

如果您正在运行引擎版本 `1.2.0.2`，您的 Neptune 数据库集群将在下一个维护时段内自动升级到此维护补丁版本。

## 升级到此版本
<a name="engine-releases-1.2.0.2.R6-upgrading"></a>

Amazon Neptune 1.2.0.2.R6 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.0.2 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.0.2 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.2.0.2.R6-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.0.2.R6-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.0.2.R5（2023 年 8 月 16 日）
<a name="engine-releases-1.2.0.2.R5"></a>

截至 2023 年 8 月 16 日，引擎版本 1.2.0.2.R5 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
在某些情况下，此引擎版本中引入的更改可能会导致您观察到批量加载性能下降。因此，到此版本的升级已临时暂停，直到此问题得到解决。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.0.2.R5-defects"></a>
+ 修复了一个 Gremlin 错误，即当其中一些字符串输出包含空格字符时，`order()` 无法对字符串输出正确排序。
+ 修复了一个 Gremlin 错误，即在检查 Gremlin 查询状态端点以查找子遍历中具有谓词的查询是否具有未原生处理的步骤时，会发生事务泄漏。
+ 修复了 Bolt 事务处理中的一个 openCypher 错误。
+ 修复了存储层上可能导致崩溃的并发问题。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.0.2.R5-query-versions"></a>

在将数据库集群升级到版本 1.2.0.2.R5 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.5`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.0.2.R5 的升级路径
<a name="engine-releases-1.2.0.2.R5-upgrade-paths"></a>

如果您正在运行引擎版本 `1.2.0.2`，您的 Neptune 数据库集群将在下一个维护时段内自动升级到此维护补丁版本。

## 升级到此版本
<a name="engine-releases-1.2.0.2.R5-upgrading"></a>

Amazon Neptune 1.2.0.2.R5 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.0.2 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.0.2 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.2.0.2.R5-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.0.2.R5-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.0.2.R4（2023 年 5 月 8 日）
<a name="engine-releases-1.2.0.2.R4"></a>

截至 2023 年 5 月 8 日，引擎版本 1.2.0.2.R4 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.0.2.R4-defects"></a>
+ 修复了通过 `VALUES` 子句注入的大量值可能导致性能下降的 SPARQL 错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.0.2.R4-query-versions"></a>

在将数据库集群升级到版本 1.2.0.2.R4 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.6`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.0.2.R4 的升级路径
<a name="engine-releases-1.2.0.2.R4-upgrade-paths"></a>

如果您正在运行引擎版本 `1.2.0.2`，您的 Neptune 数据库集群将在下一个维护时段内自动升级到此维护补丁版本。

## 升级到此版本
<a name="engine-releases-1.2.0.2.R4-upgrading"></a>

Amazon Neptune 1.2.0.2.R4 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.0.2 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.0.2 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.2.0.2.R4-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.0.2.R4-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.0.2.R3（2023 年 3 月 27 日）
<a name="engine-releases-1.2.0.2.R3"></a>

截至 2023 年 3 月 27 日，引擎版本 1.2.0.2.R3 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.2.0.2.R3-improvements"></a>
+ 对于无服务器数据库集群，将最小容量设置更改为 1.0 NCU，并将最低有效最大容量设置更改为 2.5 NCU。请参阅 [Neptune 无服务器数据库集群中的容量扩展](neptune-serverless-capacity-scaling.md)。
+ 为所有 [Neptune ML API](machine-learning-api-reference.md) 添加了 `enableInterContainerTrafficEncryption` 参数，您可以使用该参数在训练或超参数调整任务中启用和禁用容器间流量加密。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.0.2.R3-defects"></a>
+ 修复了 `option(Predicate)` 未被识别为有效 Gremlin 语法的 Gremlin 错误。
+ 修复了一个 Gremlin 错误，该错误会导致查询由于包含太多步骤而失败时无法正确清理查询。
+ 修复了一个 Gremlin 正确性问题，该问题通过回退到 Tinkerpop 来影响将 `limit` 作为非并集步骤的子遍历的 DFE 查询。下面是此类查询的示例：

  ```
  g.withSideEffect('Neptune#useDFE', true).V().as("a").select("a").by(out().limit(1))
  ```
+ 修复了当以字符串形式提交的查询包含 `GroupCountStep` 时可能出现的 Gremlin 事务泄漏问题。
+ 修复了一个 openCypher 错误，即在列表或映射列表中未正确推断出参数值的类型。
+ 修复了一个 openCypher 错误，即更新和返回查询无法正确处理 `orderBy`、`limit` 或 `skip`。
+ 修复了一个 openCypher 错误，该错误允许一个请求中包含的参数被另一个同时请求中包含的参数所覆盖。
+ 修复了在 `VALUES` 子句中注入大量的值可能导致性能下降的 SPARQL 错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.0.2.R3-query-versions"></a>

在将数据库集群升级到版本 1.2.0.2.R3 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.6`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.0.2.R3 的升级路径
<a name="engine-releases-1.2.0.2.R3-upgrade-paths"></a>

如果您正在运行引擎版本 `1.2.0.2`，您的 Neptune 数据库集群将在下一个维护时段内自动升级到此维护补丁版本。

## 升级到此版本
<a name="engine-releases-1.2.0.2.R3-upgrading"></a>

Amazon Neptune 1.2.0.2.R3 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.0.2 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.0.2 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.2.0.2.R3-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.0.2.R3-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.0.2.R2（2022 年 12 月 15 日）
<a name="engine-releases-1.2.0.2.R2"></a>

截至 2022 年 12 月 15 日，引擎版本 1.2.0.2.R2 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.2.0.2.R2-improvements"></a>
+ 提高了涉及 `MERGE` 和 `OPTIONAL MATCH` 的 openCypher 查询的性能。
+ 改进了 openCypher 查询的性能，这些查询涉及文本值映射列表的 `UNWIND`。
+ 改进了对 `id` 具有 `IN` 筛选条件的 openCypher 查询的性能。例如：

  ```
  MATCH (n) WHERE id(n) IN ['1', '2', '3'] RETURN n
  ```
+ 各种 Gremlin 运算符的性能改进和正确性修复，包括 `repeat`、`coalesce`、`store` 和 `aggregate`。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.0.2.R2-defects"></a>
+ 修复了一个 openCypher 错误，即在 Bolt 和 SPARQL-JSON 中，查询返回字符串 `"null"`，而不是 null 值。
+ 修复了一个 Gremlin 错误，该错误导致附加到 `UnionStep` 的步骤标签无法传播到其子遍历的最后一个路径元素。
+ 修复了一个 Gremlin 错误，该错误导致 `valueMap()` 无法在 DFE 引擎的 `by()` 遍历下进行优化。
+ 修复了一个 Gremlin 错误，即作为较长 Gremlin 事务的一部分执行的读取查询不会锁定行。
+ 修复了一个审计日志错误，该错误导致记录不必要的信息以及日志中缺少某些字段。
+ 修复了一个审计日志错误，即未记录针对启用了 IAM 的数据库集群发出的 HTTP 请求的 IAM ARN。
+ 修复了一个查找缓存错误，以限制用于写入缓存的增量内存。
+ 修复了一个查找缓存错误，该错误涉及在写入失败时为查找缓存设置只读模式。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.0.2.R2-query-versions"></a>

在将数据库集群升级到版本 1.2.0.2.R2 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.0.2.R2 的升级路径
<a name="engine-releases-1.2.0.2.R2-upgrade-paths"></a>

如果您正在运行引擎版本 `1.2.0.2`，您的 Neptune 数据库集群将在下一个维护时段内自动升级到此维护补丁版本。

## 升级到此版本
<a name="engine-releases-1.2.0.2.R2-upgrading"></a>

Amazon Neptune 1.2.0.2.R2 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.0.2 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.0.2 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.2.0.2.R2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.0.2.R2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.0.1（2022 年 10 月 26 日）
<a name="engine-releases-1.2.0.1"></a>

截至 2022 年 10 月 26 日，引擎版本 1.2.0.1 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此版本的后续补丁版本
<a name="engine-releases-1.2.0.1-patches"></a>
+ [维护版本：1.2.0.1.R2（2022 年 12 月 13 日）](engine-releases-1.2.0.1.R2.md) 
+ [维护版本：1.2.0.1.R3（2023 年 9 月 27 日）](engine-releases-1.2.0.1.R3.md) 

## 此引擎版本中的新增功能
<a name="engine-releases-1.2.0.1-features"></a>
+ 推出了 [Amazon Neptune 无服务器](neptune-serverless.md)，这是一种按需自动扩缩配置，可以横向扩展数据库集群以满足处理需求的增加，然后在需求减少时再缩减。

## 此引擎版本中的改进
<a name="engine-releases-1.2.0.1-improvements"></a>
+ 改进了 Gremlin `order-by` 查询的性能。`NeptuneGraphQueryStep` 末尾带有 `order-by` 的 Gremlin 查询现在使用更大的块大小以获得更好的性能。这不适用于查询计划的内部（非根）节点上的 `order-by`。
+ 改进了 Gremlin 更新查询的性能。现在，在添加边缘或属性时，必须锁定顶点和边缘以防止删除。此更改消除了事务中的重复锁定，从而提高了性能。
+ 通过将 `dedup` 向下推送到原生执行层，改进了在 `repeat()` 子查询内使用 `dedup()` 的 Gremlin 查询的性能。
+ 为 IAM 身份验证错误添加了用户友好的错误消息。这些消息现在会显示您的 IAM 用户或角色 ARN、资源 ARN 以及针对该请求的未经授权的操作列表。未经授权的操作列表可帮助您查看正在使用的 IAM policy 中可能缺少或显式拒绝的内容。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.0.1-defects"></a>
+ 修复了一个 Gremlin 错误，即在升级到 TinkerPop 3.5 后错误地使用 `PartitionStrategy` 导致了一个错误，消息为“PartitionStrategy 不适用于匿名遍历”，从而阻止了遍历的执行。
+ 修复了涉及 `WherePredicateStep` 翻译的 Gremlin 正确性错误，即 Neptune 的查询引擎为使用 `where(P.neq('x'))` 及其变体的查询生成了错误的结果。
+ 修复了 `MERGE` 子句中的 openCypher 错误，该错误在某些情况下会导致创建重复的节点和边缘。
+ 修复了在处理 `OPTIONAL` 子句中包含 `(NOT) EXISTS` 的查询时的一个 SPARQL 错误，在某些情况下，查询结果会丢失。
+ 修复了在大量插入负载下导致性能回归的批量加载程序错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.0.1-query-versions"></a>

在将数据库集群升级到版本 1.2.0.1 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.0.1 的升级路径
<a name="engine-releases-1.2.0.1-upgrade-paths"></a>

## 升级到此版本
<a name="engine-releases-1.2.0.1-upgrading"></a>

Amazon Neptune 1.2.0.1 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.0.1 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.0.1 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.2.0.1-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.0.1-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.0.1.R3（2023 年 9 月 27 日）
<a name="engine-releases-1.2.0.1.R3"></a>

截至 2023 年 9 月 27 日，引擎版本 1.2.0.1.R3 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.2.0.1.R3-improvements"></a>
+ 为所有 [Neptune ML API](machine-learning-api-reference.md) 添加了 `enableInterContainerTrafficEncryption` 参数，您可以使用该参数在训练或超参数调整任务中启用和禁用容器间流量加密。
+ 对于无服务器数据库集群，将最小容量设置更改为 1.0 NCU，并将最低有效最大容量设置更改为 2.5 NCU。请参阅[Neptune 无服务器数据库集群中的容量扩展](neptune-serverless-capacity-scaling.md)*（在发布之前，此更改也需要反映在无服务器页面中）*。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.0.1.R3-defects"></a>
+ 修复了一个 openCypher 错误，即 update-and-return 查询无法正确处理 `orderBy`、`limit` 或 `skip`。
+ 修复了一个 openCypher 错误，该错误允许一个请求中包含的参数被另一个同时请求中包含的参数所覆盖。
+ 修复了 Bolt 事务处理中的一个 openCypher 错误。
+ 修复了 Gremlin 正确性问题，此类问题通过回退到 Tinkerpop 影响将 `limit` 作为非并集步骤的子遍历的 DFE 查询。例如，对于如下查询：

  ```
  g.withSideEffect('Neptune#useDFE', true)
   .V()
   .as("a")
   .select("a")
   .by(out()
   .limit(1))
  ```
+ 修复了一个 Gremlin 错误，即查询因为包含太多 TinkerPop 步骤而失败，然后无法清理。
+ 修复了一个 Gremlin 错误，即当其中一些字符串输出包含空格字符时，`order()` 无法对字符串输出正确排序。
+ 修复了一个 Gremlin 错误，即当查询以字符串形式提交并包含 `GroupCountStep` 时，可能会发生事务泄漏。
+ 修复了一个 Gremlin 错误，即在检查 Gremlin 查询状态端点以查找子遍历中具有谓词的查询是否具有未原生处理的步骤时，会发生事务泄漏。
+ 修复了一个 Gremlin 错误，即添加边缘及其属性，然后添加 `inV()` 或 `outV()` 会导致 `InternalFailureException`。
+ 修复了存储层中的并发问题。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.0.1.R3-query-versions"></a>

在将数据库集群升级到版本 1.2.0.1.R3 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.6`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.0.1.R3 的升级路径
<a name="engine-releases-1.2.0.1.R3-upgrade-paths"></a>

如果您正在运行[引擎版本 1.2.0.1](engine-releases-1.2.0.1.md)，您的 Neptune 数据库集群将在下一个维护时段内自动升级到此补丁版本。

## 升级到此版本
<a name="engine-releases-1.2.0.1.R3-upgrading"></a>

Amazon Neptune 1.2.0.1.R3 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.0.1 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.0.1 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.2.0.1.R3-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.0.1.R3-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.0.1.R2（2022 年 12 月 13 日）
<a name="engine-releases-1.2.0.1.R2"></a>

截至 2022 年 12 月 13 日，引擎版本 1.2.0.1.R2 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.2.0.1.R2-improvements"></a>
+ 改进了 openCypher 查询的性能，这些查询涉及文本值映射列表上的 `UNWIND`。
+ 各种 Gremlin 运算符的性能改进和正确性修复，包括 `repeat`、`coalesce`、`store` 和 `aggregate`。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.0.1.R2-defects"></a>
+ 修复了一个 openCypher 错误，即在 Bolt 和 SPARQL-JSON 中，查询返回字符串 `"null"`，而不是 null 值。
+ 修复了一个审计日志错误，该错误导致记录不必要的信息以及日志中缺少某些字段。
+ 修复了一个查找缓存错误，以限制用于写入缓存的增量内存。
+ 修复了一个查找缓存错误，该错误涉及在写入失败时为查找缓存设置只读模式。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.0.1.R2-query-versions"></a>

在将数据库集群升级到版本 1.2.0.1.R2 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.0.1.R2 的升级路径
<a name="engine-releases-1.2.0.1.R2-upgrade-paths"></a>

如果您正在运行[引擎版本 1.2.0.1](engine-releases-1.2.0.1.md)，您的 Neptune 数据库集群将在下一个维护时段内自动升级到此补丁版本。

## 升级到此版本
<a name="engine-releases-1.2.0.1.R2-upgrading"></a>

Amazon Neptune 1.2.0.1.R2 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.0.1 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.0.1 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.2.0.1.R2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.0.1.R2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.0.0（2022 年 7 月 21 日）
<a name="engine-releases-1.2.0.0"></a>

截至 2022 年 7 月 21 日，引擎版本 1.2.0.0 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](#engine-releases-1.2.0.0) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此版本的后续补丁版本
<a name="engine-releases-1.2.0.0-patches"></a>
+ [版本：1.2.0.0.R2（2022 年 10 月 14 日）](engine-releases-1.2.0.0.R2.md) 
+ [版本：1.2.0.0.R3（2022 年 12 月 15 日）](engine-releases-1.2.0.0.R3.md) 
+ [版本：1.2.0.0.R4（2023 年 9 月 29 日）](engine-releases-1.2.0.0.R4.md) 

## 此引擎版本中的新增功能
<a name="engine-releases-1.2.0.0-features"></a>
+ 增加了对[全球数据库](neptune-global-database.md)的支持。一个 Neptune 全球数据库跨多个 AWS 区域，并由一个区域中的一个主数据库集群和其它区域中最多五个辅助数据库集群组成。
+ 根据数据面板操作，在 Neptune IAM policy 中增加了对比之前更精细的访问控制的支持。这是一个重大变化，因为必须调整基于已弃用的 `connect` 操作的现有 IAM policy 以使用更精细的数据面板操作。请参阅[IAM policy 的类型](security-iam-access-manage.md#iam-auth-policy)。
+ 改进了读取器实例的可用性。以前，当写入器实例重启时，Neptune 集群中的所有读取器实例也会自动重启。从引擎版本 1.2.0.0 开始，读取器实例在写入器重启后保持活动状态，这提高了读取器的可用性。读取器实例可以单独重启以获取参数组的更改。请参阅[在 Amazon Neptune 中重启数据库实例](manage-console-instances-reboot.md)。
+ 添加了一个新的 [neptune\$1streams\$1expiry\$1days](parameters.md#parameters-db-cluster-parameters-neptune_streams_expiry_days) 数据库集群参数，允许您设置在删除流记录之前在服务器上保留它们的天数。范围为 1 到 90，默认值为 7。

## 此引擎版本中的改进
<a name="engine-releases-1.2.0.0-improvements"></a>
+ 提高了字节码查询的 Gremlin 序列化性能。
+ Neptune 现在使用 DFE 引擎处理文本谓词，以提高性能。
+ Neptune 现在使用 DFE 引擎处理 Gremlin `limit()` 步骤，包括非终端和子遍历限制。
+ 更改了 DFE 对 Gremlin `union()` 步骤的处理以与其它新特征配合使用，这意味着引用节点会按预期显示在查询配置文件中。
+ 通过并行化 DFE 中一些昂贵的联接操作，将性能提高多达 5 倍。
+ 对于 Gremlin DFE 引擎，添加了对于 `OrderGlobalStep order(global)` 的 `by()` 调制支持。
+ 在 DFE 的 explain 详细信息中添加了注入的静态值的显示。
+ 提高了修剪重复模式时的性能。
+ 在 Gremlin DFE 引擎中添加了顺序保存支持。
+ 提高了带有空筛选条件的 Gremlin 查询的性能，例如：

  ```
  g.V().hasId(P.within([]))
  ```

  ```
  g.V().hasId([])
  ```
+ 改进了 SPARQL 查询使用的数值太大而使 Neptune 无法在内部表示时的错误消息。
+ 通过减少禁用流时的索引搜索，提高了删除带有关联边缘的顶点的性能。
+ 将 DFE 支持扩展到 `has()` 步骤的更多变体，特别是扩展到 `hasKey()`、`hasLabel()`，以及 `has()` 中字符串/URI 的范围谓词。这会影响如下查询：

  ```
  // hasKey() on properties
  g.V().properties().hasKey("name")
  g.V().properties().has(T.key, TextP.startingWith("a"))
  g.E().properties().hasKey("weight")
  g.E().properties().hasKey(TextP.containing("t"))
  
  // hasLabel() on vertex properties
  g.V().properties().hasLabel("name")
  
  // range predicates on ID and Label fields
  g.V().has(T.label, gt("person"))
  g.E().has(T.id, lte("(an ID value)"))
  ```
+ 添加了 Neptune 特定的 openCypher [`join()`](access-graph-opencypher-extensions.md#opencypher-compliance-join-function) 函数，该函数可将列表中的字符串串联成单个字符串。
+ 更新了 [Neptune 托管式策略](security-iam-access-managed-policies.md)，以包含数据访问权限和新的全球数据库 API 的权限。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.0.0-defects"></a>
+ 修复了未指定内容类型的 HTTP 请求会自动失败的错误。
+ 修复了查询优化器中阻止在查询中使用服务调用的 SPARQL 错误。
+ 修复了 Turtle RDF 解析器中的一个 SPARQL 错误，即特定的 Unicode 数据组合会导致失败。
+ 修复了 SPARQL 错误，即 `GRAPH` 和 `SELECT` 子句的特定组合会生成错误的查询结果。
+ 修复了一个 Gremlin 错误，该错误会导致在联合步骤中使用任何筛选步骤的查询出现正确性问题，例如：

  ```
  g.V("1").union(hasLabel("person"), out())
  ```
+ 修复了一个 Gremlin 错误，即 `both().simplePath()` 的 `count()` 将导致在没有 `count()` 的情况下返回的实际结果数翻倍。
+ 修复了一个 openCypher 错误，即服务器在向启用了 IAM 身份验证的集群发出 Bolt 请求时生成了错误的签名不匹配异常。
+ 修复了一个 openCypher 错误，即如果在请求失败后提交，则使用 HTTP 保持活动状态的查询可能会被错误关闭。
+ 修复了一个 openCypher 错误，该错误可能导致在提交返回常量值的查询时引发内部错误。
+ 修复了 explain 详细信息中的一个错误，以便 DFE 子查询 `Time(ms)` 现在可以正确计算出 DFE 子查询中运算符的 CPU 时间。以下面的 explain 输出摘录为例：

  ```
  subQuery1
  ╔════╤════════╤════════╤═══════════════════════╤═══════════════════════════════════╤══════╤══════════╤═══════════╤═══════╤═══════════╗
  ║ ID │ Out #1 │ Out #2 │ Name                  │ Arguments                         │ Mode │ Units In │ Units Out │ Ratio │ Time (ms) ║
  ╠════╪════════╪════════╪═══════════════════════╪═══════════════════════════════════╪══════╪══════════╪═══════════╪═══════╪═══════════╣
    ...
  ╟────┼────────┼────────┼───────────────────────┼───────────────────────────────────┼──────┼──────────┼───────────┼───────┼───────────╢
  ║ 1  │ 2      │ -      │ DFEChunkLocalSubQuery │ subQuery=...graph#336e.../graph_1 │ -    │ 1        │ 1         │ 1.00  │ 0.38      ║
  ║    │        │        │                       │ coordinationTime(ms)=0.026        │      │          │           │       │           ║
  ╟────┼────────┼────────┼───────────────────────┼───────────────────────────────────┼──────┼──────────┼───────────┼───────┼───────────╢
    ...
  subQuery=...graph#336e.../graph_1
  ╔════╤════════╤════════╤═══════════════════════╤═══════════════════════════════════╤══════╤══════════╤═══════════╤═══════╤═══════════╗
  ║ ID │ Out #1 │ Out #2 │ Name                  │ Arguments                         │ Mode │ Units In │ Units Out │ Ratio │ Time (ms) ║
  ╠════╪════════╪════════╪═══════════════════════╪═══════════════════════════════════╪══════╪══════════╪═══════════╪═══════╪═══════════╣
  ║ 0  │ 1      │ -      │ DFESolutionInjection  │ solutions=[?100 -> [-10^^<LONG>]] │ -    │ 0        │ 1         │ 0.00  │ 0.04      ║
  ║    │        │        │                       │ outSchema=[?100]                  │      │          │           │       │           ║
  ╟────┼────────┼────────┼───────────────────────┼───────────────────────────────────┼──────┼──────────┼───────────┼───────┼───────────╢
  ║ 1  │ 3      │ -      │ DFERelationalJoin     │ joinVars=[]                       │ -    │ 2        │ 1         │ 0.50  │ 0.29      ║
  ╟────┼────────┼────────┼───────────────────────┼───────────────────────────────────┼──────┼──────────┼───────────┼───────┼───────────╢
  ║ 2  │ 1      │ -      │ DFESolutionInjection  │ outSchema=[]                      │ -    │ 0        │ 1         │ 0.00  │ 0.01      ║
  ╟────┼────────┼────────┼───────────────────────┼───────────────────────────────────┼──────┼──────────┼───────────┼───────┼───────────╢
  ║ 3  │ -      │ -      │ DFEDrain              │ -                                 │ -    │ 1        │ 0         │ 0.00  │ 0.02      ║
  ╚════╧════════╧════════╧═══════════════════════╧═══════════════════════════════════╧══════╧══════════╧═══════════╧═══════╧═══════════╝
  ```

  下表最后一列中的子查询时间加起来为 0.36 毫秒 (`.04 + .29 + .01 + .02 = .36`)。当您将该子查询的协调时间相加 (`.36 + .026 = .386`) 时，您会得到一个结果，该结果接近于上表最后一列中记录的子查询的时间，即 `0.38` 毫秒。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.0.0-query-versions"></a>

在将数据库集群升级到版本 1.2.0.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.0.0 的升级路径
<a name="engine-releases-1.2.0.0-upgrade-paths"></a>

由于这是主要引擎版本，因此无法对其进行自动升级。

您只能从[引擎版本 1.1.1.0](engine-releases-1.1.1.0.md) 的最新补丁版本手动升级到版本 `1.2.0.0`。早期引擎版本必须先升级到 `1.1.1.0` 的最新版本，然后才能升级到 `1.2.0.0`。

因此，在尝试升级到此版本之前，请确认您当前正在运行版本 `1.1.1.0` 的最新补丁版本。否则，请先升级到 `1.1.1.0` 的最新补丁版本。

升级之前，您还必须使用参数组系列 `neptune1.2` 重新创建您在先前版本中使用的任何自定义数据库集群参数组。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。

如果您先升级到版本 `1.1.1.0`，然后立即升级到 `1.2.0.0`，则可能会遇到如下错误：

```
   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 数据库集群](cluster-maintenance.md)）。

## 升级到此版本
<a name="engine-releases-1.2.0.0-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.0.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.0.0 ^
4.     --allow-major-version-upgrade ^
5.     --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)
```

### 升级前始终先测试
<a name="engine-1.2.0.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.0.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.0.0.R4（2023 年 9 月 29 日）
<a name="engine-releases-1.2.0.0.R4"></a>

截至 2023 年 9 月 29 日，引擎版本 1.2.0.0.R4 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.2.0.0.R4-improvements"></a>
+ 为所有 [Neptune ML API](machine-learning-api-reference.md) 添加了 `enableInterContainerTrafficEncryption` 参数，您可以使用该参数在训练或超参数调整任务中启用和禁用容器间流量加密。
+ 对于无服务器数据库集群，将最小容量设置更改为 1.0 NCU，并将最低有效最大容量设置更改为 2.5 NCU。请参阅[Neptune 无服务器数据库集群中的容量扩展](neptune-serverless-capacity-scaling.md)*（在发布之前，此更改也需要反映在无服务器页面中）*。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.0.0.R4-defects"></a>
+ 修复了一个 openCypher 错误，即 update-and-return 查询无法正确处理 `orderBy`、`limit` 或 `skip`。
+ 修复了一个 openCypher 错误，该错误允许一个请求中包含的参数被另一个同时请求中包含的参数所覆盖。
+ 修复了 Bolt 事务处理中的一个 openCypher 错误。
+ 修复了 Gremlin 正确性问题，此类问题通过回退到 Tinkerpop 影响将 `limit` 作为非并集步骤的子遍历的 DFE 查询。例如，对于如下查询：

  ```
  g.withSideEffect('Neptune#useDFE', true)
   .V()
   .as("a")
   .select("a")
   .by(out()
   .limit(1))
  ```
+ 修复了一个 Gremlin 错误，即查询因为包含太多 TinkerPop 步骤而失败，然后无法清理。
+ 修复了一个 Gremlin 错误，即当其中一些字符串输出包含空格字符时，`order()` 无法对字符串输出正确排序。
+ 修复了一个 Gremlin 错误，即当查询以字符串形式提交并包含 `GroupCountStep` 时，可能会发生事务泄漏。
+ 修复了一个 Gremlin 错误，即在检查 Gremlin 查询状态端点以查找子遍历中具有谓词的查询是否具有未原生处理的步骤时，会发生事务泄漏。
+ 修复了一个 Gremlin 错误，即添加边缘及其属性，然后添加 `inV()` 或 `outV()` 会导致 `InternalFailureException`。
+ 修复了存储层中的并发问题。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.0.0.R4-query-versions"></a>

在将数据库集群升级到版本 1.2.0.0.R4 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.6`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.0.0.R4 的升级路径
<a name="engine-releases-1.2.0.0.R4-upgrade-paths"></a>

如果您正在运行引擎版本 `1.2.0.0`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您只能从[引擎版本 1.1.1.0](engine-releases-1.1.1.0.md) 的最新补丁版本手动升级到版本 `1.2.0.0`。早期引擎版本必须先升级到 `1.1.1.0` 的最新版本，然后才能升级到 `1.2.0.0`。

如果您先升级到版本 `1.1.1.0`，然后立即升级到 `1.2.0.0`，则可能会遇到如下错误：

```
   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.
```

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

## 升级到此版本
<a name="engine-releases-1.2.0.0.R4-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.0.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.0.0 ^
4.     --allow-major-version-upgrade ^
5.     --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)
```

### 升级前始终先测试
<a name="engine-1.2.0.0.R4-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.0.0.R4-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.0.0.R3（2022 年 12 月 15 日）
<a name="engine-releases-1.2.0.0.R3"></a>

截至 2022 年 12 月 15 日，引擎版本 1.2.0.0.R3 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.2.0.0.R3-improvements"></a>
+ 提高了涉及 `MERGE` 和 `OPTIONAL MATCH` 的 openCypher 查询的性能。
+ 改进了 openCypher 查询的性能，这些查询涉及文本值映射列表上的 `UNWIND`。
+ 改进了对 `id` 具有 `IN` 筛选条件的 openCypher 查询的性能。例如：

  ```
  MATCH (n) WHERE id(n) IN ['1', '2', '3'] RETURN n
  ```
+ 各种 Gremlin 运算符的性能改进和正确性修复，包括 `repeat`、`coalesce`、`store` 和 `aggregate`。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.0.0.R3-defects"></a>
+ 修复了一个 openCypher 错误，即在 Bolt 和 SPARQL-JSON 中，查询返回字符串 `"null"`，而不是 null 值。
+ 修复了一个 openCypher 错误，以便能够在值为列表或映射列表时正确地解释参数类型。
+ 修复了一个审计日志错误，该错误导致记录不必要的信息以及日志中缺少某些字段。
+ 修复了一个审计日志错误，即未记录针对启用了 IAM 的数据库集群发出的 HTTP 请求的 IAM ARN。
+ 修复了一个查找缓存错误，以限制用于写入缓存的增量内存。
+ 修复了一个查找缓存错误，该错误涉及在写入失败时为查找缓存设置只读模式。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.0.0.R3-query-versions"></a>

在将数据库集群升级到版本 1.2.0.0.R3 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.0.0.R3 的升级路径
<a name="engine-releases-1.2.0.0.R3-upgrade-paths"></a>

如果您正在运行引擎版本 `1.2.0.0`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您只能从[引擎版本 1.1.1.0](engine-releases-1.1.1.0.md) 的最新补丁版本手动升级到版本 `1.2.0.0`。早期引擎版本必须先升级到 `1.1.1.0` 的最新版本，然后才能升级到 `1.2.0.0`。

如果您先升级到版本 `1.1.1.0`，然后立即升级到 `1.2.0.0`，则可能会遇到如下错误：

```
   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.
```

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

## 升级到此版本
<a name="engine-releases-1.2.0.0.R3-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.0.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.0.0 ^
4.     --allow-major-version-upgrade ^
5.     --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)
```

### 升级前始终先测试
<a name="engine-1.2.0.0.R3-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.0.0.R3-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.2.0.0.R2（2022 年 10 月 14 日）
<a name="engine-releases-1.2.0.0.R2"></a>

截至 2022 年 10 月 14 日，引擎版本 1.2.0.0.R2 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**注意**  
**如果从 1.2.0.0 之前的引擎版本升级：**  
[引擎版本 1.2.0.0](engine-releases-1.2.0.0.md) 为自定义参数组和自定义集群参数组引入了一种新格式。因此，如果您要从 1.2.0.0 之前的引擎版本升级到引擎版本 1.2.0.0 或更高版本，则必须使用参数组系列 `neptune1.2` 重新创建所有现有的自定义参数组和自定义集群参数组。早期版本使用参数组系列 `neptune1`，而这些参数组不适用于版本 1.2.0.0 及更高版本。请参阅[Amazon Neptune 参数组](parameter-groups.md)了解更多信息。
引擎版本 1.2.0.0 还引入了一种新的撤消日志格式。因此，必须清除早期引擎版本创建的所有撤消日志，并且 [`UndoLogsListSize`](cw-metrics.md#cw-metrics-UndoLogListSize) CloudWatch 指标必须降至零，然后才能开始从 1.2.0.0 之前的版本进行任何升级。如果您尝试开始更新时撤消日志记录过多（200000 或更多），则在等待清除撤消日志完成时，升级尝试可能会超时。  
您可以通过升级集群的写入器实例（清除发生的地方）来加快清除速率。在尝试升级之前执行此操作可能会在开始之前减少撤消日志的数量。将写入器的大小增加到 24XL 实例类型，可以将清除率提高到每小时超过一百万条记录。  
如果 `UndoLogsListSize` CloudWatch 指标非常大，那么提出支持案例可能会帮助您探索降低该指标的其它策略。
最后，1.2.0.0 版本中有一项重大变化，会影响之前使用 Bolt 协议和 IAM 身份验证的代码。从版本 1.2.0.0 开始，Bolt 需要一个用于 IAM 签名的资源路径。在 Java 中，设置资源路径可能如下所示：`request.setResourcePath("/openCypher"));`。在其它语言中，可以将 `/openCypher` 附加到端点 URI 之后。有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.2.0.0.R2-improvements"></a>
+ 改进了 Gremlin `order-by` 查询的性能。`NeptuneGraphQueryStep` 末尾带有 `order-by` 的 Gremlin 查询现在使用更大的块大小以获得更好的性能。这不适用于查询计划的内部（非根）节点上的 `order-by`。
+ 改进了 Gremlin 更新查询的性能。现在，在添加边缘或属性时，必须锁定顶点和边缘以防止删除。此更改消除了事务中的重复锁定，从而提高了性能。
+ 通过将 `dedup` 向下推送到原生执行层，改进了在 `repeat()` 子查询内使用 `dedup()` 的 Gremlin 查询的性能。
+ 添加了 Gremlin `Neptune#cardinalityEstimates` 查询提示。如果设置为 `false`，这会禁用基数估计。
+ 为 IAM 身份验证错误添加了用户友好的错误消息。这些消息现在会显示您的 IAM 用户或角色 ARN、资源 ARN 以及针对该请求的未经授权的操作列表。未经授权的操作列表可帮助您查看正在使用的 IAM policy 中可能缺少或显式拒绝的内容。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.2.0.0.R2-defects"></a>
+ 修复了涉及 `WherePredicateStep` 翻译的 Gremlin 正确性错误，即 Neptune 的查询引擎为使用 `where(P.neq('x'))` 及其变体的查询生成了错误的结果。
+ 修复了一个 Gremlin 错误，即在升级到 TinkerPop 3.5 后错误地使用 `PartitionStrategy` 导致了一个错误，消息为“PartitionStrategy 不适用于匿名遍历”，从而阻止了遍历的执行。
+ 修复了与最终联接的 `joinTime` 以及 `Project.ASK` 子组内的统计数据相关的各种 Gremlin 错误。
+ 修复了 `MERGE` 子句中的 openCypher 错误，该错误在某些情况下会导致创建重复的节点和边缘。
+ 修复了一个事务错误，也即，即使回滚了相应的并发字典插入，会话也可以插入图形数据并提交。
+ 修复了在大量插入负载下导致性能回归的批量加载程序错误。
+ 修复了在处理 `OPTIONAL` 子句中包含 `(NOT) EXISTS` 的查询时的一个 SPARQL 错误，在某些情况下，查询结果会丢失。
+ 修复了一个错误，即在评估开始之前由于超时而导致请求被取消的情况下，驱动程序可能显示为挂起。如果在请求队列中的项目发生超时时使用了服务器上的所有查询处理线程，则可能进入此状态。由于请求队列中的超时并未立即发送消息，因此对于客户端而言，响应仍处于待处理状态。

## 此版本支持的查询语言版本
<a name="engine-releases-1.2.0.0.R2-query-versions"></a>

在将数据库集群升级到版本 1.2.0.0.R2 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.2.0.0.R2 的升级路径
<a name="engine-releases-1.2.0.0.R2-upgrade-paths"></a>

如果您正在运行引擎版本 `1.2.0.0`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您只能从[引擎版本 1.1.1.0](engine-releases-1.1.1.0.md) 的最新补丁版本手动升级到版本 `1.2.0.0`。早期引擎版本必须先升级到 `1.1.1.0` 的最新版本，然后才能升级到 `1.2.0.0`。

如果您先升级到版本 `1.1.1.0`，然后立即升级到 `1.2.0.0`，则可能会遇到如下错误：

```
   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.
```

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

## 升级到此版本
<a name="engine-releases-1.2.0.0.R2-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.2.0.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.2.0.0 ^
4.     --allow-major-version-upgrade ^
5.     --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)
```

### 升级前始终先测试
<a name="engine-1.2.0.0.R2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.2.0.0.R2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.1.1.0（2022 年 4 月 19 日）
<a name="engine-releases-1.1.1.0"></a>

截至 2022 年 4 月 19 日，引擎版本 1.1.1.0 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
**从早于 `1.1.0.0` 的版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
为了成功完成升级，每个可用区 (AZ) 中的每个子网对于每个 Neptune 实例都必须至少有一个可用的 IP 地址。例如，如果子网 1 中有一个写入器实例和两个读取器实例，子网 2 中有两个读取器实例，则在开始升级之前，子网 1 必须至少有 3 个空闲的 IP 地址，子网 2 必须至少有 2 个空闲的 IP 地址。  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在几分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

## 此版本的后续补丁版本
<a name="engine-releases-1.1.1.0-patches"></a>
+ [维护版本：1.1.1.0.R2（2022 年 5 月 16 日）](engine-releases-1.1.1.0.R2.md) 
+ [版本：1.1.1.0.R3（2022 年 6 月 7 日）](engine-releases-1.1.1.0.R3.md) 
+ [版本：1.1.1.0.R4（2022 年 6 月 23 日）](engine-releases-1.1.1.0.R4.md) 
+ [版本：1.1.1.0.R5（2022 年 7 月 21 日）](engine-releases-1.1.1.0.R5.md) 
+ [版本：1.1.1.0.R6（2022 年 9 月 23 日）](engine-releases-1.1.1.0.R6.md) 
+ [版本：1.1.1.0.R7（2023 年 1 月 23 日）](engine-releases-1.1.1.0.R7.md) 

## 此引擎版本中的新增功能
<a name="engine-releases-1.1.1.0-features"></a>
+ [openCypher 查询语言](access-graph-opencypher.md)现在可普遍用于生产环境。
**警告**  
此版本对使用 openCypher 和 IAM 身份验证的代码进行了重大更改。在 openCypher 的 Neptune 预览版中，IAM 签名中的主机字符串包含协议，例如 `bolt://`，如下所示：  

  ```
  "Host":"bolt://(host URL):(port)"
  ```
从该引擎版本开始，必须省略协议：  

  ```
  "Host":"(host URL):(port)"
  ```
有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。
+ 增加了对 TinkerPop `3.5.2` 的支持。[此版本中的更改](https://github.com/apache/tinkerpop/blob/3.5.2/CHANGELOG.asciidoc#release-3-5-2)包括对远程事务的支持和对会话的字节码支持（使用 [https://tinkerpop.apache.org/docs/current/reference/#transactions](https://tinkerpop.apache.org/docs/current/reference/#transactions)），以及在 Gremlin 语言中添加了 `datetime()` 函数。
**警告**  
TinkerPop 3.5.0、3.5.1 和 3.5.2 中引入了几项重大更改，这些更改可能会影响您的 Gremlin 代码。例如，如下所示的[使用由 GraphTraversalSource 生成的遍历作为子项](https://issues.apache.org/jira/browse/TINKERPOP-2361)将不再起作用：`g.V().union(identity(), g.V())`。  
现在改用如下所示的匿名遍历：`g.V().union(identity(), __.V())`。
+ 增加了对 [AWS 全局条件键](iam-data-condition-keys.md#iam-data-global-condition-keys)的支持，您可以在 [IAM 数据访问策略](iam-admin-policies.md)中使用这些条件键，这些策略控制对存储在 Neptune 数据库集群中的数据的访问。
+ [Neptune DFE 查询引擎](neptune-dfe-engine.md)现在可以通过 openCypher 查询语言在生产环境中普遍使用，但尚未可用于 Gremlin 和 SPARQL 查询。现在，您可以使用它自己的 [neptune\$1dfe\$1query\$1engine](parameters.md#parameters-instance-parameters-neptune_dfe_query_engine) 实例参数而不是实验室模式参数来启用它。

## 此引擎版本中的改进
<a name="engine-releases-1.1.1.0-improvements"></a>
+ 向 [openCypher](access-graph-opencypher.md) 添加了新特征，例如参数化查询支持、参数化查询的抽象语法树 (AST) 缓存、可变长度路径 (VLP) 改进以及新的运算符和子句。有关当前的语言支持级别，请参阅[Amazon Neptune 中的 openCypher 规范合规性](feature-opencypher-compliance.md)。
+ 对 openCypher 进行了显著的性能改进，适用于简单的读写工作负载，与版本 1.1.0.0 相比，吞吐量更高。
+ 移除了 openCypher 处理可变长度路径的双向和深度限制。
+ 在 DFE 引擎中完成了对 Gremlin `within` 和 `without` 谓词的支持，包括它们与其它谓词运算符组合的情况。例如：

  ```
  g.V().has('age', within(12, 15, 18).or(gt(30)))
  ```
+ 当范围为全局（即不是 `order(local)`）且不使用 `by()` 调制器时，在 DFE 引擎中扩展了对 Gremlin `order` 步骤的支持。例如，此查询现在将具有 DFE 支持：

  ```
   g.V().values("age").order()
  ```
+ 在 [Neptune 流更改日志](streams-using-api-reponse.md)响应格式中添加了一个 `isLastOp` 字段，以指示记录是其事务中的最后一个操作。
+ 启用审计日志记录后，显著提高了审计日志记录的性能并减少了延迟。
+ 在审计日志中将 Gremlin WebSocket 字节码和 HTTP 查询转换为用户可读的格式。现在可以直接从审计日志中复制查询，以便在 Neptune 笔记本和其它地方执行。请注意，对当前审计日志格式的这一更改构成了重大更改。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.1.1.0-defects"></a>
+ 修复了一个罕见的 Gremlin 错误，即在组合使用嵌套 `filter()` 和 `count()` 步骤时未返回任何结果，例如在以下查询中：

  ```
  g.V("1").filter(out("knows")
          .filter(in("knows")
          .hasId("notExists"))
          .count())
  ```
+ 修复了一个 Gremlin 错误，即在将 `to()` 或 `from()` 遍历中聚合步骤存储的顶点与 `addE` 步骤结合使用时返回错误。此类查询的示例为：

  ```
  g.V("id").aggregate("v").out().addE().to(select("v").unfold()))
  ```
+ 修正了使用 DFE 引擎时，`not` 步骤在边缘情况下失败的 Gremlin 错误。例如：

  ```
  g.V().not(V())
  ```
+ 修正了 `sideEffect` 值在 `to()` 和 `from()` 遍历中不可用的 Gremlin 错误。
+ 修复了偶尔会导致快速重置以触发实例失效转移的错误。
+ 修复了批量加载程序错误，即在开始下一个加载任务之前不会关闭失败的事务。
+ 修复了批量加载程序错误，即内存不足可能会导致系统崩溃。
+ 添加了重试功能以修复批量加载程序错误，即在失效转移后，加载程序等待的时间不够长，IAM 凭证无法变为可用。
+ 修复了未正确清除非查询端点（例如 `status` 端点）的内部凭证缓存的错误。
+ 修复了一个流错误，以确保流提交序列号的顺序正确。
+ 修复了在启用 IAM 的集群上长时间运行的连接在十天内终止的错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.1.1.0-query-versions"></a>

在将数据库集群升级到版本 1.1.1.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.1.1.0 的升级路径
<a name="engine-releases-1.1.1.0-upgrade-paths"></a>

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。请注意，主版本引擎 (1.1.0.0) 之前的版本需要更长的时间才能升级到此版本。

您不会自动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.1.1.0-upgrading"></a>

**重要**  
**从 `1.1.0.0` 之前的任何版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在大约 6 分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine neptune \
4.     --engine-version 1.1.1.0 \
5.     --allow-major-version-upgrade \
6.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine neptune ^
4.     --engine-version 1.1.1.0 ^
5.     --allow-major-version-upgrade ^
6.     --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)
```

### 升级前始终先测试
<a name="engine-1.1.1.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.1.1.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.1.1.0.R7（2023 年 1 月 23 日）
<a name="engine-releases-1.1.1.0.R7"></a>

截至 2023 年 1 月 23 日，引擎版本 1.1.1.0.R7 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
**从早于 `1.1.0.0` 的版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
为了成功完成升级，每个可用区 (AZ) 中的每个子网对于每个 Neptune 实例都必须至少有一个可用的 IP 地址。例如，如果子网 1 中有一个写入器实例和两个读取器实例，子网 2 中有两个读取器实例，则在开始升级之前，子网 1 必须至少有 3 个空闲的 IP 地址，子网 2 必须至少有 2 个空闲的 IP 地址。  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在几分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

## 此引擎版本中的改进
<a name="engine-releases-1.1.1.0.R7-improvements"></a>
+ 提高了涉及 `MERGE` 和 `OPTIONAL MATCH` 的 openCypher 查询的性能。
+ 改进了 openCypher 查询的性能，这些查询涉及文本值映射列表的 `UNWIND`。
+ 改进了对 `id` 具有 `IN` 筛选条件的 openCypher 查询的性能。例如：

  ```
  MATCH (n) WHERE id(n) IN ['1', '2', '3'] RETURN n
  ```
+ 各种 Gremlin 运算符的性能改进和正确性修复，包括 `repeat`、`coalesce`、`store` 和 `aggregate`。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.1.1.0.R7-defects"></a>
+ 修复了一个 openCypher 错误，即如果在请求失败后提交，则使用 HTTP 保持活动状态的请求可能会被错误关闭。
+ 修复了一个 openCypher 错误，即列表或映射列表的参数类型并非总是能正确地解释。
+ 修复了一个 openCypher 错误，即在 Bolt 和 SPARQL-JSON 中，查询返回字符串 `"null"`，而不是 null 值。
+ 修复了查询超时失败和内存不足错误的 openCypher 错误代码和错误消息。
+ 修复了一个 Gremlin 错误，该错误导致 `valueMap()` 无法在 DFE 引擎的 `by()` 遍历下进行优化。
+ 修复了死锁探测器逻辑偶尔会导致引擎无响应的问题。
+ 修复了一个审计日志错误，该错误导致记录不必要的信息以及日志中缺少某些字段。

## 此版本支持的查询语言版本
<a name="engine-releases-1.1.1.0.R7-query-versions"></a>

在将数据库集群升级到版本 1.1.1.0.R7 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.3`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.1.1.0.R7 的升级路径
<a name="engine-releases-1.1.1.0.R7-upgrade-paths"></a>

如果您正在运行引擎版本 `1.1.1.0`，您的集群将在下一个维护时段内自动升级到此补丁版本。

## 升级到此版本
<a name="engine-releases-1.1.1.0.R7-upgrading"></a>

**重要**  
**从 `1.1.0.0` 之前的任何版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在大约 6 分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.1.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.1.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.1.1.0.R7-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.1.1.0.R7-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.1.1.0.R6（2022 年 9 月 23 日）
<a name="engine-releases-1.1.1.0.R6"></a>

截至 2022 年 9 月 23 日，引擎版本 1.1.1.0.R6 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
**从早于 `1.1.0.0` 的版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
为了成功完成升级，每个可用区 (AZ) 中的每个子网对于每个 Neptune 实例都必须至少有一个可用的 IP 地址。例如，如果子网 1 中有一个写入器实例和两个读取器实例，子网 2 中有两个读取器实例，则在开始升级之前，子网 1 必须至少有 3 个空闲的 IP 地址，子网 2 必须至少有 2 个空闲的 IP 地址。  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在几分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

**注意**  
此版本对使用 openCypher 和 IAM 身份验证的代码进行了重大更改。到目前为止，IAM 签名中的主机字符串包含协议，例如 `bolt://`，如下所示：  

```
"Host":"bolt://(host URL):(port)"
```
从引擎版本 `1.1.1.0` 开始，必须省略协议：  

```
"Host":"(host URL):(port)"
```
有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.1.1.0.R6-improvements"></a>
+ 改进了 Gremlin `order-by` 查询的性能。`NeptuneGraphQueryStep` 末尾带有 `order-by` 的 Gremlin 查询现在使用更大的块大小以获得更好的性能。这不适用于查询计划的内部（非根）节点上的 `order-by`。
+ 改进了 Gremlin 更新查询的性能。现在，在添加边缘或属性时，必须锁定顶点和边缘以防止删除。此更改消除了事务中的重复锁定，从而提高了性能。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.1.1.0.R6-defects"></a>
+ 修复了 `MERGE` 子句中的 openCypher 错误，该错误在某些情况下会导致创建重复的节点和边缘。
+ 修复了在处理 `OPTIONAL` 子句中包含 `(NOT) EXISTS` 的 SPARQL 查询时的一个错误，也即，在某些情况下，查询结果会丢失。
+ 修复了在批量加载过程中延迟服务器重启的错误。
+ 修复了一个错误，即在关系属性上使用筛选条件的 openCypher 可变长度模式双向遍历会导致错误。这种可变长度模式的一个例子是 `(n)-[r*1..2]->(m)`。
+ 修复了与如何将缓存的数据发送回客户端相关的错误，该错误在某些情况下会导致意想不到的长延迟。

## 此版本支持的查询语言版本
<a name="engine-releases-1.1.1.0.R6-query-versions"></a>

在将数据库集群升级到版本 1.1.1.0.R6 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.1.1.0.R6 的升级路径
<a name="engine-releases-1.1.1.0.R6-upgrade-paths"></a>

如果您正在运行引擎版本 `1.1.1.0`，您的集群将在下一个维护时段内自动升级到此补丁版本。

## 升级到此版本
<a name="engine-releases-1.1.1.0.R6-upgrading"></a>

**重要**  
**从 `1.1.0.0` 之前的任何版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在大约 6 分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.1.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.1.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.1.1.0.R6-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.1.1.0.R6-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.1.1.0.R5（2022 年 7 月 21 日）
<a name="engine-releases-1.1.1.0.R5"></a>

截至 2022 年 7 月 21 日，引擎版本 1.1.1.0.R5 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
**从早于 `1.1.0.0` 的版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
为了成功完成升级，每个可用区 (AZ) 中的每个子网对于每个 Neptune 实例都必须至少有一个可用的 IP 地址。例如，如果子网 1 中有一个写入器实例和两个读取器实例，子网 2 中有两个读取器实例，则在开始升级之前，子网 1 必须至少有 3 个空闲的 IP 地址，子网 2 必须至少有 2 个空闲的 IP 地址。  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在几分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

**注意**  
此版本对使用 openCypher 和 IAM 身份验证的代码进行了重大更改。到目前为止，IAM 签名中的主机字符串包含协议，例如 `bolt://`，如下所示：  

```
"Host":"bolt://(host URL):(port)"
```
从引擎版本 `1.1.1.0` 开始，必须省略协议：  

```
"Host":"(host URL):(port)"
```
有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.1.1.0.R5-improvements"></a>
+ 进行了改进以支持死锁检测。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.1.1.0.R5-defects"></a>
+ 修复了在某些条件下无法完全从容关闭数据库集群的错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.1.1.0.R5-query-versions"></a>

在将数据库集群升级到版本 1.1.1.0.R5 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.1.1.0.R5 的升级路径
<a name="engine-releases-1.1.1.0.R5-upgrade-paths"></a>

如果您正在运行引擎版本 `1.1.1.0`，您的集群将在下一个维护时段内自动升级到此补丁版本。

## 升级到此版本
<a name="engine-releases-1.1.1.0.R5-upgrading"></a>

**重要**  
**从 `1.1.0.0` 之前的任何版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在大约 6 分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.1.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.1.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.1.1.0.R5-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.1.1.0.R5-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.1.1.0.R4（2022 年 6 月 23 日）
<a name="engine-releases-1.1.1.0.R4"></a>

截至 2022 年 6 月 23 日，引擎版本 1.1.1.0.R4 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
**从早于 `1.1.0.0` 的版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
为了成功完成升级，每个可用区 (AZ) 中的每个子网对于每个 Neptune 实例都必须至少有一个可用的 IP 地址。例如，如果子网 1 中有一个写入器实例和两个读取器实例，子网 2 中有两个读取器实例，则在开始升级之前，子网 1 必须至少有 3 个空闲的 IP 地址，子网 2 必须至少有 2 个空闲的 IP 地址。  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在几分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

**注意**  
此版本对使用 openCypher 和 IAM 身份验证的代码进行了重大更改。到目前为止，IAM 签名中的主机字符串包含协议，例如 `bolt://`，如下所示：  

```
"Host":"bolt://(host URL):(port)"
```
从引擎版本 `1.1.1.0` 开始，必须省略协议：  

```
"Host":"(host URL):(port)"
```
有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.1.1.0.R4-improvements"></a>
+ 更新了 `x2g` 实例类型的实例配置。
+ 提高了顶点删除的性能。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.1.1.0.R4-defects"></a>
+ 修复了 Gremlin 错误，即对于多次调用的查询，或者对于跨某些类型的 ASK 联接的多个读取器调用的查询，解决方案无法保持稳定的顺序。
+ 此外，缩小了先前版本中导致 Gremlin 中某些类型的 ASK 联接性能下降的更改范围。
+ 修复了在子遍历中存在边缘输入和顶点遍历时 `union()` 步骤中出现的 Gremlin 错误。
+ 修复了 Gremlin profile 错误，即一些步骤报告为未经过优化，而实际上已优化。
+ 修复了一个 SPARQL 错误，即嵌套在 `UNION` 子句中的 `FILTER` 表达式中使用的变量被分配了无效的作用域信息。

## 此版本支持的查询语言版本
<a name="engine-releases-1.1.1.0.R4-query-versions"></a>

在将数据库集群升级到版本 1.1.1.0.R4 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.1.1.0.R4 的升级路径
<a name="engine-releases-1.1.1.0.R4-upgrade-paths"></a>

如果您正在运行引擎版本 `1.1.1.0`，您的集群将在下一个维护时段内自动升级到此补丁版本。

## 升级到此版本
<a name="engine-releases-1.1.1.0.R4-upgrading"></a>

**重要**  
**从 `1.1.0.0` 之前的任何版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在大约 6 分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.1.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.1.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.1.1.0.R4-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.1.1.0.R4-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.1.1.0.R3（2022 年 6 月 7 日）
<a name="engine-releases-1.1.1.0.R3"></a>

截至 2022 年 6 月 7 日，引擎版本 1.1.1.0.R3 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
**从早于 `1.1.0.0` 的版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在几分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

**注意**  
此版本对使用 openCypher 和 IAM 身份验证的代码进行了重大更改。到目前为止，IAM 签名中的主机字符串包含协议，例如 `bolt://`，如下所示：  

```
"Host":"bolt://(host URL):(port)"
```
从引擎版本 `1.1.1.0` 开始，必须省略协议：  

```
"Host":"(host URL):(port)"
```
有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.1.1.0.R3-improvements"></a>
+ 增加了对基于 Graviton2 的 `x2g` 实例类型的支持，此实例类型针对内存密集型工作负载进行了优化。这些最初仅在四个 AWS 区域中提供：
  + 美国东部（弗吉尼亚州北部）(`us-east-1`)
  + 美国东部（俄亥俄州）(`us-east-2`)
  + 美国西部（俄勒冈州）(`us-west-2`)
  + 欧洲地区（爱尔兰）(`eu-west-1`)

  有关更多信息，请参阅 [Neptune 定价页面](https://aws.amazon.com/neptune/pricing/)。
+ 改进了涉及多个边缘或顶点遍历、属性查找或标签查找的 Gremlin 步骤的性能。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.1.1.0.R3-defects"></a>
+ 修复了在处理子遍历中的 `otherV()` 步骤时出现的 Gremlin 错误。
+ 修复了查询中的一个 Gremlin 错误，即 `union` 只有作为子级的筛选步骤。例如：

  ```
  g.V().union(has("name"), out("knows")).out()
  ```
+ 修复了一个 SPARQL 错误，即嵌套在 `UNION` 子句中的 `FILTER` 表达式中使用的变量被分配了无效的作用域信息。

## 此版本支持的查询语言版本
<a name="engine-releases-1.1.1.0.R3-query-versions"></a>

在将数据库集群升级到版本 1.1.1.0.R3 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.1.1.0.R3 的升级路径
<a name="engine-releases-1.1.1.0.R3-upgrade-paths"></a>

如果您正在运行引擎版本 `1.1.1.0`，您的集群将在下一个维护时段内自动升级到此补丁版本。

## 升级到此版本
<a name="engine-releases-1.1.1.0.R3-upgrading"></a>

**重要**  
**从 `1.1.0.0` 之前的任何版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在大约 6 分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.1.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.1.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.1.1.0.R3-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.1.1.0.R3-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 维护版本，版本 1.1.1.0.R2（2022 年 5 月 16 日）
<a name="engine-releases-1.1.1.0.R2"></a>

截至 2022 年 5 月 16 日，引擎版本 1.1.1.0.R2 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
**从早于 `1.1.0.0` 的版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
为了成功完成升级，每个可用区 (AZ) 中的每个子网对于每个 Neptune 实例都必须至少有一个可用的 IP 地址。例如，如果子网 1 中有一个写入器实例和两个读取器实例，子网 2 中有两个读取器实例，则在开始升级之前，子网 1 必须至少有 3 个空闲的 IP 地址，子网 2 必须至少有 2 个空闲的 IP 地址。  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在几分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

**注意**  
此版本对使用 openCypher 和 IAM 身份验证的代码进行了重大更改。到目前为止，IAM 签名中的主机字符串包含协议，例如 `bolt://`，如下所示：  

```
"Host":"bolt://(host URL):(port)"
```
从引擎版本 `1.1.1.0` 开始，必须省略协议：  

```
"Host":"(host URL):(port)"
```
有关示例，请参阅 [使用 Bolt 协议](access-graph-opencypher-bolt.md)。

## 此版本支持的查询语言版本
<a name="engine-releases-1.1.1.0.R2-query-versions"></a>

在将数据库集群升级到版本 1.1.1.0.R2 之前，请确保您的项目与以下查询语言版本兼容：
+ *支持的 Gremlin 最早版本：*`3.5.2`
+ *支持的 Gremlin 最新版本：*`3.5.4`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.1.1.0.R2 的升级路径
<a name="engine-releases-1.1.1.0.R2-upgrade-paths"></a>

如果您正在运行引擎版本 `1.1.1.0`，您的集群将在下一个维护时段内自动升级到此维护补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.1.1.0.R2-upgrading"></a>

**重要**  
**从 `1.1.0.0` 之前的任何版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在大约 6 分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.1.1.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.1.1.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.1.1.0.R2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.1.1.0.R2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.1.0.0（2021 年 11 月 19 日）
<a name="engine-releases-1.1.0.0"></a>

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

**重要**  
**从早于 `1.1.0.0` 的版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
为了成功完成升级，每个可用区 (AZ) 中的每个子网对于每个 Neptune 实例都必须至少有一个可用的 IP 地址。例如，如果子网 1 中有一个写入器实例和两个读取器实例，子网 2 中有两个读取器实例，则在开始升级之前，子网 1 必须至少有 3 个空闲的 IP 地址，子网 2 必须至少有 2 个空闲的 IP 地址。  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在几分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

**注意**  
从此引擎版本开始，Neptune [不再支持 `R4` 实例类型](instance-types.md#instance-type-r4)。如果您在数据库集群中使用 `R4` 实例，则在升级到此版本之前，必须手动将其替换为其它实例类型。如果您的写入器实例是 `R4`，请按照[以下说明](best-practices-general-basic.md#best-practices-resize-instance)进行移动。

## 此版本的后续补丁版本
<a name="engine-releases-1.1.0.0-patches"></a>
+ [维护版本：1.1.0.0.R2（2022 年 5 月 16 日）](engine-releases-1.1.0.0.R2.md) 
+ [维护版本：1.1.0.0.R3（2022 年 12 月 23 日）](engine-releases-1.1.0.0.R3.md) 

## 此引擎版本中的新增功能
<a name="engine-releases-1.1.0.0-features"></a>
+ 引入了由 [AWS Graviton2 处理器](https://aws.amazon.com/ec2/graviton/)提供支持的通用 `T4g` 和内存优化型 `R6g` 数据库实例。与当前一代基于 x86 的同类实例相比，基于 Graviton2 的实例可为各种工作负载提供明显更好的性价比。在这些新的实例类型上，应用程序可以正常运行，升级到它们时无需移植应用程序代码。

  有关定价和区域可用性的更多信息，请参阅 [Amazon Neptune 定价页面](https://aws.amazon.com/neptune/pricing/)。
+ 在 Neptune ML 中引入了[自定义模型](machine-learning-custom-models.md)。
+ 在 Neptune ML 中增加了对 [SPARQL 推理查询](machine-learning-sparql-inference-queries.md)的支持。
+ 为属性图数据添加了[一个新的流端点](streams-using-api-call.md)，即：

  ```
  https://Neptune-DNS:8182/propertygraph/stream
  ```

  这个端点的输出格式（名为 `PG_JSON`）与旧 `gremlin/stream` 输出的 `GREMLIN_JSON` 格式完全相同。

  新的 `propertygraph/stream` 端点将 Neptune 流支持扩展到 openCypher，并将 `gremlin/stream` 端点替换为其关联的 `GREMLIN_JSON` 输出格式。

## 此引擎版本中的改进
<a name="engine-releases-1.1.0.0-improvements"></a>
+ 对 Neptune 流进行了改进：
  + 在 [Neptune 流更改日志响应格式](streams-using-api-reponse.md)的 `records` 对象中添加了一个 `commitTimestamp` 字段，以便为更改日志流中的每个记录提供时间戳。
  + 为 `iteratorType` 参数添加了 `LATEST` 值，允许您从流中检索最后一个有效的 eventId。请参阅[调用 Streams API](streams-using-api-call.md)。
+ 增加了对在 Gremlin 节点分类和回归查询中获取[推理置信度分数](machine-learning-gremlin-inference-query-predicates.md#machine-learning-gremlin-inference-neptune-ml-score-predicate)的支持。
+ 添加了对 openCypher 中 `OPTIONAL MATCH` 子句的支持。
+ 添加了对 openCypher 中 `MERGE` 子句的支持。
+ 添加了对在 openCypher 的 `WITH` 子句中使用 `ORDER BY` 的支持。
+ 在 openCypher 中增加了对模式理解的支持，并扩展了对存在性检查之外的模式表达式的支持。
+ 扩展了对 openCypher 中 `DELETE` 和 `DELETE DETACH` 子句的支持，以便它们现在可以与其它更新子句一起使用。
+ 扩展了对 openCypher 中与 `RETURN` 一起使用的 `CREATE` 和 `UPDATE` 子句的支持。
+ 在 DFE 引擎中添加了对 Gremlin `limit`、`range` 和 `skip` 步骤的支持。
+ 改进了 DFE 引擎中既没有请求 `explain` 也没有请求 `profile` 时的查询执行。
+ 改进了 DFE 引擎中 `value` 表达式的查询执行。
+ 改进了许多链接的 Gremlin 条件插入模式，以避免并发修改异常并允许链接这样的查询模式：
  + 按 ID 进行有条件的顶点插入，例如：

    ```
    g.V(ID).fold().coalesce(unfold(), g.addV("L1").property(id,ID))
    ```
  + 使用多个标签进行有条件的顶点插入，例如：

    ```
    g.V(ID).fold().coalesce(unfold(), g.addV("L1::L2").property(id,ID))
    ```
  + 按 ID 进行有条件的边缘插入，例如：

    ```
    g.E(ID).fold().coalesce(unfold(), V(from).addE(label).to(V(to)).property(id, ID))
    ```
  + 使用多个标签进行有条件的边缘插入，例如：

    ```
    g.E(ID).fold().coalesce(unfold(), g.addE(label).from(V(from)).to(V(to)).property(id, ID))
    ```
  + 有条件的插入，后跟查询，例如：

    ```
    g.V(ID).fold().coalesce(unfold(), g.addV("L1").property(id,ID)).project("myvalues").by(valueMap())
    ```
  + 带有附加属性的有条件插入，例如：

    ```
    g.V(ID).fold().coalesce(unfold(), g.addV("L1").property(id,ID).property("name","pumba"))
    ```

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.1.0.0-defects"></a>
+ 已对 `T3.medium` 实例类型禁用[统计数据](neptune-dfe-statistics.md)特征，此实例类型无法支持该特征。
+ 修复了 `explain` 中使用非常量值的 `IN` 函数的 SPARQL 错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.1.0.0-query-versions"></a>

在将数据库集群升级到版本 1.1.0.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.11`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.1.0.0 的升级路径
<a name="engine-releases-1.1.0.0-upgrade-paths"></a>

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

您不会自动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.1.0.0-upgrading"></a>

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.1.0.0 \
4.     --allow-major-version-upgrade \
5.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.1.0.0 ^
4.     --allow-major-version-upgrade ^
5.     --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)
```

### 升级前始终先测试
<a name="engine-1.1.0.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.1.0.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 维护版本，版本 1.1.0.0.R3（2022 年 12 月 23 日）
<a name="engine-releases-1.1.0.0.R3"></a>

截至 2022 年 12 月 23 日，引擎版本 1.1.0.0.R3 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
**从早于 `1.1.0.0` 的版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
为了成功完成升级，每个可用区 (AZ) 中的每个子网对于每个 Neptune 实例都必须至少有一个可用的 IP 地址。例如，如果子网 1 中有一个写入器实例和两个读取器实例，子网 2 中有两个读取器实例，则在开始升级之前，子网 1 必须至少有 3 个空闲的 IP 地址，子网 2 必须至少有 2 个空闲的 IP 地址。  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在几分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

## 此引擎版本中的改进
<a name="engine-releases-1.1.0.0.R3-improvements"></a>
+ 各种 Gremlin 运算符的性能改进和正确性修复，包括 `repeat`、`coalesce`、`store` 和 `aggregate`。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.1.0.0.R3-defects"></a>
+ 修复了 CPU 峰值问题。
+ 修复了一个 openCypher 错误，即在 Bolt 和 SPARQL-JSON 中，查询返回字符串 `"null"`，而不是 null 值。
+ 修复了一个审计日志错误，该错误导致记录不必要的信息以及日志中缺少某些字段。

## 此版本支持的查询语言版本
<a name="engine-releases-1.1.0.0.R3-query-versions"></a>

在将数据库集群升级到版本 1.1.0.0.R3 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.11`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.1.0.0.R3 的升级路径
<a name="engine-releases-1.1.0.0.R3-upgrade-paths"></a>

如果您正在运行引擎版本 `1.1.0.0`，您的集群将在下一个维护时段内自动升级到此维护补丁版本。

**重要**  
**从 `1.1.0.0` 之前的任何版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在大约 6 分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

**注意**  
从此引擎版本开始，Neptune [不再支持 `R4` 实例类型](instance-types.md#instance-type-r4)。如果您在数据库集群中使用 `R4` 实例，则在升级到此版本之前，必须手动将其替换为其它实例类型。如果您的写入器实例是 `R4`，请按照[以下说明](best-practices-general-basic.md#best-practices-resize-instance)进行移动。

## 升级到此版本
<a name="engine-releases-1.1.0.0.R3-upgrading"></a>

Amazon Neptune 1.1.0.0.R3 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.1.0.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.1.0.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.1.0.0.R3-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.1.0.0.R3-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 维护版本，版本 1.1.0.0.R2（2022 年 5 月 16 日）
<a name="engine-releases-1.1.0.0.R2"></a>

截至 2022 年 5 月 16 日，引擎版本 1.1.0.0.R2 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

**重要**  
**从早于 `1.1.0.0` 的版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在几分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.1.0.0.R2-defects"></a>
+ 修复了未正确清除非查询端点（例如状态端点）的内部凭证缓存的错误。
+ 修复了引擎升级后导致复制滞后增加的错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.1.0.0.R2-query-versions"></a>

在将数据库集群升级到版本 1.1.0.0.R2 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.11`
+ *openCypher 版本：*`Neptune-9.0.20190305-1.0`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.1.0.0.R2 的升级路径
<a name="engine-releases-1.1.0.0.R2-upgrade-paths"></a>

如果您正在运行引擎版本 `1.1.0.0`，您的集群将在下一个维护时段内自动升级到此维护补丁版本。

**重要**  
**从 `1.1.0.0` 之前的任何版本升级到此引擎版本还会触发数据库集群中所有实例的操作系统升级。由于不会处理操作系统升级过程中发生的活动写入请求，因此在开始升级之前，必须暂停对正在升级的集群的所有写入工作负载，包括批量数据加载。**  
升级开始时，Neptune 会根据您的数据库集群信息生成一个快照，其名称由 `preupgrade` 后跟自动生成的标识符组成。您无需为此快照付费，如果升级过程中出现任何问题，您可以使用它来还原数据库集群。  
当引擎升级本身完成后，新的引擎版本将在旧操作系统上短暂可用，但不到 5 分钟后，集群中的所有实例将同时开始操作系统升级。此时，您的数据库集群将在大约 6 分钟内不可用。升级完成后，您可以恢复写入工作负载。  
此过程会生成以下事件：  
每个集群的事件消息：  
`Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]`
`Database cluster major version has been upgraded`
每个实例的事件消息：  
`Applying off-line patches to DB instance`
`DB instance shutdown`
`Finished applying off-line patches to DB instance`
`DB instance restarted`

**注意**  
从此引擎版本开始，Neptune [不再支持 `R4` 实例类型](instance-types.md#instance-type-r4)。如果您在数据库集群中使用 `R4` 实例，则在升级到此版本之前，必须手动将其替换为其它实例类型。如果您的写入器实例是 `R4`，请按照[以下说明](best-practices-general-basic.md#best-practices-resize-instance)进行移动。

## 升级到此版本
<a name="engine-releases-1.1.0.0.R2-upgrading"></a>

Amazon Neptune 1.1.0.0.R2 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.1.0.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.1.0.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.1.0.0.R2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.1.0.0.R2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.5.1（2021 年 10 月 1 日）
<a name="engine-releases-1.0.5.1"></a>

截至 2021 年 10 月 1 日，引擎版本 1.0.5.1 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 此版本的后续补丁版本
<a name="engine-releases-1.0.5.1-patches"></a>
+ [版本：1.0.5.1.R2（2021 年 10 月 26 日）](engine-releases-1.0.5.1.R2.md) 
+ [版本：1.0.5.1.R3（2022 年 1 月 13 日）](engine-releases-1.0.5.1.R3.md) 
+ [维护版本：1.0.5.1.R4（2022 年 5 月 16 日）](engine-releases-1.0.5.1.R4.md) 

## 此引擎版本中的新增功能
<a name="engine-releases-1.0.5.1-features"></a>
+ 添加了用于缓存指定查询的结果的[结果缓存](gremlin-results-cache.md)。
+ 在 Neptune openCypher 中添加了日期/时间支持。
+ 增加了对 Neptune openCypher 中元素的 `List` 和 `Map` 访问支持。

## 此引擎版本中的改进
<a name="engine-releases-1.0.5.1-improvements"></a>
+ 使 Neptune openCypher 端点名称不区分大小写。
+ 改进了 openCypher explain。
+ 改进了 Gremlin 单个更新插入查询模式，以 `iterate()` 和 `profile()` 步骤结尾。
+ 改进了 Gremlin `keys()` 和 `property()` 函数的性能。
+ 当 Gremlin `dedup()` 步骤与全局范围一起使用时，该步骤会在 DFE 中运行。
+ 启用 DFE 引擎后，以下 Gremlin `HAS` 谓词将在 DFE 引擎中运行：
  + `EQ`
  + `NEQ`
  + `LT`
  + `LTE`
  + `GT`
  + `GTE`
  + `BETWEEN`
  + `INSIDE`
  + `OUTSIDE`
  + `WITHIN`
  + `AND (connectives)`
  + `OR (connectives)`
+ 提高了 LIMIT 查询性能。
+ 提高了 openCypher 常规聚合查询的性能。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.5.1-defects"></a>
+ 修复了允许将边缘连接到另一个边缘的 Gremlin 错误。
+ 修复了导致选择次优联接策略的 Gremlin 错误。
+ 修复了一个 Gremlin 错误，当存在超过 100 个属性时，该错误会导致节点和关系的序列化停止。
+ 修复了一个错误，该错误会减慢具有大型图形模式的查询的查询执行计划。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.5.1-query-versions"></a>

在将数据库集群升级到版本 1.0.5.1 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.11`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.5.1 的升级路径
<a name="engine-releases-1.0.5.1-upgrade-paths"></a>

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

您不会自动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.5.1-upgrading"></a>

Amazon Neptune 1.0.5.1 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.5.1 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.5.1 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.5.1-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.5.1-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 维护版本，版本 1.0.5.1.R4（2022 年 5 月 16 日）
<a name="engine-releases-1.0.5.1.R4"></a>

截至 2022 年 5 月 16 日，引擎版本 1.0.5.1.R4 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.5.1.R4-query-versions"></a>

在将数据库集群升级到版本 1.0.5.1.R4 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.11`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.5.1.R4 的升级路径
<a name="engine-releases-1.0.5.1.R4-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.5.1`，您的集群将在下一个维护时段内自动升级到此维护补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.5.1.R4-upgrading"></a>

Amazon Neptune 1.0.5.1.R4 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.5.1 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.5.1 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.5.1.R4-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.5.1.R4-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.5.1.R3（2022 年 1 月 13 日）
<a name="engine-releases-1.0.5.1.R3"></a>

截至 2022 年 1 月 13 日，引擎版本 1.0.5.1.R3 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.5.1.R3-defects"></a>
+ 修复了当查询无法获取它所需的所有资源时可能导致资源泄漏的错误。
+ 修复了在查询执行期间由无人认领的内存分配导致的少量内存泄漏。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.5.1.R3-query-versions"></a>

在将数据库集群升级到版本 1.0.5.1.R3 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.11`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.5.1.R3 的升级路径
<a name="engine-releases-1.0.5.1.R3-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.5.1`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.5.1.R3-upgrading"></a>

Amazon Neptune 1.0.5.1.R3 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.5.1 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.5.1 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.5.1.R3-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.5.1.R3-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.5.1.R2（2021 年 10 月 26 日）
<a name="engine-releases-1.0.5.1.R2"></a>

截至 2021 年 10 月 26 日，引擎版本 1.0.5.1.R2 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.5.1.R2-defects"></a>
+ 修复了一个错误，当在可重复读取隔离下创建较旧版本的图形元素的情况下发生临时错误时，该错误导致服务器重启。Neptune 现在改为返回错误，以便客户端可以重试。
+ 修复了在单个基数更新期间发生临时错误时导致服务器重启的错误。Neptune 现在改为返回错误，以便客户端可以重试。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.5.1.R2-query-versions"></a>

在将数据库集群升级到版本 1.0.5.1.R2 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.11`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.5.1.R2 的升级路径
<a name="engine-releases-1.0.5.1.R2-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.5.1`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.5.1.R2-upgrading"></a>

Amazon Neptune 1.0.5.1.R2 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.5.1 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.5.1 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.5.1.R2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.5.1.R2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.5.0（2021 年 7 月 27 日）
<a name="engine-releases-1.0.5.0"></a>

截至 2021 年 7 月 27 日，引擎版本 1.0.5.0 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 此版本的后续补丁版本
<a name="engine-releases-1.0.5.0-patches"></a>
+ [版本：1.0.5.0.R2（2021 年 8 月 16 日）](engine-releases-1.0.5.0.R2.md) 
+ [版本：1.0.5.0.R3（2021 年 9 月 15 日）](engine-releases-1.0.5.0.R3.md) 
+ [维护版本：1.0.5.0.R5（2022 年 5 月 16 日）](engine-releases-1.0.5.0.R5.md) 

## 此引擎版本中的新增功能
<a name="engine-releases-1.0.5.0-features"></a>
+ [Neptune ML](machine-learning.md) 已发布供生产使用，具有许多新特征，并且不再处于实验室模式。
+ 在实验室模式下添加了对 [openCypher](access-graph-opencypher.md) 查询语言的初始支持。**openCypher** 是 Cypher 查询语言的开源标准。它的语法在 [Cypher 查询语言参考（版本 9）](https://s3.amazonaws.com/artifacts.opencypher.org/openCypher9.pdf)中指定，并由 [openCypher](http://www.opencypher.org/) 项目维护。

  有关该语言的 Neptune 实现的信息，请参阅[使用 openCypher 访问 Neptune 图形](access-graph-opencypher.md)。

  还支持 [Bolt 协议](https://neo4j.com/docs/bolt/current/bolt/)，Neptune 客户端使用该协议进行 openCypher 查询。请参阅[使用 Bolt 协议向 Neptune 进行 openCypher 查询](access-graph-opencypher-bolt.md)。

  现在会自动启用对 openCypher 的支持，但这取决于 [Neptune DFE 引擎](neptune-dfe-engine.md)，它目前仅在[实验室模式](features-lab-mode.md)下可用。现在，`neptune_lab_mode` 数据库集群参数中的默认 `DFEQueryEngine` 设置为 `DFEQueryEngine=viaQueryHint`，这意味着引擎已启用，但仅用于存在 `useDFE` 查询提示并设置为 `true` 的查询。如果通过设置 `DFEQueryEngine=disabled` 禁用 DFE 引擎，则无法使用 openCypher。
+ 增加了对 [SPARQL 1.1 图形存储 HTTP 协议](https://www.w3.org/TR/sparql11-http-rdf-update/)的支持。请参阅[在 Amazon Neptune 中使用 SPARQL 1.1 图形存储 HTTP 协议 (GSP)](sparql-graph-store-protocol.md)。
+ 已将[Neptune DFE 引擎](neptune-dfe-engine.md)的默认实验室模式设置更改为 `viaQueryHint`，这意味着 DFE 引擎现在默认处于启用状态，但仅用于 `useDFE` 查询提示存在且设置为 `true` 的查询。
+ 添加了一个新的 Amazon CloudWatch 指标 `StatsNumStatementsScanned`，用于监控 Neptune DFE 引擎的统计数据计算。请参阅[使用该`StatsNumStatementsScanned` CloudWatch 指标监控统计数据计算](neptune-dfe-statistics.md#neptune-dfe-statistics-monitoring)。

## 此引擎版本中的改进
<a name="engine-releases-1.0.5.0-improvements"></a>
+ 增加了对 Apache TinkerPop 3.4.11 的支持。
**重要**  
TinkerPop 版本 3.4.11 中进行了一项更改，可提高查询处理方式的正确性，但目前有时会严重影响查询性能。  
例如，这种查询的运行速度可能会慢得多：  

  ```
  g.V().hasLabel('airport').
    order().
      by(out().count(),desc).
    limit(10).
    out()
  ```
由于 TinkerPop 3.4.11 的这一更改，极限步骤之后的顶点现在以非最佳方式获取。为避免这种情况，您可以通过在 `order().by()` 之后的任何点添加 barrier() 步骤来修改查询。例如：  

  ```
  g.V().hasLabel('airport').
    order().
      by(out().count(),desc).
    limit(10).
    barrier().
    out()
  ```
+ Neptune DFE 替代查询引擎现在支持 [SPARQL `joinOrder` 查询提示](sparql-query-hints-joinOrder.md)。
+ [Neptune 状态 API](access-graph-status.md) 的输出经过扩展和重组，可以更清楚地了解数据库集群的设置和特征。

  新的输出有一个顶级 `features` 对象，其中包含有关数据库集群的特征的状态信息，还有一个包含设置信息的顶级 `settings` 对象。要审核新格式，请参阅[实例状态命令的输出示例](access-graph-status.md#access-graph-status-sample-output)。
+ 如果服务器上最后一个事件 ID 已经过期，则当通过此事件 ID 请求 `AFTER_SEQUENCE_NUMBER` 个流时，改进了对流更改日志的处理。如果请求的事件 ID 是服务器上最近清除的事件 ID，则服务器不会再引发事件 ID 过期错误。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.5.0-defects"></a>
+ 修复了与数值排序有关的 Gremlin 错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.5.0-query-versions"></a>

在将数据库集群升级到版本 1.0.5.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.11`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.5.0 的升级路径
<a name="engine-releases-1.0.5.0-upgrade-paths"></a>

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

您不会自动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.5.0-upgrading"></a>

Amazon Neptune 1.0.5.0 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.5.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.5.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.5.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.5.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 维护版本，版本 1.0.5.0.R5（2022 年 5 月 16 日）
<a name="engine-releases-1.0.5.0.R5"></a>

截至 2022 年 5 月 16 日，引擎版本 1.0.5.0.R5 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.5.0.R5-query-versions"></a>

在将数据库集群升级到版本 1.0.5.0.R5 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.11`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.5.0.R5 的升级路径
<a name="engine-releases-1.0.5.0.R5-upgrade-paths"></a>

如果您正在运行引擎版本 1.0.5.0，您的集群将在下一个维护时段内自动升级到此维护补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.5.0.R5-upgrading"></a>

Amazon Neptune 1.0.5.0.R5 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.5.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.5.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.5.0.R5-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.5.0.R5-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.5.0.R3（2021 年 9 月 15 日）
<a name="engine-releases-1.0.5.0.R3"></a>

截至 2021 年 9 月 15 日，引擎版本 1.0.5.0.R3 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.5.0.R3-defects"></a>
+ 修复了在以下任一情况下导致引擎无响应的错误：
  + 批量加载是在进行自动统计数据计算的同时进行的。
  + 在已经进行统计数据计算的同时，有人手动请求进行统计数据计算。
+ 修复了死锁检测和锁定获取中可能导致引擎崩溃的错误。
+ 修复了一个 Gremlin 错误，也即，引擎在 Gremlin 推理查询中遇到来自远程 ML 端点的未知数据时会引发错误。
+ 修复了机器学习模型管理 API 中与模型转换任务和实例推荐相关的几个错误。
+ 修复了在生成节点和边缘 ID 时会导致引擎崩溃的错误。
+ 修复了一个错误，该错误会减慢具有大型图形模式的查询的查询计划生成速度。
+ 修复了一个 openCypher 错误，该错误可能导致在检索具有 100 个以上属性的节点时查询停止。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.5.0.R3-query-versions"></a>

在将数据库集群升级到版本 1.0.5.0.R3 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.11`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.5.0.R3 的升级路径
<a name="engine-releases-1.0.5.0.R3-upgrade-paths"></a>

如果您正在运行引擎版本 1.0.5.0，您的集群将在下一个维护时段内自动升级到此补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.5.0.R3-upgrading"></a>

Amazon Neptune 1.0.5.0.R3 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.5.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.5.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.5.0.R3-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.5.0.R3-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.5.0.R2（2021 年 8 月 16 日）
<a name="engine-releases-1.0.5.0.R2"></a>

截至 2021 年 8 月 16 日，引擎版本 1.0.5.0.R2 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.5.0.R2-defects"></a>
+ 禁用了[引擎版本 `1.0.5.0`](engine-releases-1.0.5.0.md) 中进行的优化，该优化使 [Neptune 查找缓存](feature-overview-lookup-cache.md)当引擎在副本上重启后仍然有效。现在，副本重启会清除查找缓存。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.5.0.R2-query-versions"></a>

在将数据库集群升级到版本 1.0.5.0.R2 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.11`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.5.0.R2 的升级路径
<a name="engine-releases-1.0.5.0.R2-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.5.0`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.5.0.R2-upgrading"></a>

Amazon Neptune 1.0.5.0.R2 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.5.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.5.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.5.0.R2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.5.0.R2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.4.2（2021 年 6 月 1 日）
<a name="engine-releases-1.0.4.2"></a>

**注意**  
引擎发行版本 1.0.4.2.R2 是 1.0.4.2 中第一个实际发行的版本。

**Topics**
+ [Amazon Neptune 引擎版本 1.0.4.2.R5（2021 年 8 月 16 日）](engine-releases-1.0.4.2.R5.md)
+ [Amazon Neptune 引擎版本 1.0.4.2.R4（2021 年 7 月 23 日）](engine-releases-1.0.4.2.R4.md)
+ [Amazon Neptune 引擎版本 1.0.4.2.R3（2021 年 6 月 28 日）](engine-releases-1.0.4.2.R3.md)
+ [Amazon Neptune 引擎版本 1.0.4.2.R2（2021 年 6 月 1 日）](engine-releases-1.0.4.2.R2.md)
+ [Amazon Neptune 引擎版本 1.0.4.2.R1（2021 年 5 月 27 日）](engine-releases-1.0.4.2.R1.md)

# Amazon Neptune 引擎版本 1.0.4.2.R5（2021 年 8 月 16 日）
<a name="engine-releases-1.0.4.2.R5"></a>

截至 2021 年 8 月 16 日，引擎版本 1.0.4.2.R5 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.4.2.R5-defects"></a>
+ 禁用了[引擎版本 `1.0.4.2.R4`](engine-releases-1.0.4.2.R4.md) 中进行的优化，该优化使 [Neptune 查找缓存](feature-overview-lookup-cache.md)当引擎在副本上重启后仍然有效。现在，副本重启会清除查找缓存。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.4.2.R5-query-versions"></a>

在将数据库集群升级到版本 1.0.4.2.R5 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.10`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.4.2.R5 的升级路径
<a name="engine-releases-1.0.4.2.R5-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.4.2`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

# Amazon Neptune 引擎版本 1.0.4.2.R4（2021 年 7 月 23 日）
<a name="engine-releases-1.0.4.2.R4"></a>

截至 2021 年 7 月 23 日，引擎版本 1.0.4.2.R4 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 此引擎版本中的改进
<a name="engine-releases-1.0.4.2.R4-improvements"></a>
+ 改进了查找缓存的行为，以避免在副本上运行快速重置后清除冗余缓存。
+ 如果服务器上最后一个事件 ID 已经过期，则当通过此事件 ID 请求 `AFTER_SEQUENCE_NUMBER` 个流时，改进了对流更改日志的处理。如果请求的事件 ID 是服务器上最近清除的事件 ID，则服务器不会再引发事件 ID 过期错误。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.4.2.R4-defects"></a>
+ 修复了 1.0.4.0.R1 中引入的一个错误，即查询不返回大于 760 个字符的全部字符串值。受此错误影响的项目是 RDF 文本和 URI，或 Gremlin ID、键和字符串值。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.4.2.R4-query-versions"></a>

在将数据库集群升级到版本 1.0.4.2.R4 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.10`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.4.2.R4 的升级路径
<a name="engine-releases-1.0.4.2.R4-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.4.2`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

# Amazon Neptune 引擎版本 1.0.4.2.R3（2021 年 6 月 28 日）
<a name="engine-releases-1.0.4.2.R3"></a>

截至 2021 年 6 月 28 日，引擎版本 1.0.4.2.R3 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 此引擎版本中的已知问题
<a name="engine-releases-1.0.4.2.R3-known-issues"></a>

**问题：**

一个 SPARQL 错误，即如果有空格，则无法支持 `Accept` 标头中的媒体类型。

例如，使用 ` -H "Accept: text/csv; q=1.0, */*; q=0.1" ` 的查询会返回 JSON 输出而不是 CSV 输出。

**解决办法：**

如果删除标头的 `Accept` 子句中的空格，则引擎将以正确的请求格式返回输出。换句话说，不使用 ` -H "Accept: text/csv; q=1.0, */*; q=0.1" `，而是使用：

```
  -H "Accept: text/csv;q=1.0,*/*;q=0.1"
```

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.4.2.R3-defects"></a>
+ 修复了快速重置后清除副本上的查找缓存的错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.4.2.R3-query-versions"></a>

在将数据库集群升级到版本 1.0.4.2.R3 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.10`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.4.2.R3 的升级路径
<a name="engine-releases-1.0.4.2.R3-upgrade-paths"></a>

除非您的数据库集群使用一个或多个 `R5d` 实例，否则此补丁版本是可选的。如果您的集群有 `R5d` 实例，它将在下一个维护时段自动升级。否则，它不会自动升级到此补丁版本。

您可以使用 AWS CLI [apply-pending-maintenance-action](https://docs.aws.amazon.com/cli/latest/reference/neptune/apply-pending-maintenance-action.html) 命令 ([ApplyPendingMaintenanceAction](api-other-apis.md#ApplyPendingMaintenanceAction) API)手动将 `1.0.4.2.R3` 版本升级到此 `1.0.4.2.R2` 版本。

# Amazon Neptune 引擎版本 1.0.4.2.R2（2021 年 6 月 1 日）
<a name="engine-releases-1.0.4.2.R2"></a>

截至 2021 年 6 月 1 日，引擎版本 1.0.4.2.R2 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 此版本的后续补丁版本
<a name="engine-releases-1.0.4.2.R2-patches"></a>
+ [版本：1.0.4.2.R3（2021 年 6 月 28 日）](engine-releases-1.0.4.2.R3.md) 

## 此引擎版本中的已知问题
<a name="engine-releases-1.0.4.2.R2-known-issues"></a>

**问题：**

一个 SPARQL 错误，即如果有空格，则无法支持 `Accept` 标头中的媒体类型。

例如，使用 ` -H "Accept: text/csv; q=1.0, */*; q=0.1" ` 的查询会返回 JSON 输出而不是 CSV 输出。

**解决办法：**

如果删除标头的 `Accept` 子句中的空格，则引擎将以正确的请求格式返回输出。换句话说，不使用 ` -H "Accept: text/csv; q=1.0, */*; q=0.1" `，而是使用：

```
  -H "Accept: text/csv;q=1.0,*/*;q=0.1"
```

## 此引擎版本中的新增功能
<a name="engine-releases-1.0.4.2.R2-features"></a>
+ 添加了新的 R5d 实例类型，其中包括一个查找缓存，用于在涉及大量属性值或 RDF 文本查找的用例中加快读取速度。请参阅[Neptune 查找缓存可以加快读取查询的速度](feature-overview-lookup-cache.md)。
+ 添加了一个新的实验室模式参数，允许仅在每个查询的基础上使用 `useDFE` 查询提示调用实验性 DFE 引擎。

## 此引擎版本中的改进
<a name="engine-releases-1.0.4.2.R2-improvements"></a>
+ 增加了对 TinkerPop 3.4.10 的支持。
+ 增加了对在发送 Gremlin 脚本请求时使用 `withStrategies( )` 配置步骤的支持。具体而言，`SubgraphStrategy`、`PartitionStrategy`、`ReadOnlyStrategy`、`EdgeLabelVerificationStrategy` 和 `ReservedKeysVerificationStrategy` 都受支持。
+ 为查询中间的 `V()` 遍历添加了优化。以前，在 Neptune 中未对此类遍历进行优化。
+ 增加了对 [RFC 2141 URN](https://tools.ietf.org/html/rfc2141) 的支持，以用作批量加载的 `baseUri` 和 `namedGraphUri` 参数。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.4.2.R2-defects"></a>
+ 修复了解析器中的一个 Gremlin 错误，即错误的查询被视为有效。
+ 修复了一个 Gremlin 错误，即使用 `cap().unfold()` 将 `aggregate()` 副作用展开到 `valueMap()` 会引发异常。
+ 修复了一个 Gremlin 错误，即 `addV()` 步骤后的某些 `property()` 步骤失败并出现“无法转换为字符串”错误。
+ 修复了一个 Gremlin 错误，以防止某些条件插入模式引发并发修改异常。
+ 修复了一个 Gremlin 错误，以使查询请求的超时现在无法超过会话超时。
+ 修复了一个 SPARQL 错误，也即，当远程服务器不可用时，使用 LOAD 或 UNLOAD 进行更新可能会失败，并显示 HTTP 代码 500 而不是 HTTP 代码 400。
+ 修复了一个错误，也即，当使用大于 32 位有符号整数限制 (2,147,483,647) 的 `commitNum` 或 `opNum` 值时，流 API 调用失败。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.4.2.R2-query-versions"></a>

在将数据库集群升级到版本 1.0.4.2.R2 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.10`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.4.2.R2 的升级路径
<a name="engine-releases-1.0.4.2.R2-upgrade-paths"></a>

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

您不会自动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.4.2.R2-upgrading"></a>

Amazon Neptune 1.0.4.2.R2 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.4.2 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.4.2 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.4.2.R2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.4.2.R2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.4.2.R1（2021 年 5 月 27 日）
<a name="engine-releases-1.0.4.2.R1"></a>

从未部署过引擎版本 1.0.4.2.R1。

# Amazon Neptune 引擎版本 1.0.4.1（2020 年 12 月 8 日）
<a name="engine-releases-1.0.4.1"></a>

截至 2020 年 12 月 8 日，引擎版本 1.0.4.1 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 此版本的后续补丁版本
<a name="engine-releases-1.0.4.1-patches"></a>
+ [版本：1.0.4.1.R1.1（2021 年 3 月 22 日）](engine-releases-1.0.4.1.R1.1.md)
+ [版本：1.0.4.1.R2（2021 年 2 月 24 日）](engine-releases-1.0.4.1.R2.md) 
**重要**  
[版本：1.0.4.0（2020 年 10 月 12 日）](engine-releases-1.0.4.0.md) 规定所有与 Amazon Neptune 的连接都必须使用 TLS 1.2 和 HTTPS。但是，该版本中的一个错误允许以前设置数据库集群参数以防止强制执行 HTTPS 连接的客户继续使用 HTTP 连接和/或过时的 TLS 连接。  
该错误已在补丁版本 [1.0.4.0.R2](engine-releases-1.0.4.0.R2.md) 和 [1.0.4.1.R2](engine-releases-1.0.4.1.R2.md) 中修复，但是当自动安装补丁时，此修复导致意外的连接失败。因此，这两个补丁都已恢复，只能手动安装，以便您有机会更新 TLS 1.2 的设置。  
与 Neptune 的所有连接都必须使用 SSL/TLS 会影响您与 Gremlin 控制台、Gremlin 驱动程序、Gremlin Python、.NET、nodeJs、REST API 的连接以及负载均衡器连接。如果您到目前为止一直使用 HTTP 或较早的 TLS 版本来处理其中任何或所有内容，则必须先更新相关的客户端和驱动程序，并将代码更改为仅使用 HTTPS，然后才能将系统更新到最新补丁。

## 此引擎版本中的新增功能
<a name="engine-releases-1.0.4.1-features"></a>
+ 推出了 Neptune ML 特征，该特征可为 Amazon Neptune 带来强大的机器学习功能。请参阅[用于在图形上进行机器学习的 Amazon Neptune ML](machine-learning.md)。
+ 添加了用于移除从远程源检索到的数据的自定义 SPARQL `UNLOAD` 操作。请参阅[SPARQL UPDATE UNLOAD](sparql-api-reference-unload.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.0.4.1-improvements"></a>
+ 优化了一些 Gremlin 条件插入模式，以避免并发修改异常。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.4.1-defects"></a>
+ 修复了一个 Gremlin 错误，该错误可能会导致使用 `as()` 步骤的特定查询模式丢失结果。
+ 修复了一个 Gremlin 错误，该错误可能在使用嵌套在另一个步骤（如 `union()`）中的 `project()` 步骤时导致错误。
+ 修复了 `project()` 步骤中的一个 Gremlin 错误。
+ 修复了基于字符串的遍历中 `none()` 步骤不起作用的 Gremlin 错误。
+ 修复了基于字符串的遍历中的一个 Gremlin 错误，即不支持将空映射作为 `inject()` 步骤的参数。
+ 修复了 DFE 引擎中基于字符串的遍历执行中的一个 Gremlin 错误，即终端方法（例如 `toList()`）无法正常工作。
+ 修复了一个 Gremlin 错误，该错误导致无法关闭在字符串查询中使用 `iterate()` 步骤的事务。
+ 修复了一个 Gremlin 错误，该错误可能会导致使用 `is(P.gte(0))` 模式的查询在某些情况下引发异常。
+ 修复了一个 Gremlin 错误，该错误可能会导致使用 `order().by(T.id)` 模式的查询在某些情况下引发异常。
+ 修复了一个 Gremlin 错误，该错误可能会导致使用 `addV().aggregate()` 模式的查询在某些情况下给出错误的结果。
+ 修复了一个 Gremlin 错误，该错误可能会导致使用 `path()` 步骤后跟 `project()` 步骤模式的查询在某些情况下引发异常。
+ 修复了一个 SPARQL 错误，即 `SUBSTR` 函数发出错误信号而不是返回空字符串。
+ 修复了 DFE 引擎中的一个错误，该错误可能导致非阻塞查询计划中的联接操作在存在未绑定变量的情况下生成不正确的结果。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.4.1-query-versions"></a>

在将数据库集群升级到版本 1.0.4.1 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.8`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.4.1 的升级路径
<a name="engine-releases-1.0.4.1-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.4.1`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.4.1-upgrading"></a>

Amazon Neptune 1.0.4.1 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.4.1 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.4.1 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.4.1-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.4.1-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.4.1.R1.1（2021 年 3 月 22 日）
<a name="engine-releases-1.0.4.1.R1.1"></a>

截至 2021 年 3 月 22 日，引擎版本 1.0.4.1.R1.1 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.4.1.R1.1-defects"></a>
+ 禁用了对 Gremlin 条件插入模式的优化，该模式可以添加或附加到现有标签和属性。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.4.1.R1.1-query-versions"></a>

在将数据库集群升级到版本 1.0.4.1.R1.1 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.8`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.4.1.R1.1 的升级路径
<a name="engine-releases-1.0.4.1.R1.1-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.4.1`，您的集群将在下一个维护时段内自动升级到此补丁版本。

## 升级到此版本
<a name="engine-releases-1.0.4.1.R1.1-upgrading"></a>

Amazon Neptune 1.0.4.1.R1.1 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.4.1 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.4.1 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.4.1.R1.1-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.4.1.R1.1-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.4.1.R2（2021 年 2 月 24 日）
<a name="engine-releases-1.0.4.1.R2"></a>

截至 2021 年 2 月 24 日，引擎版本 1.0.4.1.R2 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 此版本的后续补丁版本
<a name="engine-releases-1.0.4.1.R2-patches"></a>
+ [版本：1.0.4.1.R2.1（2021 年 3 月 11 日）](engine-releases-1.0.4.1.R2.1.md) 

## 此引擎版本中的新增功能
<a name="engine-releases-1.0.4.1.R2-features"></a>
+ Neptune 现在支持以 `bzip2` 格式压缩单个文件以进行批量加载。请参阅[加载数据格式](bulk-load-tutorial-format.md)。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.4.1.R2-defects"></a>
+ 修复了[版本：1.0.4.0（2020 年 10 月 12 日）](engine-releases-1.0.4.0.md) 中的一个错误，该错误允许使用 `HTTP` 或更早的 TLS 版本而不是 `HTTPS` 和 TLS 1.2 连接到 Neptune。
**重要**  
**所有与 Neptune 的连接都必须使用 SSL/TLS 可能是一个重大变化。**它会影响您与 Gremlin 控制台、Gremlin 驱动程序、Gremlin Python、.NET、nodeJs、REST API 的连接以及负载均衡器连接。如果您到目前为止一直使用 HTTP 或较早的 TLS 版本来处理任何或全部内容，则必须在安装此补丁之前更新相关的客户端和驱动程序，并将代码更改为仅使用 HTTPS。
+ 修复了一个 Gremlin 错误，即当 `ConcurrentModificationException` 发生时，在某些情况下，`InternalFailureException` 被设置为响应代码。
+ 修复了一个 Gremlin 错误，即在某些条件下，更新边缘或顶点可能会导致临时 `InternalFailureException`。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.4.1.R2-query-versions"></a>

在将数据库集群升级到版本 1.0.4.1.R2 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.8`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.4.1.R2 的升级路径
<a name="engine-releases-1.0.4.1.R2-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.4.1`，您的集群将在下一个维护时段内自动升级到此补丁版本。

## 升级到此版本
<a name="engine-releases-1.0.4.1.R2-upgrading"></a>

Amazon Neptune 1.0.4.1.R2 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.4.1 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.4.1 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.4.1.R2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.4.1.R2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.4.1.R2.1（2021 年 3 月 11 日）
<a name="engine-releases-1.0.4.1.R2.1"></a>

截至 2021 年 3 月 11 日，引擎版本 1.0.4.1.R2.1 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.4.1.R2.1-defects"></a>
+ 禁用了对 Gremlin 条件插入模式的优化，该模式可以添加或附加到现有标签和属性。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.4.1.R2.1-query-versions"></a>

在将数据库集群升级到版本 1.0.4.1.R2.1 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.8`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.4.1.R2.1 的升级路径
<a name="engine-releases-1.0.4.1.R2.1-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.4.1.R2`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.4.1.R2.1-upgrading"></a>

Amazon Neptune 1.0.4.1.R2.1 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.4.1.R2 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.4.1.R2 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.4.1.R2.1-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.4.1.R2.1-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.4.0（2020 年 10 月 12 日）
<a name="engine-releases-1.0.4.0"></a>

截至 2020 年 10 月 12 日，引擎版本 1.0.4.0 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 此版本的后续补丁版本
<a name="engine-releases-1.0.4.0-patches"></a>
+ [版本：1.0.4.0.R2（2021 年 2 月 24 日）](engine-releases-1.0.4.0.R2.md)

## 此引擎版本中的新增功能
<a name="engine-releases-1.0.4.0-features"></a>
+ 为 Gremlin 添加了帧级压缩。

## 此引擎版本中的改进
<a name="engine-releases-1.0.4.0-improvements"></a>
+ Amazon Neptune 现在要求所有区域中与 Neptune 的所有连接都使用带有 TLSv1.2 协议的安全套接字层 (SSL)，同时使用以下强密码套件：
  + `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`
  + `TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA`
  + `TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA`

  与 Neptune 的 REST 和 WebSocket 连接都是如此，这意味着在所有区域中连接到 Neptune 时，必须使用 HTTPS 而不是 HTTP。

  由于任何地方都将不再支持使用 HTTP 或 TLS 1.1 的客户端连接，因此在升级到此引擎版本之前，请确保您的客户端和代码已更新为使用 TLS 1.2 和 HTTPS。

**重要**  
**所有与 Neptune 的连接都必须使用 SSL/TLS 可能是一个重大变化。**它会影响您与 Gremlin 控制台、Gremlin 驱动程序、Gremlin Python、.NET、nodeJs、REST API 的连接以及负载均衡器连接。如果您一直使用 HTTP 进行任何这些操作或全部操作，则现在必须更新相关的客户端和驱动程序，并将代码更改为使用 HTTPS，否则连接将失败。  
此版本中的一个错误允许以前设置数据库集群参数以防止强制执行 HTTPS 连接的客户继续使用 HTTP 连接和/或过时的 TLS 连接。该错误已在补丁版本 [1.0.4.0.R2](engine-releases-1.0.4.0.R2.md) 和 [1.0.4.1.R2](engine-releases-1.0.4.1.R2.md) 中修复，但是当自动安装补丁时，此修复导致意外的连接失败。  
因此，这两个补丁都已恢复，只能手动安装，以便您有机会更新 TLS 1.2 的设置。
+ 已将 TinkerPop 升级到版本 3.4.8。这是向后兼容的升级。有关新增内容，请参阅 [TinkerPop 更新日志](https://github.com/apache/tinkerpop/blob/master/CHANGELOG.asciidoc#tinkerpop-348-release-date-august-3-2020)。
+ 改进了 Gremlin `properties()` 步骤的性能。
+ 在 explain 和 profile 报告中添加了有关 `BindOp` 和 `MultiplexerOp` 的详细信息。
+ 添加了数据预提取功能，以在出现缓存未命中时提高性能。
+ 在批量加载程序的 `parserConfiguration` 参数中添加了一个新的 `allowEmptyStrings` 设置，允许在 CSV 加载中将空字符串视为有效的属性值（请参阅[Neptune 加载程序请求参数](load-api-reference-load.md#load-api-reference-load-parameters)）。
+ 加载程序现在允许在多值 CSV 列中使用转义分号。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.4.0-defects"></a>
+ 修复了与 `both()` 步骤相关的潜在 Gremlin 内存泄漏问题。
+ 修复了由于未正确处理以 '/' 结尾的端点而导致请求指标丢失的错误。
+ 修复了在实验室模式下启用 DFE 引擎时，副本在负载过重时会滞后并重启的错误。
+ 修复了由于内存不足状况而导致批量加载失败时无法报告正确的错误消息的错误。
+ 修复了在 SPARQL 查询响应中将字符编码放在 Content-Encoding 标头中的 SPARQL 错误。现在 `charset` 改为放在 Content-Type 标头中，使 HTTP 客户端能够识别自动使用的字符集。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.4.0-query-versions"></a>

在将数据库集群升级到版本 1.0.4.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.8`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.4.0 的升级路径
<a name="engine-releases-1.0.4.0-upgrade-paths"></a>

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

您不会自动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.4.0-upgrading"></a>

Amazon Neptune 1.0.4.0 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.4.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.4.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.4.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.4.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.4.0.R2（2021 年 2 月 24 日）
<a name="engine-releases-1.0.4.0.R2"></a>

截至 2021 年 2 月 24 日，引擎版本 1.0.4.0.R2 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.4.0.R2-defects"></a>
+ 修复了[版本：1.0.4.0（2020 年 10 月 12 日）](engine-releases-1.0.4.0.md) 中的一个错误，该错误允许使用 `HTTP` 或更早的 TLS 版本而不是 `HTTPS` 和 TLS 1.2 连接到 Neptune。
**重要**  
**所有与 Neptune 的连接都必须使用 SSL/TLS 可能是一个重大变化。**它会影响您与 Gremlin 控制台、Gremlin 驱动程序、Gremlin Python、.NET、nodeJs、REST API 的连接以及负载均衡器连接。如果您到目前为止一直使用 HTTP 或较早的 TLS 版本来处理任何或全部内容，则必须在安装此补丁之前更新相关的客户端和驱动程序，并将代码更改为仅使用 HTTPS。
+ 修复了 CSV 批量加载中涉及以 `#` 结尾的标签的错误。
+ 修复了一个 Gremlin 错误，即当 `ConcurrentModificationException` 发生时，在某些情况下，`InternalFailureException` 被设置为响应代码。
+ 修复了一个 Gremlin 错误，即在某些条件下，更新边缘或顶点可能会导致临时 `InternalFailureException`。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.4.0.R2-query-versions"></a>

在将数据库集群升级到版本 1.0.4.0.R2 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.8`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.4.0.R2 的升级路径
<a name="engine-releases-1.0.4.0.R2-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.4.0`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.4.0.R2-upgrading"></a>

Amazon Neptune 1.0.4.0.R2 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.4.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.4.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.4.0.R2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.4.0.R2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.3.0（2020 年 8 月 3 日）
<a name="engine-releases-1.0.3.0"></a>

截至 2020 年 8 月 3 日，引擎版本 1.0.3.0 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 此版本的后续补丁版本
<a name="engine-releases-1.0.3.0-patches"></a>
+ [版本：1.0.3.0.R2（2020 年 10 月 12 日）](engine-releases-1.0.3.0.R2.md) 
+ [版本：1.0.3.0.R3（2021 年 2 月 19 日）](engine-releases-1.0.3.0.R3.md) 

## 此引擎版本中的新增功能
<a name="engine-releases-1.0.3.0-features"></a>
+ Neptune 推出了一款新的替代查询引擎 (DFE)，可以显著加快查询执行速度。请参阅[Amazon Neptune 替代查询引擎 (DFE)](neptune-dfe-engine.md)。
+ DFE 依赖于预生成的有关您的 Neptune 图表数据的统计数据，这些统计数据通过新的统计数据端点进行管理。请参阅[DFE 统计数据](neptune-dfe-statistics.md)。
+ 现在，您可以通过将新的 `includeQueuedLoads` 参数设置为 FALSE，将排队的加载任务从加载程序获取状态 API 返回的加载 ID 列表中排除。请参阅[Neptune 加载器请求参数 Get-Status](load-api-reference-status-requests.md#load-api-reference-status-parameters)。
+ Neptune 现在支持 SPARQL 查询响应的尾随标头，如果请求在开始返回响应块后失败，则这些标头可能包含错误代码和消息。请参阅[用于多部分 SPARQL 响应的可选 HTTP 尾随标头](access-graph-sparql-http-trailing-headers.md)。
+ Neptune 现在还允许您为 Gremlin 查询启用分块响应编码。与 SPARQL 的情况一样，响应块具有尾随标头，如果查询在开始返回响应块后失败，则这些标头可能包含错误代码和消息。请参阅[使用可选的 HTTP 尾随标头启用由多部分组成的 Gremlin 响应](access-graph-gremlin-rest-trailing-headers.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.0.3.0-improvements"></a>
+ 现在，您可以向 ElasticSearch 提供批量请求的大小，以便在 Gremlin 中进行全文搜索。
+ 改进了 SPARQL GROUP BY 查询的内存使用情况。
+ 添加了新的 Gremlin 查询优化器来修剪某些未绑定的筛选条件。
+ 将使用 IAM 进行身份验证的 WebSocket 连接可以保持打开状态的最长时间从 36 小时延长到 10 天。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.3.0-defects"></a>
+ 修复了一个错误，即如果您在 POST 请求中发送未编码的 URL 参数，Neptune 会返回 HTTP 状态代码 500 和 `InternalServerErrorException`。现在 Neptune 返回 HTTP 状态代码 400 和 `BadRequestException` 以及消息：`Failure to process the POST request parameters`。
+ 修复了未正确报告 WebSocket 连接失败的 Gremlin 错误。
+ 修复了一个涉及 sideEffect 消失的 Gremlin 错误。
+ 修复了未正确支持全文搜索 `batchsize` 参数的 Gremlin 错误。
+ 修复了一个 Gremlin 错误，以单独为 `bothE` 上的每个方向处理 `toV` 和 `fromV`。
+ 修复了 `hasLabel` 步骤中涉及 `Edge pathType` 的一个 Gremlin 错误。
+ 修复了一个 SPARQL 错误，即使用静态绑定的联接重新排序无法正常工作。
+ 修复了一个 SPARQL UPDATE LOAD 错误，即没有正确报告不可用的 Amazon S3 桶。
+ 修复了一个 SPARQL 错误，即未正确报告子查询中与 SERVICE 节点相关的一个问题。
+ 修复了一个 SPARQL 错误，即包含嵌套 FILTER EXISTS 或 FILTER NOT EXISTS 条件的查询没有得到正确评估。
+ 修复了一个 SPARQL 错误，以在通过生成查询调用 SPARQL 服务端点时正确处理生成的重复绑定。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.3.0-query-versions"></a>

在将数据库集群升级到版本 1.0.3.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.3`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.3.0 的升级路径
<a name="engine-releases-1.0.3.0-upgrade-paths"></a>

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

如果您集群的 `AutoMinorVersionUpgrade` 参数已设置为 `True`，则在维护时段内，您的集群将在此引擎版本发布后的两到三周内自动升级到此引擎版本。

## 升级到此版本
<a name="engine-releases-1.0.3.0-upgrading"></a>

Amazon Neptune 1.0.3.0 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.3.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.3.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.3.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.3.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.3.0.R3（2021 年 2 月 19 日）
<a name="engine-releases-1.0.3.0.R3"></a>

截至 2021 年 2 月 19 日，引擎版本 1.0.3.0.R3 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.3.0.R3-defects"></a>
+ 修复了 CSV 批量加载中涉及以 `#` 结尾的标签的错误。
+ 修复了一个 Gremlin 错误，该错误可能会导致使用 `as()` 步骤的特定查询模式丢失结果。
+ 修复了一个 Gremlin 错误，该错误可能在使用嵌套在另一个步骤（如 `union()`）中的 `project()` 步骤时导致错误。
+ 修复了当使用 `toList()` 等终端方法时，实验性 DFE 引擎中字符串遍历执行中的 Gremlin 错误。
+ 修复了一个 Gremlin 错误，该错误在字符串查询中使用 `iterate()` 步骤时无法关闭事务。
+ 修复了一个 Gremlin 错误，该错误可能导致使用 `is(P.gte(0))` 模式的查询在某些条件下引发异常。
+ 修复了一个 Gremlin 错误，即当 `ConcurrentModificationException` 发生时，在某些情况下，`InternalFailureException` 被设置为响应代码。
+ 修复了一个 Gremlin 错误，即在某些条件下，更新边缘或顶点可能会导致临时 `InternalFailureException`。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.3.0.R3-query-versions"></a>

在将数据库集群升级到版本 1.0.3.0.R3 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.8`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.3.0.R3 的升级路径
<a name="engine-releases-1.0.3.0.R3-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.3.0`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.3.0.R3-upgrading"></a>

Amazon Neptune 1.0.3.0.R3 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.3.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.3.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.3.0.R3-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.3.0.R3-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.3.0.R2（2020 年 10 月 12 日）
<a name="engine-releases-1.0.3.0.R2"></a>

截至 2020 年 10 月 12 日，引擎版本 1.0.3.0.R2 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 此引擎版本中的改进
<a name="engine-releases-1.0.3.0.R2-improvements"></a>
+ 改进了 Gremlin `properties()` 步骤的性能。
+ 在 explain 和 profile 报告中添加了有关 `BindOp` 和 `MultiplexerOp` 的详细信息。
+ 对于 SPARQL 查询响应，已将 `charset` 添加到 Content-Type 标头中，使 HTTP 客户端能够识别自动使用的字符集。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.3.0.R2-defects"></a>
+ 修复了未处理 `CancellationException` 的 SPARQL 错误。
+ 修复了包含嵌套选项的查询无法正常工作的 SPARQL 错误。
+ 修复了 LOAD 中 `ConcurrentModificationException` 可能导致查询挂起的 SPARQL 错误。
+ 修复了一个 SPARQL 错误，该错误导致查询响应无法进行 gzip 压缩。
+ 修复了 `groupBy()` 步骤中的一个 Gremlin 错误。
+ 修复了与在 `local()` 步骤中使用 `aggregate()` 步骤相关的 Gremlin 错误。
+ 修复了与使用 `bothE()` 后跟使用聚合值的谓词有关的 Gremlin 错误。
+ 修复了与将 `bothE()` 步骤与 `repeat()` 步骤结合使用相关的 Gremlin 错误。
+ 修复了与 `both()` 步骤相关的潜在 Gremlin 内存泄漏问题。
+ 修复了由于未正确处理以 '/' 结尾的端点而导致请求指标丢失的错误。
+ 修复了在请求队列未满时可能引发 `ThrottlingException` 的错误。
+ 修复了加载由于 `LOAD_DATA_FAILED_DUE_TO_FEED_MODIFIED_OR_DELETE` 等原因加载失败时获取加载状态的错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.3.0.R2-query-versions"></a>

在将数据库集群升级到版本 1.0.3.0.R2 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.3`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.3.0.R2 的升级路径
<a name="engine-releases-1.0.3.0.R2-upgrade-paths"></a>

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

如果您集群的 `AutoMinorVersionUpgrade` 参数已设置为 `True`，则在维护时段内，您的集群将在此引擎版本发布后的两到三周内自动升级到此引擎版本。

## 升级到此版本
<a name="engine-releases-1.0.3.0.R2-upgrading"></a>

Amazon Neptune 1.0.3.0.R2 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.3.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.3.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.3.0.R2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.3.0.R2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.2.2（2020 年 3 月 9 日）
<a name="engine-releases-1.0.2.2"></a>

截至 2020 年 3 月 9 日，引擎版本 1.0.2.2 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 此版本的后续补丁版本
<a name="engine-releases-1.0.2.2-patches"></a>
+ [版本：1.0.2.2.R2（2020 年 4 月 2 日）](engine-releases-1.0.2.2.R2.md) 
+ [版本：1.0.2.2.R3（2020 年 7 月 22 日）](engine-releases-1.0.2.2.R3.md) 
+ [版本：1.0.2.2.R4（2020 年 7 月 23 日）](engine-releases-1.0.2.2.R4.md) 
+ [版本：1.0.2.2.R5（2020 年 10 月 12 日）](engine-releases-1.0.2.2.R5.md) 
+ [版本：1.0.2.2.R6（2021 年 2 月 19 日）](engine-releases-1.0.2.2.R6.md) 

## 此引擎版本中的改进
<a name="engine-releases-1.0.2.2-improvements"></a>
+ 已将有关正在回滚的事务的信息添加到状态 API。请参阅[实例状态](access-graph-status.md)。
+ 已将 Apache TinkerPop 的版本升级到 3.4.3。

  版本 3.4.3 向后兼容 Neptune 所支持的早期版本 (3.4.1)。它确实引入了一个小的行为更改：当您尝试关闭一个不存在的会话时，Gremlin 不再返回错误（请参阅[防止在关闭不存在的会话时显示错误](https://issues.apache.org/jira/browse/TINKERPOP-2237)）。
+ 消除了执行 Gremlin 全文搜索步骤时的性能瓶颈。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.2.2-defects"></a>
+ 修复了处理查询中的空图表模式时出现的 SPARQL 错误。
+ 修复了处理 URL 编码的查询中未编码分号时出现的 SPARQL 错误。
+ 修复了处理 `Union` 步骤中的重复顶点时出现的 Gremlin 错误。
+ 修复了一个 Gremlin 错误，该错误导致一些其 `.simplePath()` 包含 `.cyclicPath()` 或 `.repeat()` 的查询返回错误结果。
+ 修复了一个 Gremlin 错误，该错误导致 `.project()` 在其子遍历未返回解决方案的情况下返回错误结果。
+ 修复了一个 Gremlin 错误，其中读写冲突产生的错误引发了 `InternalFailureException` 而非 `ConcurrentModificationException`。
+ 修复了一个导致 `.group().by(...).by(values("property"))` 失败的 Gremlin 错误。
+ 修复了全文搜索步骤的配置文件输出中的 Gremlin 错误。
+ 解决了 Gremlin 会话中的资源泄漏问题。
+ 修复了一个错误，该错误导致状态 API 在某些情况下无法报告正确的可排序版本。
+ 修复了一个批量加载程序错误，该错误导致指向 Amazon S3 之外的某个位置的 URL 可被用作批量加载请求中的源。
+ 修复了详细加载状态中的一个批量加载程序错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.2.2-query-versions"></a>

在将数据库集群升级到版本 1.0.2.2 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.3`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.2.2 的升级路径
<a name="engine-releases-1.0.2.2-upgrade-paths"></a>

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

如果您集群的 `AutoMinorVersionUpgrade` 参数已设置为 `True`，则在维护时段内，您的集群将在此引擎版本发布后的两到三周内自动升级到此引擎版本。

## 升级到此版本
<a name="engine-releases-1.0.2.2-upgrading"></a>

Amazon Neptune 1.0.2.2 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.2 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.2 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.2.2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.2.2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.2.2.R6（2021 年 2 月 19 日）
<a name="engine-releases-1.0.2.2.R6"></a>

截至 2021 年 2 月 19 日，引擎版本 1.0.2.2.R6 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.2.2.R6-defects"></a>
+ 修复了一个 Gremlin 错误，即当 `ConcurrentModificationException` 发生时，在某些情况下，`InternalFailureException` 被设置为响应代码。
+ 修复了一个 Gremlin 错误，即在某些条件下，更新边缘或顶点可能会导致临时 `InternalFailureException`。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.2.2.R6-query-versions"></a>

在将数据库集群升级到版本 1.0.2.2.R6 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.8`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.2.2.R6 的升级路径
<a name="engine-releases-1.0.2.2.R6-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.2.2`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.2.2.R6-upgrading"></a>

Amazon Neptune 1.0.2.2.R6 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.2 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.2 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.2.2.R6-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.2.2.R6-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.2.2.R5（2020 年 10 月 12 日）
<a name="engine-releases-1.0.2.2.R5"></a>

截至 2020 年 10 月 12 日，引擎版本 1.0.2.2.R5 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 此引擎版本中的改进
<a name="engine-releases-1.0.2.2.R5-improvements"></a>
+ 改进了 Gremlin `properties()` 步骤的性能。
+ 在 explain 和 profile 报告中添加了有关 `BindOp` 和 `MultiplexerOp` 的详细信息。
+ 对于 SPARQL 查询响应，已将 `charset` 添加到 Content-Type 标头中，使 HTTP 客户端能够识别自动使用的字符集。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.2.2.R5-defects"></a>
+ 修复了未处理 `CancellationException` 的 SPARQL 错误。
+ 修复了包含嵌套选项的查询无法正常工作的 SPARQL 错误。
+ 修复了 LOAD 中 `ConcurrentModificationException` 可能导致查询挂起的 SPARQL 错误。
+ 修复了一个 SPARQL 错误，该错误导致查询响应无法进行 gzip 压缩。
+ 修复了 `groupBy()` 步骤中的一个 Gremlin 错误。
+ 修复了与在 `local()` 步骤中使用 `aggregate()` 步骤相关的 Gremlin 错误。
+ 修复了与使用 `bothE()` 后跟使用聚合值的谓词有关的 Gremlin 错误。
+ 修复了与将 `bothE()` 步骤与 `repeat()` 步骤结合使用相关的 Gremlin 错误。
+ 修复了与 `both()` 步骤相关的潜在 Gremlin 内存泄漏问题。
+ 修复了由于未正确处理以 '/' 结尾的端点而导致请求指标丢失的错误。
+ 修复了在请求队列未满时可能引发 `ThrottlingException` 的错误。
+ 修复了加载由于 `LOAD_DATA_FAILED_DUE_TO_FEED_MODIFIED_OR_DELETE` 等原因加载失败时获取加载状态的错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.2.2.R5-query-versions"></a>

在将数据库集群升级到版本 1.0.2.2.R5 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.3`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.2.2.R5 的升级路径
<a name="engine-releases-1.0.2.2.R5-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.2.2`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.2.2.R5-upgrading"></a>

Amazon Neptune 1.0.2.2.R5 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.2 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.2 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.2.2.R5-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.2.2.R5-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.2.2.R4（2020 年 7 月 23 日）
<a name="engine-releases-1.0.2.2.R4"></a>

截至 2020 年 7 月 23 日，引擎版本 1.0.2.2.R4 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 此引擎版本中的改进
<a name="engine-releases-1.0.2.2.R4-improvements"></a>
+ 通过更频繁地将未使用的内存释放回操作系统来提高内存使用率。
+ 还改进了 SPARQL GROUP BY 查询的内存使用率。
+ 将使用 IAM 进行身份验证的 WebSocket 连接可以保持打开状态的最长时间从 36 小时延长到 10 天。
+ 添加了 `BufferCacheHitRatio` CloudWatch 指标，该指标可用于诊断查询延迟和调整实例类型。请参阅[Neptune 指标](cw-metrics.md#cw-metrics-available)。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.2.2.R4-defects"></a>
+ 修复了关闭空闲或过期的 IAM WebSocket 连接时出现的错误。现在，Neptune 会在关闭连接之前发送一个关闭帧。
+ 修复了在评估包含嵌套 FILTER EXISTS 和/或 FILTER NOT EXISTS 条件的查询时出现的 SPARQL 错误。
+ 修复了 SPARQL 查询终止错误，该错误会在某些极端条件下导致服务器上的线程被阻止。
+ 修复了 `hasLabel` 步骤中涉及 Edge pathType 的一个 Gremlin 错误。
+ 修复了一个 Gremlin 错误，以单独为 `bothE` 上的每个方向处理 `toV` 和 `fromV`。
+ 修复了一个涉及 sideEffect 消失的 Gremlin 错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.2.2.R4-query-versions"></a>

在将数据库集群升级到版本 1.0.2.2.R4 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.3`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.2.2.R4 的升级路径
<a name="engine-releases-1.0.2.2.R4-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.2.2`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.2.2.R4-upgrading"></a>

Amazon Neptune 1.0.2.2.R4 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.2 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.2 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.2.2.R4-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.2.2.R4-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.2.2.R3（2020 年 7 月 22 日）
<a name="engine-releases-1.0.2.2.R3"></a>

引擎版本 1.0.2.2.R3 已合并到[引擎版本 1.0.2.2.R4](engine-releases-1.0.2.2.R4.md) 中。

# Amazon Neptune 引擎版本 1.0.2.2.R2（2020 年 4 月 2 日）
<a name="engine-releases-1.0.2.2.R2"></a>

截至 2020 年 4 月 2 日，引擎版本 1.0.2.2.R2 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 此引擎版本中的改进
<a name="engine-releases-1.0.2.2.R2-improvements"></a>
+ 现在，您最多可以对 64 个批量加载作业进行排队，而不必等待一个作业完成后才启动下一个作业。还可以使用 `dependencies` 命令的 `load` 参数，使得某个排队加载请求的执行取决于成功地完成一个或多个先前排队的加载作业。请参阅[Neptune 加载程序命令](load-api-reference-load.md)。
+ 现在可以对全文搜索输出进行排序（请参阅[全文搜索参数](full-text-search-parameters.md)）。
+ 现在有一个用于调用 Neptune 流的数据库集群参数，并且此特征已移出实验室模式。请参阅[启用 Neptune Streams](streams-using-enabling.md)。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.2.2.R2-defects"></a>
+ 修复了服务器启动延迟了实例创建的随机故障。
+ 修复了一个优化程序问题：也即，查询中的 `BIND` 语句使优化程序在联合顺序规划中以非选择性模式启动。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.2.2.R2-query-versions"></a>

在将数据库集群升级到版本 1.0.2.2.R2 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.3`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.2.2.R2 的升级路径
<a name="engine-releases-1.0.2.2.R2-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.2.2`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.2.2.R2-upgrading"></a>

Amazon Neptune 1.0.2.2.R2 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.2 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.2 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.2.2.R2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.2.2.R2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.2.1（2019 年 11 月 22 日）
<a name="engine-releases-1.0.2.1"></a>

## 此版本的后续补丁版本
<a name="engine-releases-1.0.2.1-patches"></a>
+ [版本：1.0.2.1.R6（2020 年 4 月 22 日）](engine-releases-1.0.2.1.R6.md) 
+ [版本：1.0.2.1.R5（2020 年 4 月 22 日）](engine-releases-1.0.2.1.R5.md) *此修补程序版本未部署。*
+ [版本：1.0.2.1.R4（2019 年 12 月 20 日）](engine-releases-1.0.2.1.R4.md) 
+ [版本：1.0.2.1.R3（2019 年 12 月 12 日）](engine-releases-1.0.2.1.R3.md) 
+ [版本：1.0.2.1.R2（2019 年 11 月 25 日）](engine-releases-1.0.2.1.R2.md) 

## 此引擎版本中的新增功能
<a name="engine-releases-1.0.2.1-features"></a>
+ 通过与 Amazon OpenSearch Service 的集成，增加了全文搜索功能。请参阅 [Neptune 全文搜索](full-text-search.md)。
+ 添加了使用实验室模式为大量谓词创建第四个索引（OSGP 索引）的选项。请参阅[OSGP 索引](features-lab-mode.md#features-lab-mode-features-osgp-index)。
+ 向 SPARQL Explain 增加了*详细信息* 模式。有关详细信息，请参阅 [使用 SPARQL `explain`](sparql-explain-using.md) 和 [详细信息模式输出](sparql-explain-examples.md#sparql-explain-example-details)。
+ 将实验模式信息添加到引擎状态报告中。有关详细信息，请参阅[实例状态](access-graph-status.md)。
+ 数据库集群快照现在可以跨 AWS 区域复制。请参阅[复制快照](backup-restore-copy-snapshot.md)。

## 此引擎版本中的改进
<a name="engine-releases-1.0.2.1-improvements"></a>
+ 提高了处理大量谓词时的性能。
+ 增强了查询优化。虽然这对客户来说应该完全透明，但我们建议您在升级之前测试您的应用程序，以确保它们按预期运行。
+ 对错误报告进行了小的增强。
+ 添加了对 Gremlin `.project()` 和 `.identity()` 步骤的优化。
+ 添加了对非终端 Gremlin `.union()` 案例的优化。
+ 添加了对 Gremlin `.path().by()` 遍历的原生支持。
+ 添加了对 Gremlin `.coalesce()` 的原生支持。
+ 进一步优化了批量写入。
+ 我们现在要求 HTTPS 连接至少使用 TLS 版本 1.2 或更高版本，以防止使用过时/不安全的密码。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.2.1-defects"></a>
+ 修复了一个 Gremlin `addE()` 内部遍历处理错误。
+ 修复了由于 AST 注释从子遍历泄漏到父级导致的 Gemlin 错误。
+ 修复了在 `.otherV()` 之后调用 `select()` 时 Gremlin 中出现的错误。
+ 修复了一个 Gremlin 错误，该错误导致了某些 `.hasLabel()` 步骤在 `bothE()` 步骤执行后失败。
+ 对 Gremlin .sum() 和 .project() 进行了小的修复。
+ 修复了在处理缺少右括号的 SPARQL 查询时的错误。
+ 修复了 SPARQL Explain 中的一些小错误。
+ 修复了处理并发获取加载状态请求的错误。
+ 减少了执行一些带有 `.project()` 步骤的 Grenolin 遍历所用的内存。
+ 修复了 SPARQL 中特殊值的数值比较。请参阅[标准合规性](feature-overview-standards-compliance.md)。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.2.1-query-versions"></a>

在将数据库集群升级到版本 1.0.2.1 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.1`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.2.1 的升级路径
<a name="engine-releases-1.0.2.1-upgrade-paths"></a>

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

您不会自动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.2.1-upgrading"></a>

Amazon Neptune 1.0.2.1 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.1 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.1 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.2.1-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.2.1-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.2.1.R6（2020 年 4 月 22 日）
<a name="engine-releases-1.0.2.1.R6"></a>

截至 2020 年 4 月 22 日，引擎版本 1.0.2.1.R6 正在普遍部署中。请注意，新版本在每个区域的发布需要几天的时间。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.2.1.R6-defects"></a>
+ 修复了一个错误，其中 `ConcurrentModificationConflictException` 和 `TransactionException` 未转换为 `NeptuneGremlinException`，导致向客户返回了 `InternalFailureException`。
+ 修复了 Neptune 在服务器完全准备就绪之前报告其状态为正常的错误。
+ 修复了在有两个 `value->id` 映射同时插入时字典和用户事务提交顺序混乱的错误。
+ 修复了加载状态序列化中的一个错误。
+ 修正了一个 Gremlin 会话错误。
+ 修复了在服务器无法启动时 Neptune 未能引发异常的错误。
+ 修复了 Neptune 无法在关闭通道之前发送 WebSocket 关闭帧的错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.2.1.R6-query-versions"></a>

在将数据库集群升级到版本 1.0.2.1.R6 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.1`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.2.1.R6 的升级路径
<a name="engine-releases-1.0.2.1.R6-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.2.1`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.2.1.R6-upgrading"></a>

Amazon Neptune 1.0.2.1.R6 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.1 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.1 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.2.1.R6-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.2.1.R6-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.2.1.R5（2020 年 4 月 22 日）
<a name="engine-releases-1.0.2.1.R5"></a>

从未部署过引擎版本 1.0.2.1.R5。

# Amazon Neptune 引擎版本 1.0.2.1.R4（2019 年 12 月 20 日）
<a name="engine-releases-1.0.2.1.R4"></a>

## 此引擎版本中的改进
<a name="engine-releases-1.0.2.1.R4-improvements"></a>
+ Neptune 现在总是尝试首先在执行管道中放置任何全文搜索调用。这可以减少对 OpenSearch 的调用量，从而显著提高性能。请参阅[Full-text-search 查询执行](full-text-search-query-execution.md)。
+ 如果您尝试访问不存在的属性、顶点或边缘，Neptune 现在会引发 `IllegalArgumentException`。以前，Neptune 在这种情况下会引发 `UnsupportedOperationException`。

  例如，如果您尝试添加引用不存在顶点的边缘，则现在将引发 `IllegalArgumentException`。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.2.1.R4-defects"></a>
+ 修复了一个 Grenomlin 错误，即 `union` 在 `project-by` 内遍历不会返回结果或者返回错误的结果。
+ 修复了导致嵌套的 `.project().by()` 步骤返回错误结果的 Gemlin 错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.2.1.R4-query-versions"></a>

在将数据库集群升级到版本 1.0.2.1.R4 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.1`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.2.1.R4 的升级路径
<a name="engine-releases-1.0.2.1.R4-upgrade-paths"></a>

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

但是，**不支持自动更新到此版本**。

## 升级到此版本
<a name="engine-releases-1.0.2.1.R4-upgrading"></a>

Amazon Neptune 1.0.2.1.R4 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.1 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.1 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.2.1.R4-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.2.1.R4-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.2.1.R3（2019 年 12 月 12 日）
<a name="engine-releases-1.0.2.1.R3"></a>

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.2.1.R3-defects"></a>
+ 修复了一个错误，该错误的表现为：即使使用 `OSGP` 参数中的 [实验室模式](features-lab-mode.md) 值正确启用了`ObjectIndex`中的功能，也禁用 `neptune_lab_mode` 索引。
+ 修复了一个错误，该错误会影响在 `.fold()` 步骤内带有 `.project().by()` 的 Gremlin 查询。例如，它导致以下查询返回不完整的结果：

  ```
  g.V().project("a").by(valueMap().fold())
  ```
+ 修复了 RDF 数据批量加载中的性能瓶颈。
+ 修复了在启用流并在主服务器之前重启副本时导致副本崩溃的错误。
+ 修复了实例上轮换的 SSL 证书在没有重新启动实例的情况下不会被选取的错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.2.1.R3-query-versions"></a>

在将数据库集群升级到版本 1.0.2.1.R3 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.1`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.2.1.R3 的升级路径
<a name="engine-releases-1.0.2.1.R3-upgrade-paths"></a>

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

但是，**不支持自动更新到此版本**。

## 升级到此版本
<a name="engine-releases-1.0.2.1.R3-upgrading"></a>

Amazon Neptune 1.0.2.1.R3 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.1 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.1 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.2.1.R3-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.2.1.R3-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.2.1.R2（2019 年 11 月 25 日）
<a name="engine-releases-1.0.2.1.R2"></a>

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.2.1.R2-defects"></a>
+ 修复了影响所有具有非循环 by-traversals 和非 `project().by()` by-traversals 的 `path()` 查询的错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.2.1.R2-query-versions"></a>

在将数据库集群升级到版本 1.0.2.1.R2 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.1`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.2.1.R2 的升级路径
<a name="engine-releases-1.0.2.1.R2-upgrade-paths"></a>

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

但是，**不支持自动更新到此版本**。

## 升级到此版本
<a name="engine-releases-1.0.2.1.R2-upgrading"></a>

Amazon Neptune 1.0.2.1.R2 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.1 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.1 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.2.1.R2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.2.1.R2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.2.0（2019 年 11 月 8 日）
<a name="engine-releases-1.0.2.0"></a>

## 重要：此引擎版本现在已弃用
<a name="engine-releases-1.0.2.0-deprecation"></a>

从 2020 年 5 月 19 日开始，将不会创建使用该引擎版本的新实例。

此引擎版本现已被[版本 1.0.2.1](engine-releases-1.0.2.1.md) 取代，后者包含此版本中的所有错误修复以及其它特征，例如全文搜索集成、OSGP 索引支持和跨 AWS 区域的数据库快照集群副本。

自 2020 年 6 月 1 日起，Neptune 将在下一个维护时段内自动将运行此引擎版本的任何集群升级到[版本 1.0.2.1 的最新补丁](engine-releases-1.0.2.1.R6.md)。您可以在此之前手动升级，如[此处](engine-releases-1.0.2.1.md)所述。

如果您在升级过程中遇到任何问题，请通过 [AWS Support](https://aws.amazon.com/support) 或 [AWS 开发人员论坛](https://forums.aws.amazon.com/forum.jspa?forumID=253)与我们联系。

## 此版本的后续补丁版本
<a name="engine-releases-1.0.2.0-patches"></a>
+ [版本：1.0.2.0.R3（2020 年 5 月 5 日）](engine-releases-1.0.2.0.R3.md) 
+ [版本：1.0.2.0.R2（2019 年 11 月 21 日）](engine-releases-1.0.2.0.R2.md) 

## 此引擎版本中的新增功能
<a name="engine-releases-1.0.2.0-features"></a>

除了维护更新之外，此版本还添加了新功能用于一次支持多个引擎版本（请参阅 [维护 Amazon Neptune 数据库集群](cluster-maintenance.md)）。

因此，引擎版本的编号发生了变化（请参阅 [引擎版本 1.3.0.0 之前的版本编号](cluster-maintenance.md#older-engine-numbers)）。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.2.0-query-versions"></a>

在将数据库集群升级到版本 1.0.2.0 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.1`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.2.0 的升级路径
<a name="engine-releases-1.0.2.0-upgrade-paths"></a>

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

您不会自动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.2.0-upgrading"></a>

Amazon Neptune 1.0.2.0 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.2.0-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.2.0-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.2.0.R3（2020 年 5 月 5 日）
<a name="engine-releases-1.0.2.0.R3"></a>

## 重要：此引擎版本现在已弃用
<a name="engine-releases-1.0.2.0.R3-deprecation"></a>

从 2020 年 5 月 19 日开始，将不会创建使用该引擎版本的新实例。

此引擎版本现已被[版本 1.0.2.1](engine-releases-1.0.2.1.md) 取代，后者包含此版本中的所有错误修复以及其它特征，例如全文搜索集成、OSGP 索引支持和跨 AWS 区域的数据库快照集群副本。

自 2020 年 6 月 1 日起，Neptune 将在下一个维护时段内自动将运行此引擎版本的任何集群升级到[版本 1.0.2.1 的最新补丁](engine-releases-1.0.2.1.R6.md)。您可以在此之前手动升级，如[此处](engine-releases-1.0.2.1.md)所述。

如果您在升级过程中遇到任何问题，请通过 [AWS Support](https://aws.amazon.com/support) 或 [AWS 开发人员论坛](https://forums.aws.amazon.com/forum.jspa?forumID=253)与我们联系。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.2.0.R3-defects"></a>
+ 修复了将 `ConcurrentModificationConflictException` 和 `TransactionException` 报告为一般 `InternalFailureException` 的错误。
+ 修复了运行状况检查中导致服务器在启动期间频繁重新启动的错误。
+ 修复了由于特定条件下提交顺序混乱导致数据在副本上不可见的错误。
+ 修复了加载状态序列化中的一个错误，即加载由于缺少 Amazon S3 访问权限而失败。
+ 解决了 Gremlin 会话中的资源泄漏问题。
+ 修复了运行状况检查中的一个错误，即隐藏管理 IAM 身份验证的组件启动时的不正常状态。
+ 修复了 Neptune 无法在关闭通道之前发送 WebSocket 关闭帧的错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.2.0.R3-query-versions"></a>

在将数据库集群升级到版本 1.0.2.0.R3 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.1`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.2.0.R3 的升级路径
<a name="engine-releases-1.0.2.0.R3-upgrade-paths"></a>

如果您正在运行引擎版本 `1.0.2.0`，您的集群将在下一个维护时段内自动升级到此补丁版本。

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

## 升级到此版本
<a name="engine-releases-1.0.2.0.R3-upgrading"></a>

Amazon Neptune 1.0.2.0.R3 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.2.0.R3-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.2.0.R3-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.2.0.R2（2019 年 11 月 21 日）
<a name="engine-releases-1.0.2.0.R2"></a>

## 重要：此引擎版本现在已弃用
<a name="engine-releases-1.0.2.0.R2-deprecation"></a>

从 2020 年 5 月 19 日开始，将不会创建使用该引擎版本的新实例。

此引擎版本现已被[版本 1.0.2.1](engine-releases-1.0.2.1.md) 取代，后者包含此版本中的所有错误修复以及其它特征，例如全文搜索集成、OSGP 索引支持和跨 AWS 区域的数据库快照集群副本。

自 2020 年 6 月 1 日起，Neptune 将在下一个维护时段内自动将运行此引擎版本的任何集群升级到[版本 1.0.2.1 的最新补丁](engine-releases-1.0.2.1.R6.md)。您可以在此之前手动升级，如[此处](engine-releases-1.0.2.1.md)所述。

如果您在升级过程中遇到任何问题，请通过 [AWS Support](https://aws.amazon.com/support) 或 [AWS 开发人员论坛](https://forums.aws.amazon.com/forum.jspa?forumID=253)与我们联系。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.2.0.R2-defects"></a>
+ 改进了服务器上脏页面的缓存策略，使得服务器在进入内存不足状态时，`FreeableMemory` 可以更快地进行恢复。
+ 修正了服务器上在处理多个并发加载状态和/或启动加载请求时，可能会导致竞争条件和崩溃的错误。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.2.0.R2-query-versions"></a>

在将数据库集群升级到版本 1.0.2.0.R2 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.1`
+ *SPARQL 版本：*`1.1`

## 引擎版本 1.0.2.0.R2 的升级路径
<a name="engine-releases-1.0.2.0.R2-upgrade-paths"></a>

您可以将任何以前的 Neptune 引擎版本手动升级到此版本。

但是，**不支持自动更新到此版本**。

## 升级到此版本
<a name="engine-releases-1.0.2.0.R2-upgrading"></a>

Amazon Neptune 1.0.2.0.R2 现已正式发布。

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

对于 Linux、OS X 或 Unix：

```
1. aws neptune modify-db-cluster \
2.     --db-cluster-identifier (your-neptune-cluster) \
3.     --engine-version 1.0.2.0 \
4.     --apply-immediately
```

对于 Windows：

```
1. aws neptune modify-db-cluster ^
2.     --db-cluster-identifier (your-neptune-cluster) ^
3.     --engine-version 1.0.2.0 ^
4.     --apply-immediately
```

更新将同时应用于数据库集群中的所有实例。更新操作要求在所有这些实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以重新使用数据库集群。

### 升级前始终先测试
<a name="engine-1.0.2.0.R2-test-before-upgrading"></a>

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

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

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

### 请在升级之前始终创建手动快照
<a name="engine-1.0.2.0.R2-snapshot-before-upgrading"></a>

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

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

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

**注意**  
如果您在[待处理操作正在进行](manage-console-maintaining)时尝试升级，则可能会遇到如下错误：  

```
   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 数据库集群](cluster-maintenance.md)。如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

# Amazon Neptune 引擎版本 1.0.1.2（2020 年 6 月 10 日）
<a name="engine-releases-1.0.1.2"></a>

## 重要：此引擎版本现在已弃用
<a name="engine-releases-1.0.1.2-deprecation"></a>

从 2021 年 4 月 27 日开始，将不会创建使用该引擎版本的新实例。

## 此引擎版本中的改进
<a name="engine-releases-1.0.1.2-improvements"></a>
+ 如果您尝试访问不存在的属性、顶点或边缘，Neptune 现在会引发 `IllegalArgumentException`。以前，Neptune 在这种情况下会引发 `UnsupportedOperationException`。

  例如，如果您尝试添加引用不存在顶点的边缘，则现在将引发 `IllegalArgumentException`。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.1.2-defects"></a>
+ 修复了在有两个 `value->id` 映射同时插入时字典和用户事务提交顺序混乱的错误。
+ 修复了加载状态序列化中的一个错误。
+ 修复了服务器启动延迟了实例创建的随机故障。
+ 修复了游标泄漏。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.1.2-query-versions"></a>

在将数据库集群升级到版本 1.0.1.2 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.4.1`
+ *SPARQL 版本：*`1.1`

# Amazon Neptune 引擎版本 1.0.1.1（2020 年 6 月 26 日）
<a name="engine-releases-1.0.1.1"></a>

## 重要：此引擎版本现在已弃用
<a name="engine-releases-1.0.1.1-deprecation"></a>

从 2021 年 4 月 27 日开始，将不会创建使用该引擎版本的新实例。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-1.0.1.1-defects"></a>
+ 修复了一个导致在并发插入时提交乱序的错误。
+ 修复了加载状态序列化中的一个错误。
+ 修复了服务器启动延迟了实例创建的随机故障。
+ 修复了内存泄漏问题。

## 此版本支持的查询语言版本
<a name="engine-releases-1.0.1.1-query-versions"></a>

在将数据库集群升级到版本 1.0.1.1 之前，请确保您的项目与以下查询语言版本兼容：
+ *Gremlin 版本：*`3.3.2`
+ *SPARQL 版本：*`1.1`

# Amazon Neptune 引擎版本 1.0.1.0（2019 年 7 月 2 日）
<a name="engine-releases-1.0.1.0"></a>

## 重要：此引擎版本现在已弃用
<a name="engine-releases-1.0.1.0-deprecation"></a>

从 2021 年 4 月 27 日开始，将不会创建使用该引擎版本的新实例。

# Amazon Neptune 引擎更新 2019 年 10 月 31 日
<a name="engine-releases-1.0.1.0.200502.0"></a>

**版本：**1.0.1.0.200502.0

## 重要：此引擎版本现在已弃用
<a name="engine-releases-1.0.1.0.200502.0-deprecation"></a>

从 2021 年 4 月 27 日开始，将不会创建使用此引擎版本的任何新实例。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-200502-defects"></a>
+ 修复了当客户端使用 `tree()`（换句话说，使用 GLV 字节码）连接到 Neptune 时，`traversal().withRemote(...)` 步骤的响应的序列化中的 Gremlin 错误。

  此版本解决了以下问题：使用 `traversal().withRemote(...)` 连接到 Neptune 的客户端收到对包含 `tree()` 步骤的 Gremlin 查询的无效响应。
+ 修复了 `DELETE WHERE LIMIT` 查询中的 SPARQL 错误，其中，由于竞争条件，查询终止过程将挂起，从而导致查询超时。

# Amazon Neptune 引擎更新 2019 年 10 月 15 日
<a name="engine-releases-1.0.1.0.200463.0"></a>

**版本：**1.0.1.0.200463.0

## 重要：此引擎版本现在已弃用
<a name="engine-releases-1.0.1.0.200463.0-deprecation"></a>

从 2021 年 4 月 27 日开始，将不会创建使用此引擎版本的任何新实例。

## 此引擎版本中的新增功能
<a name="engine-releases-200463-features"></a>
+ 添加了 Gremlin Explain/Profile 功能（请参阅 [使用 Gremlin `explain` 分析 Neptune 查询执行](gremlin-explain.md)）。
+ 添加了 [对基于 Gremlin 脚本的会话的支持](access-graph-gremlin-sessions.md)，以实现在单个事务中执行多个 Gremlin 遍历。
+ 在 Neptune 中添加了对 SPARQL 联合查询扩展的支持（请参阅 [SPARQL 1.1 联合查询](https://www.w3.org/TR/sparql11-federated-query/)和 [Neptune 中使用 `SERVICE` 扩展的 SPARQL 联合查询](sparql-service.md)）。
+ 添加了让您能够通过 HTTP URL 参数或通过 SPARQL `queryId` 查询提示将自己的 `queryId` 注入到 Gremlin 或 SPARQL 查询中的功能（请参阅 [将自定义 ID 注入到 Neptune Gremlin 或 SPARQL 查询中](features-query-id.md)）。
+ 在 Neptune 中添加了 [实验室模式](features-lab-mode.md) 特征，让您能够试用即将发布但尚未准备好在生产环境中使用的特征。
+ 添加了即将发布的 [Neptune Streams](streams.md) 功能，该功能可将对数据库所做的全部更改可靠地记录到流（保留一周）中。该功能仅在实验室模式下可用。
+ 更新了并发事务的形式语义（请参阅 [Neptune 中的事务语义](transactions.md)）。该功能为并发提供了行业标准保证。

  默认情况下，将启用这些事务语义。在某些情况下，该功能可能会更改当前的加载行为和降低加载性能。可以使用数据库集群 `neptune_lab_mode` 参数（通过在参数值中包含 `ReadWriteConflictDetection=disabled`）恢复为之前的语义。

## 此引擎版本中的改进
<a name="engine-releases-200463-improvements"></a>
+ 通过报告引擎使用的 TinkerPop 版本和 SPARQL 版本，改进了 [实例状态](access-graph-status.md) API。
+ 改进了 Gremlin 子图运算符的性能。
+ 改进了 Gremlin 响应序列化的性能。
+ 改进了 Gremlin Union 步骤的性能。
+ 缩短了简单 SPARQL 查询的延迟。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-200463-defects"></a>
+ 修复了将超时错误地作为内部故障返回的 Gremlin 错误。
+ 修复了对部分变量集进行 ORDER BY 导致内部服务器错误的 SPARQL 错误。

# Amazon Neptune 引擎更新 2019 年 9 月 19 日
<a name="engine-releases-1.0.1.0.200457.0"></a>

## 重要：此引擎版本现在已弃用
<a name="engine-releases-1.0.1.0.200457.0-deprecation"></a>

从 2021 年 4 月 27 日开始，将不会创建使用此引擎版本的任何新实例。

**版本：**1.0.1.0.200457.0

Amazon Neptune 1.0.1.0.200457.0 已正式发布。在该区域的引擎更新完成后，将在 Neptune 1.0.1.0.200457.0 中创建所有新的 Neptune 数据库集群，包括从快照恢复的集群。

可以使用控制台上的数据库集群操作或者使用开发工具包来立即将现有集群升级到此版本。您可以使用以下 CLI 命令升级数据库集群：

```
aws neptune apply-pending-maintenance-action \
    --apply-action system-update \
    --opt-in-type immediate \
    --resource-identifier arn:aws:rds:<region>:<account number>:<resourcetype>:<name>
```

更新将同时应用于数据库集群中的所有实例。更新需要在数据库集群中的所有实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以继续使用数据库集群。您可以在 [Neptune 控制台](https://console.aws.amazon.com/neptune/home)上查看或更改维护时段设置。

如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-200457-defects"></a>
+ 通过删除联接谓词处理的性能改进，修复了之前引擎版本 (1.0.1.0.200369.0) 引入的 Gremlin 正确性问题。
+ 修复了导致使用 `DISTINCT` 的查询和将单个模式封装到 `OPTIONAL` 中会生成 `InternalServerError` 的 SPARQL 错误。

# Amazon Neptune 引擎更新 2019 年 8 月 13 日
<a name="engine-releases-1.0.1.0.200369.0"></a>

## 重要：此引擎版本现在已弃用
<a name="engine-releases-1.0.1.0.200369.0-deprecation"></a>

从 2021 年 4 月 27 日开始，将不会创建使用该引擎版本的新实例。

## 此引擎版本中的新增功能
<a name="engine-releases-200369-features"></a>
+ 为 [Neptune 加载程序命令](load-api-reference-load.md) 的 `parallelism` 参数添加了 `OVERSUBSCRIBE` 选项，这会导致 Neptune 批量加载程序使用所有可用的线程和资源。

## 此引擎版本中的改进
<a name="engine-releases-200369-improvements"></a>
+ 改进了包含简单逻辑 OR 表达式的 SPARQL 筛选条件的性能。
+ 改进了处理连接性谓词的 Gremlin 性能。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-200369-defects"></a>
+ 修复了阻止从 `xsd:date` 中减去 `xsd:duration` 的 SPARQL 错误。
+ 修复了导致在存在 `UNION` 时静态内联出现不完整结果的 SPARQL 错误。
+ 修复了查询取消中的 SPARQL 错误。
+ 修复了在类型提升期间导致溢出的 Gremlin 错误。
+ 修复了 `addE().from().to()` 步骤中处理顶点元素的 Gremlin 错误。
+ 修复了涉及在单基数插入中处理 NaN 双精度和浮点数的 Gremlin 错误（2019 年 7 月 26 日在[引擎版本 1.0.1.0.200366.0](engine-releases-1.0.1.0.200366.0.md) 中发布）。
+ 修复了生成查询计划的错误（涉及基于属性的搜索）。

# Amazon Neptune 引擎更新 2019 年 7 月 26 日
<a name="engine-releases-1.0.1.0.200366.0"></a>

**版本：**1.0.1.0.200366.0

## 重要：此引擎版本现在已弃用
<a name="engine-releases-1.0.1.0.200366.0-deprecation"></a>

从 2021 年 4 月 27 日开始，将不会创建使用此引擎版本的任何新实例。

## 此引擎版本中的新增功能
<a name="engine-releases-200366-features"></a>
+ 已升级到 TinkerPop 3.4.1（请参阅 [TinkerPop 升级信息](http://tinkerpop.apache.org/docs/3.4.1/upgrade/)和 [TinkerPop 3.4.1 更改日志](https://github.com/apache/tinkerpop/blob/3.4.1/CHANGELOG.asciidoc#release-3-4-1)）。

  对于 Neptune 客户而言，这些更改提供了新的功能和改进，例如：
  + `GraphBinary` 现在可以以序列化格式提供。
  + 在 TinkerPop Java 驱动程序中导致内存泄漏的保持活动错误已得到修复，因此不再需要解决方法。

  但是，在少数情况下，它们可能会影响 Neptune 中现有的 Gremlin 代码。例如：
  + `valueMap()` 现在会返回 `Map<Object,Object>` 而不是 `Map<String,Object>`。
  + `within()` 步骤的不一致行为得到修复，因此它将与其他步骤保持一致。以前，类型必须匹配，比较才能正常运行。现在，可以准确地比较不同类型的数量。例如，`33` 现在比较为等于 `33L`，之前不是这样。
  + `ReducingBarrierStep` 中的错误得到修复，因此如果没有可用于输出的元素，它现在不返回任何值。
  + `select()` 范围的顺序已更改（顺序现在为 `maps`、`side-effects`、`paths`）。这会更改罕见查询的结果，这些查询将 `side-effects` 和 `select` 与和 `side-effects` 具有相同键名称的 `select` 进行组合。
  + `bulkSet()` 现在是 GraphSON 协议的一部分。以 `toBulkSet()` 结尾的查询将不适用于较旧的客户端。
  + 从3.4 客户端删除了 `Submit()` 步骤的一个参数化。

  TinkerPop 3.4 中引入的许多其它更改不会影响当前的 Neptune 行为。例如，Gremlin `io()` 作为 `Traversal` 的一个步骤添加，现在已在 `Graph` 中弃用，但从未在 Neptune 中启用。
+ 为 [Gremlin 批量加载程序](bulk-load-tutorial-format-gremlin.md#bulk-load-tutorial-format-gremlin-propheaders)增加了对单基数顶点属性的支持，用于加载属性图数据。
+ 添加了一个选项，用于覆盖批量加载程序中单基数属性的现有值。
+ 添加了[检索 Gremlin 查询状态](gremlin-api-status.md)和[取消 Gremlin 查询](gremlin-api-status-cancel.md)的功能。
+ 为 [SPARQL 查询超时添加了查询提示](sparql-query-hints-queryTimeout.md)。
+ 添加了功能，用于在状态 API 中查看实例角色（请参阅[实例状态](access-graph-status.md)）。
+ 添加了对数据库克隆的支持（请参阅 [Neptune 中的数据库克隆](manage-console-cloning.md)）。

## 此引擎版本中的改进
<a name="engine-releases-200366-improvements"></a>
+ 改进了 SPARQL 查询说明，用于显示来自 FROM 子句的图形变量。
+ 改进了筛选条件、等于筛选条件、VALUES 子句和范围计数中的 SPARQL 性能。
+ 改进了 Gremlin 步骤排序的性能。
+ 改进了 Gremlin `.repeat.dedup` 遍历的性能。
+ 改进了 Gremlin `valueMap()` 和 `path().by()` 遍历的性能。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-200366-defects"></a>
+ 修复了 SPARQL 属性路径的多个问题，包括对命名图形的操作。
+ 修复了导致内存问题的 SPARQL CONSTRUCT 查询问题。
+ 修复了 RDF Turtle 解析器和本地名称的问题。
+ 修复了向用户显示的更正错误消息的问题。
+ 修复了 Gremlin `repeat()...drop()` 遍历的问题。
+ 修复了 Gremlin `drop()` 步骤的问题。
+ 修复了 Gremlin 标签筛选的问题。
+ 修复了 Gremlin 查询超时的问题。

# Amazon Neptune 引擎更新 2019 年 7 月 2 日
<a name="engine-releases-1.0.1.0.200348.0"></a>

## 重要：此引擎版本现在已弃用
<a name="engine-releases-1.0.1.0.200348.0-deprecation"></a>

从 2021 年 4 月 27 日开始，将不会创建使用此引擎版本的任何新实例。

## 在此引擎版本中修复的缺陷
<a name="engine-releases-200348-defects"></a>
+ 修复了一个错误，该错误会导致绑定了属性名称和值的特定模式不进行优化。

# 较早的 Neptune 引擎版本
<a name="engine-releases-earlier"></a>

**Topics**
+ [Amazon Neptune 引擎更新 2019 年 6 月 12 日](engine-releases-1.0.1.0.200310.0.md)
+ [Amazon Neptune 引擎更新 2019 年 5 月 1 日](engine-releases-1.0.1.0.200296.0.md)
+ [Amazon Neptune 引擎更新 2019 年 1 月 21 日](engine-releases-1.0.1.0.200267.0.md)
+ [Amazon Neptune 引擎更新 2018 年 11 月 19 日](engine-releases-1.0.1.0.200264.0.md)
+ [Amazon Neptune 引擎更新 2018 年 11 月 8 日](engine-releases-1.0.1.0.200258.0.md)
+ [Amazon Neptune 引擎更新 2018 年 10 月 29 日](engine-releases-1.0.1.0.200255.0.md)
+ [Amazon Neptune 引擎更新 2018 年 9 月 6 日](engine-releases-1.0.1.0.200237.0.md)
+ [Amazon Neptune 引擎更新 2018 年 7 月 24 日](engine-releases-1.0.1.0.200236.0.md)
+ [Amazon Neptune 引擎更新 2018 年 6 月 22 日](engine-releases-1.0.1.0.200233.0.md)

# Amazon Neptune 引擎更新 2019 年 6 月 12 日
<a name="engine-releases-1.0.1.0.200310.0"></a>

**版本：**1.0.1.0.200310.0

Amazon Neptune 1.0.1.0.200310.0 已正式发布。在该区域的引擎更新完成后，将在 Neptune 1.0.1.0.200310.0 中创建所有新的 Neptune 数据库集群，包括从快照恢复的集群。

可以使用控制台上的数据库集群操作或者使用开发工具包来立即将现有集群升级到此版本。您可以使用以下 CLI 命令立即将数据库集群升级到此版本：

```
aws neptune apply-pending-maintenance-action \
    --apply-action system-update \
    --opt-in-type immediate \
    --resource-identifier arn:aws:rds:<region>:<account number>:<resourcetype>:<name>
```

在系统维护时段期间，Neptune 数据库集群将自动升级到引擎版本 1.0.1.0.200310.0。应用更新的时间取决于数据库集群的区域和维护时段设置以及更新的类型。

**注意**  
实例维护时段不适用于引擎更新。

更新将同时应用于数据库集群中的所有实例。更新需要在数据库集群中的所有实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以继续使用数据库集群。您可以在 [Neptune 控制台](https://console.aws.amazon.com/neptune/home)上查看或更改维护时段设置。

如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

## 改进
<a name="engine-releases.200310.Improvements"></a>
+ 修复了并发插入和删除边缘会导致多个边缘具有相同 ID 的错误。
+ 其他少量修复和改进。

# Amazon Neptune 引擎更新 2019 年 5 月 1 日
<a name="engine-releases-1.0.1.0.200296.0"></a>

**版本：**1.0.1.0.200296.0

Amazon Neptune 1.0.1.0.200296.0 已正式发布。在该区域的引擎更新完成后，将在 Neptune 1.0.1.0.200296.0 中创建所有新的 Neptune 数据库集群，包括从快照恢复的集群。

可以使用控制台上的数据库集群操作或者使用开发工具包来立即将现有集群升级到此版本。您可以使用以下 CLI 命令立即将数据库集群升级到此版本：

```
aws neptune apply-pending-maintenance-action \
    --apply-action system-update \
    --opt-in-type immediate \
    --resource-identifier arn:aws:rds:<region>:<account number>:<resourcetype>:<name>
```

在系统维护时段期间，Neptune 数据库集群将自动升级到引擎版本 1.0.1.0.200296.0。应用更新的时间取决于数据库集群的区域和维护时段设置以及更新的类型。

**注意**  
实例维护时段不适用于引擎更新。

更新将同时应用于数据库集群中的所有实例。更新需要在数据库集群中的所有实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以继续使用数据库集群。您可以在 [Neptune 控制台](https://console.aws.amazon.com/neptune/home)上查看或更改维护时段设置。

如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

## 改进
<a name="engine-releases.200296.Improvements"></a>
+ 向 Neptune SPARQL 查询增加了新的 `explain` 特征，可帮助您可视化查询计划并采取优化计划的步骤（如有必要）。有关信息，请参阅[SPARQL `explain`SPARQL `SERVICE` 扩展](sparql-explain.md)。
+ 以多种方式改进了 SPARQL 性能和报告。
+ 以多种方式改进了 Gremlin 性能和行为。
+ 改进了长时间运行的 `drop( )` 查询的超时。
+ 改进了 `otherV( )` 查询的性能。
+ 向您在查询数据库集群或实例的 Neptune 运行状况时返回的信息增加了两个字段，即引擎版本号和集群或实例启动时间。请参阅[实例状态](access-graph-status.md)。
+ Neptune 加载程序 `Get-Status` API 现在返回记录加载任务开始时间的 `startTime` 字段。
+ 加载程序命令现在采用可选的 `parallelism` 参数，让您可以限制加载程序使用的线程数。

# Amazon Neptune 引擎更新 2019 年 1 月 21 日
<a name="engine-releases-1.0.1.0.200267.0"></a>

**版本：**1.0.1.0.200267.0

Amazon Neptune 1.0.1.0.200267.0 已正式发布。在该区域的引擎更新完成后，将在 Neptune 1.0.1.0.200267.0 中创建所有新的 Neptune 数据库集群，包括从快照恢复的集群。

可以使用控制台上的数据库集群操作或者使用开发工具包来立即将现有集群升级到此版本。您可以使用以下 CLI 命令立即将数据库集群升级到此版本：

```
aws neptune apply-pending-maintenance-action \
    --apply-action system-update \
    --opt-in-type immediate \
    --resource-identifier arn:aws:rds:<region>:<account number>:<resourcetype>:<name>
```

在系统维护时段期间，Neptune 数据库集群将自动升级到引擎版本 1.0.1.0.200267.0。应用更新的时间取决于数据库集群的区域和维护时段设置以及更新的类型。

**注意**  
实例维护时段不适用于引擎更新。

更新将同时应用于数据库集群中的所有实例。更新需要在数据库集群中的所有实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以继续使用数据库集群。您可以在 [Neptune 控制台](https://console.aws.amazon.com/neptune/home)上查看或更改维护时段设置。

如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

## 改进
<a name="engine-releases.6971.Improvements"></a>
+ Neptune 等待任何冲突得到解决的时间较长（在指定的查询超时内）。这减少了需要由客户端处理的并行修改异常的数量（请参阅[查询错误](errors-engine-codes.md#errors-query)）。
+ 修复了实施 Gremlin 基数有时导致引擎重新启动的问题。
+ 改进了 Gremlin 对于`emit.times` 重复查询的性能。
+ 修复了一个 Gremlin 问题，其中，`repeat.until` 允许应已被筛选出来的 `.emit` 解决方案。
+ 改进了 Gremlin 中的错误处理。

# Amazon Neptune 引擎更新 2018 年 11 月 19 日
<a name="engine-releases-1.0.1.0.200264.0"></a>

**版本：**1.0.1.0.200264.0

Amazon Neptune 1.0.1.0.200264.0 已正式发布。在该区域的引擎更新完成后，将在 Neptune 1.0.1.0.200264.0 中创建所有新的 Neptune 数据库集群，包括从快照恢复的集群。

可以使用控制台上的数据库集群操作或者使用开发工具包来立即将现有集群升级到此版本。您可以使用以下 CLI 命令立即将数据库集群升级到此版本：

```
aws neptune apply-pending-maintenance-action \
    --apply-action system-update \
    --opt-in-type immediate \
    --resource-identifier arn:aws:rds:<region>:<account number>:<resourcetype>:<name>
```

在系统维护时段期间，Neptune 数据库集群将自动升级到引擎版本 1.0.1.0.200264.0。应用更新的时间取决于数据库集群的区域和维护时段设置以及更新的类型。

**注意**  
实例维护时段不适用于引擎更新。

更新将同时应用于数据库集群中的所有实例。更新需要在数据库集群中的所有实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以继续使用数据库集群。您可以在 [Neptune 控制台](https://console.aws.amazon.com/neptune/home)上查看或更改维护时段设置。

如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

## 改进
<a name="engine-releases.1173.Improvements"></a>
+ 增加了对 的支持。[Gremlin 查询提示](gremlin-query-hints.md)
+ 改进了 IAM 身份验证的错误消息。有关更多信息，请参阅 [IAM 身份验证错误](errors-engine-codes.md#errors-iam-auth)。
+ 改进了具有大量谓词的 SPARQL 查询性能。
+ 改进了 SPARQL 属性路径性能。
+ 改进了在与 `fold().coalesce(unfold(), …)`、`addV()` 和 `addE()` 步骤一起使用时条件更改的 Gremlin 性能，如 `property()` 模式。
+ 改进了 `by()` 和 `sack()` 调制的 Gremlin 性能。
+ 改进了 `group()` 和 `groupCount()` 步骤的 Gremlin 性能。
+ 改进了 `store()`、`sideEffect()` 和 `cap().unfold()`步骤的 Gremlin 性能。
+ 改进了对 Gremlin 单一基数属性约束的支持。
  + 改进了对标记为单一基数属性的边缘属性和顶点属性的单一基数实施。
  + 引入了在 Neptune 负载任务期间为现有边缘属性指定其他属性值时出现的错误。

# Amazon Neptune 引擎更新 2018 年 11 月 8 日
<a name="engine-releases-1.0.1.0.200258.0"></a>

**版本：**1.0.1.0.200258.0

Amazon Neptune 1.0.1.0.200258.0 已正式发布。在该区域的引擎更新完成后，将在 Neptune 1.0.1.0.200258.0 中创建所有新的 Neptune 数据库集群，包括从快照恢复的集群。

可以使用控制台上的数据库集群操作或者使用开发工具包来立即将现有集群升级到此版本。您可以使用以下 CLI 命令立即将数据库集群升级到此版本：

```
aws neptune apply-pending-maintenance-action \
    --apply-action system-update \
    --opt-in-type immediate \
    --resource-identifier arn:aws:rds:<region>:<account number>:<resourcetype>:<name>
```

在系统维护时段期间，Neptune 数据库集群将自动升级到引擎版本 1.0.1.0.200258.0。应用更新的时间取决于数据库集群的区域和维护时段设置以及更新的类型。

**注意**  
实例维护时段不适用于引擎更新。

更新将同时应用于数据库集群中的所有实例。更新需要在数据库集群中的所有实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以继续使用数据库集群。您可以在 [Neptune 控制台](https://console.aws.amazon.com/neptune/home)上查看或更改维护时段设置。

如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

## 改进
<a name="engine-releases.1173.Improvements"></a>
+  增加了对 的支持。[SPARQL 查询提示](sparql-query-hints.md)
+  改进了 SPARQL FILTER (NOT) Exists 查询的性能。
+  改进了 SPARQL DESCRIBE 查询的性能。
+  改进了 Gremlin 中重复直至模式的性能。
+  改进了在 Gremlin 中添加边缘的性能。
+  修复了导致 SPARQL Update DELETE 查询在某些情况下失败的问题。
+  修复了使用 Gremlin WebSocket 服务器处理超时的问题。

# Amazon Neptune 引擎更新 2018 年 10 月 29 日
<a name="engine-releases-1.0.1.0.200255.0"></a>

**版本：**1.0.1.0.200255.0

Amazon Neptune 1.0.1.0.200255.0 已正式发布。在该区域的引擎更新完成后，将在 Neptune 1.0.1.0.200255.0 中创建所有新的 Neptune 数据库集群，包括从快照恢复的集群。

可以使用控制台上的数据库集群操作或者使用开发工具包来立即将现有集群升级到此版本。您可以使用以下 CLI 命令立即将数据库集群升级到此版本：

```
aws neptune apply-pending-maintenance-action \
    --apply-action system-update \
    --opt-in-type immediate \
    --resource-identifier arn:aws:rds:<region>:<account number>:<resourcetype>:<name>
```

在系统维护时段期间，Neptune 数据库集群将自动升级到引擎版本 1.0.1.0.200255.0。应用更新的时间取决于数据库集群的区域和维护时段设置以及更新的类型。

**注意**  
实例维护时段不适用于引擎更新。

更新将同时应用于数据库集群中的所有实例。更新需要在数据库集群中的所有实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以继续使用数据库集群。您可以在 [Neptune 控制台](https://console.aws.amazon.com/neptune/home)上查看或更改维护时段设置。

如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

## 改进
<a name="engine-releases.1173.Improvements"></a>
+ 已将 IAM 身份验证信息添加到审计日志中。
+ 添加了对使用 IAM 角色和实例配置文件的临时凭证的支持。
+ 添加了在撤消权限或删除 IAM 用户或角色时对为 IAM 身份验证的 WebSocket 连接终止。
+ 将每实例的最大 WebSocket 连接数限制为 60000。
+ 改进了更小实例类型的批量负载性能。
+ 改进了在 Gremlin 中包含 `and()`、`or()`、`not()`、`drop()` 运算符的查询的性能。
+ NTriples 解析程序当前拒绝无效的 URI（如包含空格的 URI）。

# Amazon Neptune 引擎更新 2018 年 9 月 6 日
<a name="engine-releases-1.0.1.0.200237.0"></a>

**版本：**1.0.1.0.200237.0

Amazon Neptune 1.0.1.0.200237.0 已正式发布。在该区域的引擎更新完成后，将在 Neptune 1.0.1.0.200237.0 中创建所有新的 Neptune 数据库集群，包括从快照恢复的集群。

可以使用控制台上的数据库集群操作或者使用开发工具包来立即将现有集群升级到此版本。您可以使用以下 CLI 命令立即将数据库集群升级到此版本：

```
aws neptune apply-pending-maintenance-action \
    --apply-action system-update \
    --opt-in-type immediate \
    --resource-identifier arn:aws:rds:<region>:<account number>:<resourcetype>:<name>
```

在系统维护时段期间，Neptune 数据库集群将自动升级到引擎版本 1.0.1.0.200237.0。应用更新的时间取决于数据库集群的区域和维护时段设置以及更新的类型。

**注意**  
实例维护时段不适用于引擎更新。

更新将同时应用于数据库集群中的所有实例。更新需要在数据库集群中的所有实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以继续使用数据库集群。您可以在 [Neptune 控制台](https://console.aws.amazon.com/neptune/home)上查看或更改维护时段设置。

如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

## 改进
<a name="engine-releases.1173.Improvements"></a>
+ 修复了某些 `SPARQL COUNT(DISTINCT)` 查询失败的问题。
+ 修复了带有 `COUNT` 子句的 `SUM`、`MIN`、`DISTINCT` 查询内存不足的问题。
+ 修复了 `BLOB` 类型数据将导致 Neptune 加载程序作业失败的问题。
+ 修复了重复插入会导致事务故障的问题。
+ 修复了 `DROP ALL` 查询无法取消的问题。
+ 修复了 Gremlin 客户端可能会间歇性挂起的问题。
+ 将负载超过 150M 的所有错误代码更新为了 `HTTP 400`。
+ 改进了单三元组模式 `COUNT()` 查询的性能和准确性。
+ 改进了带有 `SPARQL UNION` 子句的 `BIND` 查询的性能。

# Amazon Neptune 引擎更新 2018 年 7 月 24 日
<a name="engine-releases-1.0.1.0.200236.0"></a>

**版本：**1.0.1.0.200236.0

Amazon Neptune 1.0.1.0.200236.0 已正式发布。在该区域的引擎更新完成后，将在 Neptune 1.0.1.0.200236.0 中创建所有新的 Neptune 数据库集群，包括从快照恢复的集群。

可以使用控制台上的数据库集群操作或者使用开发工具包来立即将现有集群升级到此版本。您可以使用以下 CLI 命令立即将数据库集群升级到此版本：

```
aws neptune apply-pending-maintenance-action \
    --apply-action system-update \
    --opt-in-type immediate \
    --resource-identifier arn:aws:rds:<region>:<account number>:<resourcetype>:<name>
```

在系统维护时段期间，Neptune 数据库集群将自动升级到引擎版本 1.0.1.0.200236.0。应用更新的时间取决于数据库集群的区域和维护时段设置以及更新的类型。

**注意**  
实例维护时段不适用于引擎更新。

更新将同时应用于数据库集群中的所有实例。更新需要在数据库集群中的所有实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以继续使用数据库集群。您可以在 [Neptune 控制台](https://console.aws.amazon.com/neptune/home)上查看或更改维护时段设置。

如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

## 改进
<a name="engine-releases.1173.Improvements"></a>
+  更新了 `xsd:string` 数据类型的 SPARQL 序列化。xsd:string 不再包含在 JSON 序列化中，JSON 序列化现在与其他输出格式一致。
+  修复了 `xsd:double`/`xsd:float` 无穷的处理。`-INF`、`NaN` 和 `INF` 值现在可正确识别，并在所有 SPARQL 数据加载器格式、SPARQL 1.1 UPDATE 和 SPARQL 1.1 Query 中进行处理。
+  修复了具有空字符串值的 Gremlin 查询意外失败的问题。
+  修复了空图表上的 Gremlin `aggregate()` 和 `cap()` 意外失败的问题。
+  修复了在基数规范无效时为 Gremlin 返回了不正确的错误响应的问题，例如 `.property(set,id,'10')` 和 `.property(single,id,'10')`。
+  修复了作为 InternalFailureException 返回了无效的 Gremlin 语法的问题。
+  将错误消息中 `TimeLimitExceeededException` 的拼写修复为 `TimeLimitExceededException`。
+  更改了 SPARQL 和 GREMLIN 终端节点在未提供任何脚本时以一致方式进行响应。
+  阐明了过多并发请求的错误消息。

# Amazon Neptune 引擎更新 2018 年 6 月 22 日
<a name="engine-releases-1.0.1.0.200233.0"></a>

**版本：**1.0.1.0.200233.0

Amazon Neptune 1.0.1.0.200233.0 已正式发布。在该区域的引擎更新完成后，将在 Neptune 1.0.1.0.200233.0 中创建所有新的 Neptune 数据库集群，包括从快照恢复的集群。

可以使用控制台上的数据库集群操作或者使用开发工具包来立即将现有集群升级到此版本。您可以使用以下 CLI 命令立即将数据库集群升级到此版本：

```
aws neptune apply-pending-maintenance-action \
    --apply-action system-update \
    --opt-in-type immediate \
    --resource-identifier arn:aws:rds:<region>:<account number>:<resourcetype>:<name>
```

在系统维护时段期间，Neptune 数据库集群将自动升级到引擎版本 1.0.1.0.200233.0。应用更新的时间取决于数据库集群的区域和维护时段设置以及更新的类型。

**注意**  
实例维护时段不适用于引擎更新。

更新将同时应用于数据库集群中的所有实例。更新需要在数据库集群中的所有实例上重启数据库，因此，会出现从 20-30 秒到几分钟的停机，之后您可以继续使用数据库集群。您可以在 [Neptune 控制台](https://console.aws.amazon.com/neptune/home)上查看或更改维护时段设置。

如果您有任何问题或疑问，可通过社区论坛和 [AWS Premium Support](https://aws.amazon.com/support) 联系 AWS Support 团队。

## 改进
<a name="engine-releases.1173.Improvements"></a>
+ 修复了快速连续发布大量批量加载请求导致出错的问题。
+ 修复了与数据相关的查询可能会失败并出现 InternalServerError 的问题。以下示例显示受影响的查询类型。

  ```
  g.V("my-id123").as("start").outE("knows").has("edgePropertyKey1", P.gt(0)).as("myedge").inV()
                 .as("end").select("start", "end", "myedge").by("vertexPropertyKey1")
                 .by("vertexPropertyKey1").by("edgePropertyKey1")
  ```
+ 修复了在长时间运行的查询超时之后，Gremlin Java 客户端无法使用相同的 WebSocket 连接来连接到服务器的问题。
+ 修复了无法正确处理以下情况的问题：使用 HTTP 的 Gremlin 查询中包含的转义序列；或者使用 WebSocket 连接的基于字符串的查询。