亚马逊海王星-To-OpenSearch复制设置 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

亚马逊海王星-To-OpenSearch复制设置

Amazon Neptune 支持使用 Gremlin 和 SPARQL 查询进行全文搜索。Amazon OpenSearch Service(OpenSearch Service)。您可以使用Amazon CloudFormation堆栈以链接OpenSearch Service域名到 Neptune。

在开始之前,您需要一个已启用流的现有 Neptune 数据库集群作为源,并需要一个OpenSearch Service域作为复制目标。

如果您已有目标OpenSearch Service域可由 Neptune 数据库集群所在 VPC 中的 Lambda 访问,则模板可以使用该域。否则,您需要创建一个新目标域。

注意

这些区域有:OpenSearch您创建的群集和 Lambda 函数必须与 Neptune 数据库集群位于同一 VPC 中,并且OpenSearch必须以 VPC 模式(而不是互联网模式)配置集群。

我们建议您将新创建的 Neptune 实例与一起使用。OpenSearch Service. 如果您使用的是已包含数据的现有实例,则应执行OpenSearch Service在进行查询之前同步数据,否则可能存在数据不一致。此 GitHub 项目提供了如何执行同步的示例:将 Neptune 导出到OpenSearch(https://github.com/awslabs/amazon-neptune-tools/tree/master/export-neptune-to-elasticsearch)。

重要

与集成时Amazon OpenSearch Service,Neptune 需要 Elasticsearch 7.1 或更高版本而不是更高版本OpenSearch版本 1.0。Neptune 目前不兼容OpenSearch版本 1.0。

这些区域有:Amazon CloudFormation然后,下面的模板创建一个流使用者应用程序实例,该实例提供 Neptune-toOpenSearch复制。

设置海王星 To-OpenSearch使用的复制Amazon CloudFormation您所在地区的模板

要启动Amazon CloudFormation堆叠在Amazon CloudFormation选择控制台,选择其中一个启动堆栈取决于下表中的按钮Amazon您要使用的区域。

区域 查看 在 Designer 中查看 启动
美国东部(弗吉尼亚北部) 查看 在 Designer 中查看
美国东部(俄亥俄) 查看 在 Designer 中查看
美国西部(加利福尼亚北部) 查看 在 Designer 中查看
美国西部(俄勒冈) 查看 在 Designer 中查看
加拿大(中部) 查看 在 Designer 中查看
南美洲(圣保罗) 查看 在 Designer 中查看
欧洲(斯德哥尔摩) 查看 在 Designer 中查看
欧洲(爱尔兰) 查看 在 Designer 中查看
欧洲(伦敦) 查看 在 Designer 中查看
欧洲(巴黎) 查看 在 Designer 中查看
欧洲(法兰克福) 查看 在 Designer 中查看
Middle East (Bahrain) 查看 在 Designer 中查看
亚太地区(香港) 查看 在 Designer 中查看
亚太区域(东京) 查看 在 Designer 中查看
亚太地区(首尔) 查看 在 Designer 中查看
亚太地区(新加坡) 查看 在 Designer 中查看
亚太地区(孟买) 查看 在 Designer 中查看
中国(北京) 查看 在 Designer 中查看
中国(宁夏) 查看 在 Designer 中查看
Amazon GovCloud(美国西部) 查看 在 Designer 中查看
Amazon GovCloud(美国东部) 查看 在 Designer 中查看

Create stack (创建堆栈) 主页上,选择 Next (下一步)

添加详细信息关于新OpenSearch你正在创建的堆栈

这些区域有:指定栈详细信息页面提供了属性和参数,可用于控制全文搜索的设置:

Stack Name— 新的名称Amazon CloudFormation您正在创建的堆栈。通常可以使用默认值 NeptuneStreamPoller

Parameters (参数) 下,提供以下内容:

流使用者运行的 VPC 的网络配置

  • VPC— 提供将运行轮询 Lambda 函数的 VPC 的名称。

  • List of Subnet IDs— 建立网络接口的子网。添加与 Neptune 集群对应的子网。

  • List of Security Group Ids— 提供向源 Neptune 数据库集群授予写入入站入站访问权限的安全组的 ID。

  • List of Route Table Ids— 如果您还没有终端节点,则需要在 Neptune VPC 中创建一个。您必须提供与子网关联的路由表 ID 的逗号分隔列表。

  • Require to create Dynamo DB VPC Endpoint— 默认为的布尔值true. 您只需将其更改为false如果您已在 VPC 中创建 DynamoDB 终端节点。

  • Require to create Monitoring VPC Endpoint— 默认为的布尔值true. 如果您已在 VPC 中创建镜像终端节点,则只需将其更改为 false

流轮询器

  • Application Name— 您通常可以将此设置保留为默认值 (NeptuneStream)。如果您使用不同的名称,则该名称必须是唯一的。

  • Memory size for Lambda Poller— 用于设置 Lambda 轮询器函数可用的内存大小。默认值为 2,048 MB。

  • Lambda Runtime— 从 Neptune 流中检索项目的 Lambda 函数使用的语言。你可以将其设置为python3.6或者去java8.

  • S3 Bucket having Lambda code artifacts— 除非您使用从其他 S3 存储桶加载的自定义 Lambda 轮询函数,否则将此设置保留为空。

  • S3 Key corresponding to Lambda Code artifacts— 除非您使用自定义 Lambda 轮询函数,否则将此设置保留为空。

  • Logging level for Lambda— 通常,将此设置保留为默认值,INFO.

  • Managed Policies for Lambda Execution— 通常,除非您使用自定义 Lambda 轮询函数,否则将此设置保留为空。

  • Stream Records Handler— 通常,除非您为 Neptune 流中的记录使用自定义处理程序,否则将此设置保留为空。

  • Maximum records Fetched from Stream— 您可以使用此参数来优化性能。默认值 (100) 是一个很好的开始。允许的最大值为 10,000。数字越大,从流读取记录所需的网络调用就越少,但处理记录所需的内存越多。

  • Max wait time between two Polls (in Seconds)— 确定调用 Lambda 轮询器轮询 Neptune 流的频率。将此值设置为 0 以进行连续轮询。最大值为 3600 秒(1 小时)。默认值(60 秒)是一个很好的开始,具体取决于图形数据更改的速度。

  • Maximum Continuous polling period (in Seconds)— 用于设置 Lambda 轮询函数的超时。它应该是 5 秒到 900 秒之间。默认值(600 秒)是一个很好的开始。

  • Step Function Fallback Period— 等待轮询器的步进函数回退时间单位数,之后将通过 Amazon CloudWatch Events 调用步进函数以从故障中恢复。默认值(5 分钟)是一个很好的开始。

  • Step Function Fallback Period Unit— 用于测量上述的时间单位Step Function Fallback Period(分钟、小时、天)。默认值(分钟)通常就足够了。

  • Data replication scope— 确定是要复制节点和边缘,还是仅复制节点以进行复制OpenSearch(这仅适用于 Gremlin 引擎数据)。默认值(All (全部))通常是一个很好的开始。

  • Ignore OpenSearch missing document error— 用于确定是否存在缺少文档错误的标志OpenSearch可以忽略。缺少文档错误很少发生,但如果不忽略,则需要手动干预。默认值 (True) 通常是一个很好的开始。

  • Enable Non-String Indexing— 标记以启用或禁用对没有字符串内容的字段进行索引。如果将此标志设置为true,非字符串字段被编入索引OpenSearch,或者如果false,只对字符串字段进行索引。默认为 true

  • Properties to exclude from being inserted into OpenSearch— 要从中排除的属性或谓词键的逗号隔列表OpenSearch索引。如果此 CFN 参数值留空,则所有属性键都将索引。

  • Datatypes to exclude from being inserted into OpenSearch— 待排除属性或谓词数据类型的逗号分隔列表。OpenSearch索引。如果此 CFN 参数值留空,则可以安全转换为的所有属性值OpenSearch数据类型已编制索引。

Neptune Stream

  • Endpoint of source Neptune Stream— (必需) 这采用两种形式之一:

    • https://your DB cluster:port/gremlin/stream

    • https://your DB cluster:port/sparql/stream

  • Neptune Query Engine— 选择 Gremlin 或 SPARQL。

  • Is IAM Auth Enabled?— 如果您的 Neptune 数据库集群使用 IAM 身份验证,请将此参数设置为true.

  • Neptune Cluster Resource Id— 如果您的 Neptune 数据库集群使用 IAM 身份验证,请将此参数设置为集群资源 ID。资源 ID 与集群 ID 不同。相反,它采取的形式是:cluster-后跟 28 个字母数字字符。它可以在下面找到群集详细信息在 Neptune 控制台中。

目标OpenSearch聚集

  • Endpoint for OpenSearch service—(必填)提供终端节点OpenSearchVPC 中的服务。

  • Number of Shards for OpenSearch Index— 默认值 (5) 通常是一个很好的开始。

  • Number of Replicas for OpenSearch Index— 默认值 (1) 通常是一个很好的开始。

  • Geo Location Fields for Mapping— 如果您使用的是地理位置字段,请在此处列出属性键。

Alarm

  • Require to create Cloud watch Alarm— 将其设置为true如果要为新堆栈创建 CloudWatch 警报。

  • Email for Alarm Notifications— 应向其发送警报通知的电子邮件地址(仅在启用警报时才需要)。

运行 Amazon CloudFormation 模板

现在,您可以完成预配置 Neptune 流使用者应用程序实例的过程,如下所示:

  1. 在 Amazon CloudFormation 中的 Specify Stack Details (指定堆栈详细信息) 页面上,选择 Next (下一步)

  2. Options (选项) 页面上,选择 Next (下一步)

  3. 在存储库的审核页面上,选中第一个复选框以确认Amazon CloudFormation将创建 IAM 资源。选中第二个复选框以确认新堆栈的 CAPABILITY_AUTO_EXPAND

    注意

    CAPABILITY_AUTO_EXPAND 明确确认在创建堆栈时将扩展宏,而无需事先审核。用户通常通过处理的模板创建更改集,以便在实际创建堆栈之前对宏所做的更改进行审核。有关更多信息,请参阅 。Amazon CloudFormation CreateStack中的 API 操作Amazon CloudFormationAPI 参考.

    然后选择 Create (创建)

使用最新的 Lambda 工件更新流轮询器

您可以使用最新的 Lambda 代码工件更新流轮询器,如下所示:

  1. 在Amazon Web Services Management Console,导航到Amazon CloudFormation然后选择主父Amazon CloudFormation堆栈。

  2. 选择更新堆栈的选项。

  3. Select替换当前模板.

  4. 对于模板源,请选择Amazon S3 URL然后输入以下 S3 URL:

    https://aws-neptune-customer-samples.s3.amazonaws.com/neptune-stream/neptune_to_elastic_search.json
  5. Select下一步没有更改任何Amazon CloudFormation参数。

  6. 选择 Update Stack

堆栈现在将使用最新的项目更新 Lambda 工件。

在现有 Neptune 数据库上启用全文搜索的不同方法

在现有 Neptune 数据库上启用全文搜索的最佳方法通常如下所示,前提是您可以暂停写入工作负载。它所需的停机时间是有限的,因为创建克隆的速度相对较快。

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

  2. 创建数据库的克隆。

  3. 在原始数据库上启用流。

  4. 恢复写入工作负载。

  5. 使用github 上的这个 Neptune 工具以执行克隆中的一次性同步。

  6. 使用这个Amazon CloudFormation模板从原始数据库同步以进行持续更新(模板中不需要更改配置)。

如果您无法在数据库中挂起写入工作负载,这种方法比上述建议的方法需要的停机时间更少,但需要谨慎处理:

  1. 在数据库上启用流。

  2. 创建数据库的克隆。

  3. 记下最新的eventID对于来自克隆的流。

  4. 使用github 上的这个 Neptune 工具以执行克隆中的一次性同步。

  5. 使用这个Amazon CloudFormation模板以便从原始数据库同步以便持续更新。你确实需要配置Amazon CloudFormation模板:确保使用eventID你在开始持续同步之前录制了。

在中查询自定义字段OpenSearch使用 Neptune 全文搜索

可以轻松扩展当前的流轮询器以编写用于处理自定义字段的自定义代码,如博客文章中的详细说明:使用 Neptune Streams 捕获图形更改.

注意

在中添加自定义字段时OpenSearch,请确保将新字段添加为谓词的内部对象(请参阅Neptune 全文搜索数据模型)。