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

时间:2021-02-23 12:37:45

标签: amazon-web-services elasticsearch aws-dms

我们已经建立了一个带有 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 猜测字段类型很好),但我们需要应用映射。

0 个答案:

没有答案