亚马逊数据库迁移服务 - elasticsearch

问题描述

我们已经建立了一个带有 json 类型字段的 postgres 数据库,它应该同步到 elastic 以获得更好的搜索性能。 json 对于对象数组非常复杂,因此我们需要使用嵌套数据类型定义 elasticsearch 映射。我们还定义了一个elasticsearch json 处理器,它转换potgres json 字段中的json 字符串(数据库迁移服务将其作为字符串处理)。

{
  "description" : "parses content as json","processors" : [
    {
    "json" : {
        "field" : "content","add_to_root": true
    }
    }
  ]
}

当使用从邮递员到 es 的转义 json 运行示例发布请求时,它可以工作(此示例发布请求(尝试)模仿应该从 DMS 发送的请求。如果通过 DMS 运行,我们会得到

"error": {
        "root_cause": [
            {
                "type": "illegal_argument_exception","reason": "cannot change object mapping from nested to non-nested"
            }
        ],"type": "illegal_argument_exception","reason": "cannot change object mapping from nested to non-nested"
    },"status": 400

是否有可能捕获从 DMS 发送到 ES 的实际请求

  • 我们将 DMS 中的日志更改为 { "Id": "TARGET_APPLY","严重性": "LOGGER_SEVERITY_DETAILED_DEBUG" },
  • 我们还在 Elasticserach 服务上设置了错误日志

但只记录错误 - 查看 DMS 实际组装的请求会很有帮助。

附注: 在索引上没有预定义映射时,它是通过 DMS 插入的(ES 猜测字段类型很好),但我们需要应用映射。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)