Amazon Neptune 引擎更新 1.2.1.0.R3 (2023 年 6 日 13 日) - Amazon Neptune

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

Amazon Neptune 引擎更新 1.2.1.0.R3 (2023 年 6 日 13 日)

截至 2023 年 6 月 13 日,引擎版本 1.2.1.0.R3 已普遍部署。請注意,新版本需要數天才能在每個區域推出。

重要

在某些情況下,此引擎版本中引進的變更可能會導致您觀察到大量載入效能降低。因此,已暫時暫停升級至此版本,直到問題得到解決為止。

注意

如果從 1.2.0.0 以前的引擎版本升級:

  • 引擎 1.2.0.0 版引入了新格式,適用於自訂參數群組和自訂叢集參數群組。因此,如果您要從 1.2.0.0 之前的引擎版本升級至引擎 1.2.0.0 版或更新版本,則必須使用參數群組系列 neptune1.2 重新建立所有現有的自訂參數群組和自訂叢集參數群組。舊版已使用參數群組系列 neptune1,而這些參數群組不會使用 1.2.0.0 版及更新版本。如需更多資訊,請參閱Amazon Neptune 參數群組

  • 引擎 1.2.0.0 版也為復原日誌引入了新格式。因此,必須清除舊版引擎建立的任何還原日誌,且 UndoLogsListSize 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 通訊協定

這個引擎版本的新功能

這個引擎版本的改善項目

  • 已改善 Gremlin 的 fail() 步驟,以區分它從泛型 InternalFailureException 產生的例外狀況,並確保提供給它的任何使用者提供的訊息都回傳給呼叫者。

  • 已改善 storeaggregatecaplimithasLabel 的 Gemlin 查詢引擎最佳化。

  • 已新增對 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 靜態偵錯 Explain 工具的支援。

  • 已新增對 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 和彙總函數中的值進行備援實體化。

  • 已改善 SPARQL 查詢的效能,這些查詢在 VALUES 子句中包含大量靜態輸入,例如:

    SELECT ?n WHERE { VALUES (?name) { ("John") ("Jim") ... many values ... } ?n a ?n_type . ?n ?name . }
  • 已改善 SPARQL CBD 查詢效能。

此引擎版本中修正的缺陷

  • 已修正 Gemlin 錯誤,其中在查詢規劃階段期間,具有深層巢狀的長時間查詢造成了高 CPU 使用率和查詢逾時。

  • 已修正 Gremlin 錯誤,其中在使用 mergeVmergeE 時可能會擲回無效的 NullPointerException

此版本支援的查詢語言版本

將資料庫叢集升級至版本 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 的升級途徑

升級至此版本

Amazon Neptune 1.2.1.0.R3 現已正式推出。

如果資料庫叢集執行的引擎版本具有升級至此版本的途徑,則有資格立即升級。您可以使用主控台上的資料庫叢集操作或使用 SDK 來升級任何有資格的叢集。以下 CLI 命令將立即升級有資格的叢集:

對於 Linux、OS X 或 Unix:

aws neptune modify-db-cluster \ --db-cluster-identifier (your-neptune-cluster) \ --engine-version 1.2.1.0 \ --apply-immediately

針對 Windows:

aws neptune modify-db-cluster ^ --db-cluster-identifier (your-neptune-cluster) ^ --engine-version 1.2.1.0 ^ --apply-immediately

更新會同時套用到資料庫叢集中的所有執行個體。更新時,所有這些執行個體都需要重新啟動資料庫,因此您會經歷 20 至 30 秒的停機時間,之後就可以繼續使用資料庫叢集。

一律在升級之前執行測試

發佈新的主要或次要 Neptune 引擎版本時,請一律先在其上測試 Neptune 應用程式,然後再升級至其中。即使是次要升級,也可能會引入將影響程式碼的新功能或行為。

首先,請將目前版本中的版本備註頁面與目標版本的版本備註頁面進行比較,以查看查詢語言版本中是否將有變更,或有其他重大變更。

在升級生產資料庫叢集之前測試新版本的最佳方式是複製您的生產叢集,以便複製執行新的引擎版本。然後,您可以在複製上執行查詢,而不會影響生產資料庫叢集。

升級前一律建立手動快照

在執行升級之前,強烈建議您一律建立資料庫叢集的手動快照。具有自動快照僅會提供短期保護,而手動快照仍然可用,直到您明確將其刪除為止。

在某些情況下,Neptune 會為您建立手動快照,作為升級程序的一部分,但您不應該依賴此快照,而且在任何情況下都應該建立自己的手動快照。

確定不需要將資料庫叢集還原為升級前狀態時,您可以明確刪除您自己建立的手動快照,以及 Neptune 可能已建立的手動快照。如果 Neptune 建立手動快照集,它會具有開頭為 preupgrade 的名稱,後面跟著資料庫叢集的名稱、來源引擎版本、目標引擎版本和日期。

注意

如果您嘗試在待定動作進行中時進行升級,可能會遇到如下錯誤:

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

如果遇到此錯誤,請等候待定動作完成,或立即觸發維護時段,讓先前的升級完成。

如需有關升級引擎版本的詳細資訊,請參閱 維護 Amazon Neptune 資料庫叢集。如果您有任何問題或疑慮,請透過社群論壇及 AWS Premium Support 聯繫 AWS Support 團隊。