

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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 之前的版本進行任何升級。如果在嘗試啟動更新時有太多的還原日誌 (200,000 或更多)，則在等待清除還原日誌完成時，升級嘗試可能會逾時。  
您可以升級叢集的寫入器執行個體 (此為進行清除的位置)，以加快清除率。在嘗試升級之前執行此操作可能會在您開始之前減少還原日誌的數目。將寫入器的大小增加至 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 政策中支援比之前所提供更精細的存取控制。這是一項重大變更，其中以棄用的 `connect` 動作為基礎的現有 IAM 政策必須進行調整，才能使用更精細的資料平面動作。請參閱 [IAM 政策的類型](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>
+ 已改善 ByteCode 查詢的 Grimlin 序列化效能。
+ Neptune 現在會使用 DFE 引擎處理文字述詞，以提升效能。
+ Neptune 現在會使用 DFE 引擎處理 Grimlin `limit()` 步驟，包括非終端和子周遊限制。
+ 已變更 Gemlin `union()` 步驟的 DFE 處理方式，以使用其他新功能，這表示參考節點會如預期般顯示在查詢設定檔中。
+ 已透過序列化 DFE 內某些昂貴的聯結操作來改善這些操作的效能，最多可提升 5 倍。
+ 已對 Gremlin DFE 引擎的 `OrderGlobalStep order(global)` 新增了 `by()` 調變支援。
+ 已在 DFE 的解釋詳細資訊中新增了注入靜態值的顯示。
+ 已改善剔除重複模式時的效能。
+ 已在 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>
+ 已修正沒有指定 content-type 的 HTTP 請求將會自動失敗的錯誤。
+ 已修正查詢最佳化工具中阻止在查詢內使用服務呼叫的 SPARQL 錯誤。
+ 已修正 Turtle RDF 剖析器中的 SPARQL 錯誤，其中 Unicode 資料的特定組合導致了失敗。
+ 已修正 SPARQL 錯誤，其中 `GRAPH` 和 `SELECT` 子句的特定組合產生了不正確的查詢結果。
+ 已修正 Grimlin 錯誤，此錯誤對於在聯集步驟中使用任何篩選步驟的查詢造成了正確性問題，如下所示：

  ```
  g.V("1").union(hasLabel("person"), out())
  ```
+ 已修正 Gremlin 錯誤，其中若沒有 `count()`，`both().simplePath()` 的 `count()` 將會導致傳回的結果實際數量增加一倍。
+ 已修正 OpenCypher 錯誤，其中向啟用 IAM 身分驗證的叢集發出 Bolt 請求時，伺服器產生了錯誤的簽章不符例外狀況。
+ 已修正 OpenCypher 錯誤，其中使用 HTTP 保持連線的查詢，若在失敗的請求後提交，則系統可能會錯誤地關閉它。
+ 已修正在提交傳回常數值的查詢時，可能會導致擲回內部錯誤的 OpenCypher 錯誤。
+ 已修正解釋詳細資訊中的錯誤，以便 DFE 子查詢 `Time(ms)` 現在可以正確地將 DFE 子查詢內運算子的 CPU 時間加總。請考慮下列解釋輸出摘錄做為範例：

  ```
  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-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.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 支援團隊可在社群論壇和 [AWS Premium Support](https://aws.amazon.com/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 之前的版本進行任何升級。如果在嘗試啟動更新時有太多的還原日誌 (200,000 或更多)，則在等待清除還原日誌完成時，升級嘗試可能會逾時。  
您可以升級叢集的寫入器執行個體 (此為進行清除的位置)，以加快清除率。在嘗試升級之前執行此操作可能會在您開始之前減少還原日誌的數目。將寫入器的大小增加至 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>
+ 已將 `enableInterContainerTrafficEncryption` 參數新增至所有 [Neptune ML API](machine-learning-api-reference.md)，您可以使用此參數，在訓練或超參數調校工作中啟用和停用容器間流量加密。
+ 對於無伺服器資料庫叢集，已將最小容量設定變更為 1.0 NCU，並將最低有效的上限設定變更為 2.5 NCU。請參閱 [Neptune Serverless 資料庫叢集中的容量擴展](neptune-serverless-capacity-scaling.md) *(((在發行之前，此變更也需要反映在無伺服器頁面中)))。*

## 此引擎版本中修正的缺陷
<a name="engine-releases-1.2.0.0.R4-defects"></a>
+ 已修正 OpenCypher 錯誤，其中更新和傳回查詢並未適當地處理 `orderBy`、`limit` 或 `skip`。
+ 已修正 OpenCypher 錯誤，此錯誤允許一個請求中包含的參數被另一個同時請求中包含的參數覆寫。
+ 已修正 Bolt 交易處理中的 openCypher 錯誤。
+ 已透過返回 Tinkerpop 修正了 DEF 查詢的 Grimlin 正確性問題，這些查詢具有 `limit` 做為非聯集步驟的子周遊。例如，對於像這樣的查詢：

  ```
  g.withSideEffect('Neptune#useDFE', true)
   .V()
   .as("a")
   .select("a")
   .by(out()
   .limit(1))
  ```
+ 已修正 Gremlin 錯誤，其中查詢將會失敗，因為它包含了太多的 TinkerPop 步驟，接著並不會將其清除。
+ 已修正 Grimlin 錯誤，其中 `order()` 將不會正確排序字串輸出，因為這些字串輸出中有一些包含空格字元時。
+ 已修正 Gremlin 錯誤，其中當以字串和包含的 `GroupCountStep` 形式提交查詢時，可能發生交易洩漏。
+ 已修正 Gemlin 錯誤，其中在對於不是原生處理的步驟，檢查 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-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.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 支援團隊可在社群論壇和 [AWS Premium Support](https://aws.amazon.com/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 之前的版本進行任何升級。如果在嘗試啟動更新時有太多的還原日誌 (200,000 或更多)，則在等待清除還原日誌完成時，升級嘗試可能會逾時。  
您可以升級叢集的寫入器執行個體 (此為進行清除的位置)，以加快清除率。在嘗試升級之前執行此操作可能會在您開始之前減少還原日誌的數目。將寫入器的大小增加至 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 查詢效能。
+ 已改善涉及常值映射清單上 `UNWIND` 的 OpenCypher 查詢效能。
+ 已改善對 `id` 具有 `IN` 篩選條件的 OpenCypher 查詢效能。例如：

  ```
  MATCH (n) WHERE id(n) IN ['1', '2', '3'] RETURN n
  ```
+ 各種 Gemlin 運算子 (包括 `repeat`、`coalesce`、`store` 和 `aggregate`) 的效能改善和正確性修正。

## 此引擎版本中修正的缺陷
<a name="engine-releases-1.2.0.0.R3-defects"></a>
+ 已修正 OpenCypher 錯誤，其中查詢傳回了字串 `"null"`，而不是 Bolt 和 SPARQL-JSON 中的 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-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.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 支援團隊可在社群論壇和 [AWS Premium Support](https://aws.amazon.com/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 之前的版本進行任何升級。如果在嘗試啟動更新時有太多的還原日誌 (200,000 或更多)，則在等待清除還原日誌完成時，升級嘗試可能會逾時。  
您可以升級叢集的寫入器執行個體 (此為進行清除的位置)，以加快清除率。在嘗試升級之前執行此操作可能會在您開始之前減少還原日誌的數目。將寫入器的大小增加至 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` 的 Gemlin 查詢現在會使用較大的區塊大小以取得更好的效能。這不適用於查詢計劃的內部 (非根) 節點上的 `order-by`。
+ 已改善 Gremlin 更新查詢的效能。在新增邊緣或屬性時，必須鎖住頂點和邊緣以防刪除。此變更會消除交易內的重複鎖定，進而改善效能。
+ 已透過將 `dedup` 向下推送至原生執行層，改善了在 `repeat()` 子查詢內部使用 `dedup()` 的 Gemlin 查詢效能。
+ 已新增 Gremlin `Neptune#cardinalityEstimates` 查詢提示。設定為 `false` 時，這會停用基數估計。
+ 已對 IAM 身分驗證錯誤新增了使用者易於了解的錯誤訊息。這些訊息現在會顯示您的 IAM 使用者或角色 ARN、資源 ARN，以及請求的未經授權動作清單。未經授權的動作清單可協助您查看所使用的 IAM 政策中可能遺漏或明確拒絕的內容。

## 此引擎版本中修正的缺陷
<a name="engine-releases-1.2.0.0.R2-defects"></a>
+ 已修正涉及 `WherePredicateStep` 轉換的 Gemlin 正確性錯誤，其中 Neptune 的查詢引擎對使用 `where(P.neq('x'))` 和其變化的查詢產生不正確的結果。
+ 已修正 Gremlin 錯誤，其中在升級至 TinkerPop 3.5 之後使用 `PartitionStrategy`，不正確地造成了阻止執行周遊的錯誤，並顯示訊息「PartitionStrategy 不會使用匿名周遊」。
+ 已修正與最終聯結的 `joinTime` 和 `Project.ASK` 子群組內的統計資料相關的各種 Gemlin 錯誤。
+ 已修正 `MERGE` 子句中在某些情況下導致了建立重複節點和邊緣的 OpenCypher 錯誤。
+ 已修正交易錯誤，其中即使回復了對應的並行字典插入，工作階段仍可以插入圖形資料並遞交。
+ 已修正大量載入器錯誤，此錯誤在大量插入負載下造成了效能迴歸。
+ 已修正處理查詢時發生的 SPARQL 錯誤，這些查詢在 `OPTIONAL` 子句內包含 `(NOT) EXISTS`，在某些情況下會遺失查詢結果。
+ 已修正驅動程式在下列情況下似乎當機的錯誤：評估開始之前，由於逾時而請求遭到取消。如果在請求佇列中的項目發生逾時時，伺服器上的所有查詢處理執行緒都已使用，則可能會進入此狀態。因為來自請求佇列的逾時並未立即傳送訊息，所以在用戶端看來回應仍處於待定狀態。

## 此版本支援的查詢語言版本
<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-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.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 支援團隊可在社群論壇和 [AWS Premium Support](https://aws.amazon.com/support) 取得。