在现有 Neptune 数据库上启用全文搜索 - Amazon Neptune

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在现有 Neptune 数据库上启用全文搜索

这些是在现有 Amazon Neptune 数据库上启用全文搜索的既定方法。根据您是否可以暂停写入工作负载,步骤可能会略有不同。本指南概述了以下两种情况下的推荐步骤:可以暂停写入时和无法暂停写入时。它包括启用 Neptune 流、创建数据库克隆、将数据同步到 OpenSearch 域以及设置持续更新。该指南利用 AWS 服务和开源工具来简化流程并最大限度地减少停机时间。

如果您可以暂停写入工作负载

在现有 Neptune 数据库上启用全文搜索的最佳方法通常如下所示,前提是您可以暂停写入工作负载。它需要创建克隆,使用集群参数启用流,然后重新启动所有实例。创建克隆的操作相对较快,因此所需的停机时间是有限的。

下面列出了所需的步骤:

  1. 停止数据库上的所有写入工作负载。

  2. 在数据库上启用流(请参阅启用 Neptune 流)。

  3. 创建数据库的克隆(请参阅 Neptune 中的数据库克隆)。

  4. 恢复写入工作负载。

  5. 使用 github 上的 export-neptune-to-elasticsearch 工具执行从克隆的数据库到 OpenSearch 域的一次性同步。

  6. 使用您所在区域的 CloudFormation 模板从原始数据库开始同步,并进行持续更新(无需更改模板中的配置)。

  7. 删除克隆的数据库和为 export-neptune-to-elasticsearch 工具创建的 CloudFormation 堆栈。

注意

export-neptune-to-elasticsearch 目前不支持 Opensearch 无服务器。需要一次性同步 Neptune 中现有数据的部署必须使用 Opensearch 托管集群。

如果您无法暂停写入工作负载

如果您承担不起在数据库上暂停写入工作负载的代价,那么以下方法所需的停机时间甚至比上述推荐的方法还要少,但需要谨慎行事:

  1. 在数据库上启用流(请参阅启用 Neptune 流)。

  2. 创建数据库的克隆(请参阅 Neptune 中的数据库克隆)。

  3. 通过对 Streams API 端点执行此类命令,获取克隆数据库上流的最新 eventID(有关更多信息,请参阅调用 Neptune Streams REST API):

    curl "https://(your neptune endpoint):(port)/(propertygraph or sparql)/stream?iteratorType=LATEST"

    记下响应的 lastEventId 对象中 commitNumopNum 字段的值。

  4. 使用 github 上的 export-neptune-to-elasticsearch 工具执行从克隆的数据库到 OpenSearch 域的一次性同步。

  5. 使用您所在区域的 CloudFormation 模板从原始数据库开始同步,并进行持续更新。

    创建堆栈时进行以下更改:在堆栈详细信息页面的参数部分中,使用上面记录的 commitNumopNum 值将 StartingCheckpoint 字段的值设置为 commitNum:opnum

  6. 删除克隆的数据库和为 export-neptune-to-elasticsearch 工具创建的 CloudFormation 堆栈。