首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据从海王星复制到AWS ElasticsearchService时应用自定义转换逻辑

将数据从海王星复制到AWS ElasticsearchService时应用自定义转换逻辑
EN

Stack Overflow用户
提问于 2020-01-16 05:32:49
回答 1查看 317关注 0票数 0

Amazon现在使用服务支持全文搜索。它会自动复制海王星到Elasticsearch的数据。我的问题是:海王星在复制过程中是否支持自定义转换逻辑?例如,我在海王星中有一个顶点,如Brand(id=123, name="Calvin Klein"),我希望将自定义的转换逻辑应用到顶点,以便将这个顶点转换为Elasticsearch中的文档{id:123, name:"Calvin Klein", normalizedName:"calvinklein"}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-19 02:41:07

支持自定义逻辑吗?

是的,海王星复制过程确实允许用户拥有自己的转换逻辑,以便在弹性搜索中存储数据。但是我们必须小心,因为更改ES文档可能会破坏来自NeptuneGremlin的ES对文本搜索的支持,因为它需要文档中的所有原始字段。如果需要,可以随时向弹性搜索文档中添加新字段。

请参阅用于弹性搜索的海王星数据模型

可以在Gremlin查询?中使用自定义ES字段吗?

如果Gremlin属性存储在ES文档中,即作为“谓词”字段中的嵌套字段,则可以在gremlin FTS查询中使用自定义ES字段。

Ex: if {normalizedName:"calvinklein"} is to be added as custom field then ES document should store it as: { ....... // Original fields "predicates": { ....... // Original Properties "normalizedName":[ { "value": "calvinklein" } ] }

与任何其他Gremlin属性一样,只能使用Neptune FTS查询搜索此字段。(场不在海王星,而存在于海王星中)

如何添加自定义转换逻辑?

您所指的示例使用基于Python的AWS处理程序来使用NeptuneStreams将数据从海王星复制到弹性搜索。它从NeptuneStreams获取更改日志,并将它们转换为ES请求。

可以为处理流记录提供自己的Lambda poller处理程序的实现。详情请参考以下博文:

https://aws.amazon.com/blogs/database/capture-graph-changes-using-neptune-streams/

根据上面的博客文章,请遵循以下步骤:

  1. 创建来自轮询框架的AbstractHandler的自定义流处理程序类,并实现handle_records()方法。
  2. 完成流处理程序的创作之后,以ZIP存档的形式创建一个部署包,并将其上传到S3。
  3. 要使用新的zip存档,请在CFN模板中为您的处理程序包提供LambdaS3Bucket和LambdaS3Key。
  4. 另外,提供您的StreamRecordsHandler的名称,即您创建的自定义处理程序。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59763542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档