Amazon Neptune 引擎 1.2.1.0 版 (2023 年 3 月 8 日) - Amazon Neptune

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

Amazon Neptune 引擎 1.2.1.0 版 (2023 年 3 月 8 日)

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

注意

如果從 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 通訊協定

此版本的後續修補程式版本

這個引擎版本的新功能

  • 已新增對 TinkerPop 3.6.2 的支援,這會新增許多新的 Gremlin 功能,例如新的 mergeV()mergeE()element()fail() 步驟。mergeV()mergeE() 步驟特別值得注意,因為它們提供了一個期待已久的宣告式選項,用於執行類似 Upsert 的操作,這應該大大簡化現有的程式碼模式,並使 Gemlin 更容易讀取。3.6.x 版也新增了 regex 述詞、將一個新的過載新增到採取 Map 的步驟 property(),以及新增了 by() 調變行為的主要修訂,進而在使用它的所有步驟中都更加一致。

    如需 3.6 版中變更的相關資訊,以及升級時應考量的事項,請參閱 TinkerPop 變更日誌升級頁面

    如果您使用 fold().coalesce(unfold(), <mutate>) 進行條件式插入,我們建議您移轉至這裡這裡所述的新 mergeV/E() 語法。Neptune 會對 Merge 使用比 Coalesce 更窄的鎖定模式,這可以減少並行修改例外狀況 (CME)。

    如需有關此 TinkerPop 版本中可用的新功能的詳細資訊,請參閱 Stephen Mallette 的部落格探索 Amazon Neptune 中 Apache TinkerPop 3.6.x 的新功能

  • 已新增對 R6i 執行個體類型的支援,此執行個體類型是由第三代 Intel Xeon 可擴展處理器提供。這些非常適合記憶體密集型工作負載,與同類 R5 執行個體類型相比,提供每個 vCPU 最多可提升 15% 的運算/價格效能,以及最多可提高 20% 的記憶體頻寬。

  • 已同時新增屬性圖和 RDF 圖形的圖形摘要 API 端點,可讓您取得有關圖形的快速摘要報告。

    對於屬形 (PG) 圖,圖形摘要 API 會提供節點和邊緣標籤以及屬性索引鍵的唯讀清單,也會提供節點、邊緣和屬性的計數。對於 RDF 圖形,它會提供類別和述詞索引鍵的清單,以及四元組、主旨和述詞的計數。

    新的圖形摘要 API 進行了以下變更:

    • 已新增一個 GetGraphSummary 資料平面動作。

    • 已新增 rdf/statistics 端點來取代現已遭棄用的 sparql/statistics 端點。

    • 將統計資料狀態回應中的 summary 欄位名稱變更為 signatureInfo,以免將其與圖形摘要資訊混淆。先前的引擎版本會繼續在 JSON 回應中使用 summary

    • 將統計資料狀態回應中 date 欄位的精確度從分鐘變更為毫秒。先前的格式為 2020-05-07T23:13Z (分鐘精確度),而新格式為 2023-01-24T00:47:43.319Z (毫秒精確度)。兩者都符合 ISO 8601 標準,但此變更可能會破壞現有的程式碼,取決於日期的剖析方式。

    • 已在工作台中新增 %statistics 行魔法,可讓您擷取 DFE 引擎統計資料。

    • 已在工作台中新增 %summary 行魔法,可讓您擷取圖形摘要資訊。

  • 已新增慢查詢記錄,以記錄需要的執行時間超過指定閾值的查詢。您可以使用兩個新的動態參數 (即 neptune_enable_slow_query_log, 和 neptune_slow_query_log_threshold) 來啟用和控制慢查詢記錄。

  • 已新增對兩個動態參數的支援,即新的叢集參數 neptune_enable_slow_query_logneptune_slow_query_log_threshold。對動態參數進行變更時,它會立即生效,無需重新啟動任何執行個體。

  • 已新增 Neptune 特定的 OpenCypher removeKeyFromMap() 函數,此函數會從映射中移除指定的索引鍵並傳回產生的新映射。

這個引擎版本的改善項目

  • 已將 Gremlin DFE 支援延伸至具有本機範圍的 limit 步驟。

  • 已在 DFE 引擎中新增對 Gremlin DedupGlobalStepby() 調變支援。

  • 已新增對 Gremlin SelectStepSelectOneStep 的支援。

  • 各種 Gemlin 運算子 (包括 repeatcoalescestoreaggregate) 的效能改善和正確性修正。

  • 已改善涉及 MERGEOPTIONAL MATCH 的 openCypher 查詢效能。

  • 已改善涉及常值映射清單的 UNWIND 的 OpenCypher 查詢效能。

  • 已改善對 id 具有 IN 篩選條件的 OpenCypher 查詢效能。例如:

    MATCH (n) WHERE id(n) IN ['1', '2', '3'] RETURN n
  • 已新增使用 BASE 陳述式,為 SPARQL 查詢指定基礎 IRI 的功能 (請參閱 IRI 查詢和更新的預設基礎)。

  • 已縮短 Gremlin 和 OpenCypher 僅邊緣大量載入的載入處理等待時間。

  • 已使大量載入在 Neptune 重新啟動時以非同步方式繼續,以避免在繼續嘗試失敗之前,因 Amazon S3 連線問題所造成的漫長等待時間。

  • 已改善 SPARQL DESCRIBE 查詢的處理,這些查詢具有查詢提示設定為 "CBD" (簡潔的界限描述) 的 describeMode 查詢,以及涉及大量空白節點。

此引擎版本中修正的缺陷

  • 已修正 OpenCypher 錯誤,其中查詢傳回了字串 "null",而不是 Bolt 和 SPARQL-JSON 中的 null 值。

  • 己修正清單理解中的 OpenCypher 錯誤,此錯誤產生了空值,而不是為清單元素提供的值。

  • 已修正位元組值未正確序列化的 OpenCypher 錯誤。

  • 已修正 UnionStep 中在下列情況發生的 Gremlin 錯誤:輸入是周遊至子周遊內頂點的邊緣。

  • 已修正 Grimlin 錯誤,此錯誤導致了與 UnionStep 相關聯的步驟標籤無法正確傳播到每個子周遊的最後一個步驟。

  • 已針對其標籤跟在 repeat 步驟後面的 dedup 步驟修正了 Gremlin 錯誤,其中附加到 dedup 步驟的標籤無法在查詢中進一步使用。

  • 已修正 Gremlin 錯誤,其中轉換 union 步驟內的 repeat 步驟失敗,發生內部錯誤。

  • 已透過返回 Tinkerpop 修正了 DEF 查詢的 Grimlin 正確性問題,這些查詢具有 limit 做為非聯集步驟的子周遊。表單中像這樣的查詢會受到影響:

    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 錯誤,以便在拒絕 null 字元時傳回正確的例外狀況訊息。

  • 已修正 SPARQL Explain 錯誤,此錯誤影響了包含 PipelinedHashIndexJoin 運算子的計劃。

  • 已修正錯誤,此錯誤已在提交一個傳回常數值的查詢時,導致擲回內部錯誤。

  • 已修正死鎖偵測器邏輯偶爾會使引擎沒有回應的問題。

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

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

您可以將任何大於或等於 1.1.0.0 的先前 Neptune 引擎版本手動升級至此版本。

注意

引擎 1.2.0.0 版開始,與 1.2.0.0 以前的引擎版本搭配使用的所有自訂參數群組和自訂叢集參數群組,現在必須使用參數群組系列 neptune1.2 重新建立。舊版已使用參數群組系列 neptune1,而這些參數群組將不會使用 1.2.0.0 以上的版本。如需更多資訊,請參閱Amazon Neptune 參數群組

您不會自動升級至此主要版本。

升級至此版本

Amazon Neptune 1.2.1.0 現已正式推出。

如果資料庫叢集執行的引擎版本具有升級至此版本的途徑,則有資格立即升級。您可以使用主控台上的資料庫叢集操作或使用 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 團隊。