AWS DMS遇到 Error : no handler found for uri

问题描述:

当我按照文档1配置AWS DMS 目标端为OpenSearch, 并进行数据迁移的时候,我遇到了如下报错:

复制代码
00015696: 2024-07-31T03:26:57 [TARGET_LOAD     ]E:  Elasticsearch:FAILED SourceTable:test TargetIndex:test Operation:INSERT_ENTRY
RecordPKKey:15 RecordPKID:E629FA6598D732768F7C726B4B621285F9C3B85303900AA912017DB7617D8BDBES HttpCode:400 ESErrorResponse: 
{"error":"no handler found for uri [/test/doc/E629FA6598D732768F7C726B4B621285F9C3B85303900AA912017DB7617D8BDB] and method [PUT]"} [1026400]  (elasticsearch_utils.c:668)

我检查了跟文档中的描述没什么问题,那么为什么我会遇到这个报错呢?

分析过程 及 解决方案:

1. 首先,从报错TARGET_LOAD 部分就可以看到,整个任务在Fullload阶段就失败了,连Index都没创建出来,根本没到CDC阶段。

**2.**我们看到这个failure信息是这样:/test/doc, 这边给了我们启示:

我们在Endpoint Settings里加了这样一项:useNewMappingType=true

这个设置在文档2中有提及:

UseNewMappingType

Set this option to true for DMS to migrate documentation using the documentation type _doc. OpenSearch and an Elasticsearch cluster only support the _doc documentation type in versions 7. x and later. The default value is false.

Type: Boolean

所以其实是因为我们的目标端OpenSearch/ElasticSearch版本高于7.*, 所以DMS在查数据的时候,必须插入为/test/_doc, 而不是/test/doc.

在加上这个设置以后,问题迎刃而解。

参考文档:

1 使用 Amazon OpenSearch Service 集群作为 Amazon Database Migration Service 的目标 - Amazon 数据库迁移服务

2 ElasticsearchSettings - Amazon Database Migration Service

相关推荐
catoop4 小时前
API Key 设计与安全生成方案:结构拆解、数据库设计与 Java 实现
java·数据库·安全
Web极客码4 小时前
我用 Claude 分析 Redis 哨兵日志,实现跨机房数据不一致自动对齐
数据库·redis·php
库库的数据库笔记5 小时前
国产信创数据库的MySQL兼容性深度对比解析
大数据·数据库·mysql·oceanbase·政务
姚远Oracle ACE5 小时前
为什么无法连接到 PostgreSQL?
数据库·postgresql
ss2736 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 22 PostgreSQL实例与集群
数据库·笔记·postgresql
ss2736 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 21 PostgreSQL进程与内存架构介绍
数据库·笔记·postgresql
Elastic 中国社区官方博客6 小时前
我们如何通过 70 多个拉取请求,将 OpenTelemetry Java agent 迁移到 invokedynamic
java·大数据·开发语言·elasticsearch·搜索引擎·全文检索·es
Henry-SAP7 小时前
SAP PP模块全景概览
数据库
喜欢吃豆7 小时前
Better Auth 深度解析:从用户认证到企业级身份基础设施
数据库·架构·权限·多租户