本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Neptune 引擎 1.4.0.0 版 (2024-11-06)
截至 2024-11-06,引擎版本 1.4.0.0 已普遍部署。請注意,新版本需要數天才能在每個區域推出。
注意
引擎 1.3.0.0 版引入了新格式,適用於自訂參數群組和自訂叢集參數群組。因此,如果您要從 1.3.0.0 之前的引擎版本升級至引擎 1.3.0.0 版或更新版本,則必須使用參數群組系列 neptune1.3
重新建立所有現有的自訂參數群組和自訂叢集參數群組。舊版已使用參數群組系列 neptune1
或 neptune1.2
,而這些參數群組不會使用 1.3.0.0 版及更新版本。如需更多資訊,請參閱Amazon Neptune 參數群組。
警告
由於在查詢中處理數值類型參數的重複使用時出現錯誤,因此暫時不支援查詢計劃快取執行涉及數值參數值的參數化查詢。例如:
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% 的迴歸。
此引擎版本的新功能
-
當邊緣新增至沒有明確 ID 的屬性圖表時,伺服器預設會指派以 UUID 為基礎的邊緣 ID,該 ID 會存放在字典中。現在,透過設定新的叢集參數
neptune_enable_server_generated_edge_id = 1
, 伺服器將使用內部受管的 8 位元組整數來指派 IDs,而不會有任何字典額外負荷。這可節省儲存體並提高查詢效能,而不會對查詢進行任何變更。目前僅支援透過 Gremlin 查詢語言插入的此功能。 -
新增對 DFE 引擎巢狀周遊中 Gremlin limit() 步驟執行的支援。
g.V().project("foo").by(out().order().by(T.id).limit(1))
此引擎版本的改進
一般改進
-
一旦交易完成且不再需要日誌進行復原,Neptune 將自動復原大型交易所保留的儲存體。
-
支援全球資料庫存活複本。此功能允許次要叢集在主要叢集上重新啟動寫入器執行個體時,仍然提供讀取請求。先前,當寫入器執行個體重新啟動時,次要叢集中的所有讀取器執行個體也會重新啟動。在此版本中,次要叢集讀取器執行個體會在寫入器執行個體重新啟動期間繼續提供讀取請求,從而改善叢集中的讀取可用性。
-
稽核日誌現在會同步寫入,以確保記錄每個查詢。這可能會影響特別大型查詢 (>100kb) 或高輸送量工作負載 (>1000 qps) 的效能。
Gremlin 改進
-
依預設,每個查詢逾時會強制執行為小於叢集層級逾時。在先前的版本中,已推出此檢查,但需要透過實驗室模式參數 'StrictTimeoutValidation' 明確啟用。在此版本中,'StrictTimeoutValidation' 預設為啟用,且必須明確停用才能保留舊行為。
openCypher 改善
-
在上一版中,我們推出了延長的日期時間格式支援,透過實驗室模式參數 啟用
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.
此引擎版本中修正的瑕疵
一般修正
-
修正在擴展時可能導致資料庫重新啟動的無伺服器執行個體問題。
-
修正與稽核日誌檔案管理相關的問題,可能導致日誌檔案無法存取以進行下載或輪換,在某些情況下會增加 CPU 用量。
-
修正與最佳化延遲 DFE 引擎中產生映射輸出相關的查詢問題。
-
已修正導致稽核日誌與慢查詢日誌之間時間戳記不相符的問題。
Gremlin 修正
-
已解決 Gremlin WebSocket 連線管理中查詢執行時間超過連線閒置逾時的問題。這特別影響使用 AIOHTTP 傳輸的 Python Gremlin 用戶端。
openCypher 修正
-
已修正收集步驟中導致在 collect(distinct(n)) 查詢建構期間存在 null 值時內部失敗例外狀況的問題。
-
已修正啟用查詢計劃快取時,查詢中
NullPointerException
可能發生 的問題。 -
修正查詢包含 LIMIT 子句時,評估的資料超過所需數量的問題。
-
已修正在參數化查詢中使用範圍操作 (<、<=、>、>=) 搭配查詢計畫快取會產生重複結果的問題。
-
已修正使用螺栓連線執行 UNION 和 ALL UNION 操作時,轉傳結果資料欄的問題。
此版本支援的查詢語言版本
將資料庫叢集升級至 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 的升級路徑
您可以從引擎版本 1.2.0.0 或更新版本升級至此版本。
升級至此版本
如果資料庫叢集執行的引擎版本具有升級至此版本的途徑,則有資格立即升級。您可以使用主控台上的資料庫叢集操作或使用 SDK 來升級任何符合資格的叢集。下列 CLI 命令會立即升級合格的叢集:
對於 Linux、OS X 或 Unix:
aws neptune modify-db-cluster \ --db-cluster-identifier
(your-neptune-cluster)
\ --engine-version 1.4.0.0 \ --allow-major-version-upgrade \ --apply-immediately
針對 Windows:
aws neptune modify-db-cluster ^ --db-cluster-identifier
(your-neptune-cluster)
^ --engine-version 1.4.0.0 ^ --allow-major-version-upgrade ^ --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)
一律在升級之前執行測試
發佈新的主要或次要 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 支援團隊可在社群論壇和 AWS Premium Support