本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
最佳化 Amazon Neptune 大量載入
使用下列策略,讓 Neptune 大量載入保持最短的載入時間:
-
清除您的資料:
載入之前,請務必將您的資料轉換為支援的資料格式。
刪除任何重複內容或已知錯誤。
盡可能減少唯一述詞 (例如邊緣和頂點的屬性) 的數目。
-
最佳化您的檔案:
如果您從 Amazon S3 儲存貯體載入大型檔案,例如 CSV 檔案,載入器會透過將它們剖析為可平行載入的區塊來管理並行。使用大量小檔案可能會減慢此程序的速度。
如果您從 Amazon S3 資料夾載入多個檔案,載入器會先自動載入頂點檔案,然後再載入邊緣檔案。
壓縮檔案可減少傳輸時間。載入器支援來源檔案的
gzip
壓縮。
-
檢查您的載入器設定:
-
如果您不需要在載入期間執行任何其他操作,請使用 OVERSUBSCRIBEparallelism 參數。此參數設定會導致大量載入器在執行時使用所有可用的 CPU 資源。一般而言,需要 60%-70% 的 CPU 容量,才能讓操作在 I/O 限制條件允許的情況下保持快速執行。
注意
當
parallelism
設為OVERSUBSCRIBE
或HIGH
(預設設定) 時,載入執行緒可能遇到競爭條件和死鎖的 openCypher 資料時,會有風險,導致LOAD_DATA_DEADLOCK
錯誤。在此情況下,請將parallelism
設定為較低的設定,然後重試載入。 如果您的載入工作將包含多個載入請求,請使用
queueRequest
參數。將queueRequest
設定為TRUE
可讓 Neptune 將您的請求排入佇列,這樣您就不必等待一個請求完成後,再發出另一個請求。如果您的載入請求正要排入佇列,您可以使用
dependencies
參數設定相依性層級,以便一個工作若失敗就會導致相依工作失敗。這樣可以防止載入的資料中出現不一致的情況。-
如果載入工作將涉及更新先前載入的值,請務必將
updateSingleCardinalityProperties
參數設定為TRUE
。如果不這樣做,載入器會將嘗試更新現有的單一基數值視為錯誤。對於 Gremlin 資料,也會在屬性欄標頭中指定基數 (請參閱 屬性欄標題)。注意
updateSingleCardinalityProperties
參數不適用於資源描述架構 (RDF) 資料。 您可以使用
failOnError
參數來決定發生錯誤時,大量載入操作應該失敗還是繼續。此外,您可以使用mode
參數,來確定載入工作會從前一個工作失敗的那一點繼續載入,而不是重新載入已載入的資料。
-
-
縱向擴展 – 在大量載入之前,將資料庫叢集的寫入器執行個體設定為大小上限。請注意,如果這樣做,您必須同時縱向擴展資料庫叢集中的任何僅供讀取複本執行個體,或將其移除,直到完成載入資料為止。
當大量載入完成時,請務必再次縮減寫入器執行個體。
重要
如果您由於大量載入期間的複寫延遲而遭遇重複僅供讀取複本重新啟動的週期,則您的複本可能無法跟上資料庫叢集中的寫入器。將讀取器擴展為大於寫入器,或在大量載入期間暫時將其移除,然後在完成後重新建立這些讀取器。
如需設定載入器請求參數的詳細資訊,請參閱 請求參數。