本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在现有 Neptune 数据库上启用全文搜索
如果您可以暂停写入工作负载
在现有 Neptune 数据库上启用全文搜索的最佳方法通常如下所示,前提是您可以暂停写入工作负载。它需要创建克隆,使用集群参数启用流,然后重新启动所有实例。创建克隆的操作相对较快,因此所需的停机时间是有限的。
下面列出了所需的步骤:
停止数据库上的所有写入工作负载。
在数据库上启用流(请参阅启用 Neptune 流)。
创建数据库的克隆(请参阅 Neptune 中的数据库克隆)。
恢复写入工作负载。
使用 github 上的export-neptune-to-elasticsearch
工具执行从克隆的数据库到 OpenSearch域的一次性同步。 使用您所在区域的Amazon CloudFormation 模板从原始数据库开始同步,并进行持续更新(无需更改模板中的配置)。
删除克隆的数据库和为该
export-neptune-to-elasticsearch
工具创建的 Amazon CloudFormation 堆栈。
如果您无法暂停写入工作负载
如果您承担不起在数据库上暂停写入工作负载的代价,那么以下方法所需的停机时间甚至比上述推荐的方法还要少,但需要谨慎行事:
在数据库上启用流(请参阅启用 Neptune 流)。
创建数据库的克隆(请参阅 Neptune 中的数据库克隆)。
-
通过对 Streams API 端点执行此类命令,获取克隆数据库上流的最新
eventID
(有关更多信息,请参阅调用 Neptune Streams REST API):curl "https://
(your neptune endpoint)
:(port)
/(propertygraph or sparql)
/stream?iteratorType=LATEST"记下响应的
lastEventId
对象中commitNum
和opNum
字段的值。 使用 github 上的export-neptune-to-elasticsearch
工具执行从克隆的数据库到 OpenSearch域的一次性同步。 -
使用您所在区域的Amazon CloudFormation 模板从原始数据库开始同步,并进行持续更新。
创建堆栈时进行以下更改:在堆栈详细信息页面的参数部分中,使用上面记录的
commitNum
和opNum
值将StartingCheckpoint
字段的值设置为commitNum
:opnum
。 删除克隆的数据库和为该
export-neptune-to-elasticsearch
工具创建的 Amazon CloudFormation 堆栈。