本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
這些是在現有 Amazon Neptune 資料庫上啟用全文搜尋的已建立方法。根據您是否可以暫停寫入工作負載,步驟可能會略有不同。本指南概述兩種案例的建議步驟 - 何時可以暫停寫入,何時無法暫停。它涵蓋啟用 Neptune 串流、建立資料庫複製、將資料同步至 OpenSearch 網域,以及設定持續更新。此指引會利用 AWS 服務和開放原始碼工具來簡化程序,並將停機時間降至最低。
如果您可以暫停寫入工作負載
在現有的 Neptune 資料庫上啟用全文檢索搜尋的最佳方式通常如下,前提是您可以暫停寫入工作負載。它需要建立一個複製、使用叢集參數啟用串流,並重新啟動所有執行個體。建立複製是一項相對較快的操作,因此所需的停機時間會受到限制。
必要的步驟如下:
停止資料庫上的所有寫入工作負載。
在資料庫上啟用串流 (請參閱啟用 Neptune 串流)。
建立資料庫的複製 (請參閱 Neptune 中的資料庫複製)。
繼續寫入工作負載。
使用 github 上的 export-neptune-to-elasticsearch
工具,執行從複製的資料庫到 OpenSearch 網域的一次性同步。 使用適用於您區域的AWS CloudFormation 範本,以持續更新的方式從原始資料庫開始同步 (範本中不需要變更任何組態)。
刪除複製的資料庫和為
export-neptune-to-elasticsearch
工具建立的 AWS CloudFormation 堆疊。
注意
export-neptune-to-elasticsearch
如果您無法暫停寫入工作負載
如果您負擔不起在資料庫上暫停寫入工作負載,以下是所需停機時間甚至比上述建議方法還要少的方法,但需要謹慎完成:
在資料庫上啟用串流 (請參閱啟用 Neptune 串流)。
建立資料庫的複製 (請參閱 Neptune 中的資料庫複製)。
-
針對串流 API 端點執行此類命令,以取得所複製資料庫上串流的最新
eventID
(如需詳細資訊,請參閱呼叫 Neptune 串流 REST API):curl "https://
(your neptune endpoint)
:(port)
/(propertygraph or sparql)
/stream?iteratorType=LATEST"記下回應中
lastEventId
物件中commitNum
和opNum
欄位中的值。 使用 github 上的 export-neptune-to-elasticsearch
工具,執行從複製的資料庫到 OpenSearch 網域的一次性同步。 -
使用適用於您區域的AWS CloudFormation 範本,以持續更新的方式從原始資料庫開始同步。
在建立堆疊時進行下列變更:在堆疊詳細資訊頁面的參數區段中,使用您在上面記錄的
commitNum
和opNum
值,將StartingCheckpoint
欄位的值設為commitNum
:opnum
。 刪除複製的資料庫和為
export-neptune-to-elasticsearch
工具建立的 AWS CloudFormation 堆疊。