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

相关推荐
dazhong201220 分钟前
PLSQL 客户端连接 Oracle 数据库配置
数据库·oracle
正在走向自律1 小时前
阿里云ESC服务器一次性全部迁移到另一个ESC
服务器·阿里云·云计算
了一li2 小时前
Qt中的QProcess与Boost.Interprocess:实现多进程编程
服务器·数据库·qt
码农君莫笑3 小时前
信管通低代码信息管理系统应用平台
linux·数据库·windows·低代码·c#·.net·visual studio
别致的影分身3 小时前
使用C语言连接MySQL
数据库·mysql
OkeyProxy4 小时前
HTTP、HTTPS和SOCKS5代理協議
网络协议·https·云计算·代理服务器·海外ip代理
京东零售技术5 小时前
“慢”增长时代的企业数据体系建设:超越数据中台
数据库
sdaxue.com5 小时前
帝国CMS:如何去掉帝国CMS登录界面的认证码登录
数据库·github·网站·帝国cms·认证码
o(╥﹏╥)6 小时前
linux(ubuntu )卡死怎么强制重启
linux·数据库·ubuntu·系统安全
阿里嘎多学长6 小时前
docker怎么部署高斯数据库
运维·数据库·docker·容器