es升级8.x后,datax同步出现的问题

es升级8.x后,datax同步出现的问题

按照之前的配置,出现报错


经DataX智能分析,该任务最可能的错误原因是:
com.alibaba.datax.common.exception.DataXException: Code:[ESReader-01], Description:[search出错.].  
- 400:{"root_cause":[{"type":"illegal_argument_exception","reason":"request [/liuyan_article_threads_uat_1/_doc/_search] 
contains unrecognized parameters: [scroll], [search_type]"}],
"type":"illegal_argument_exception","reason":"request [/liuyan_article_threads_uat_1/_doc/_search] 
contains unrecognized parameters: [scroll], [search_type]"}

        at com.alibaba.datax.common.exception.DataXException.asDataXException(DataXException.java:26)
        at com.alibaba.datax.plugin.reader.elasticsearch.EsReader$Task.startRead(EsReader.java:152)
        at com.alibaba.datax.core.taskgroup.runner.ReaderRunner.run(ReaderRunner.java:57)
        at java.lang.Thread.run(Thread.java:750)

无奈.
根据报错,把配置中的scroll和search_type 配置删除,依然报错
查询源码发现,reader里面有默认值

将源码中,setScroll,setSearchType的相关代码干掉,可以使用,但是出现问题,全量同步也只能同步10条,设置了size,最多10000条.为什么?经过分析,是searchType的 ‘dfs_query_then_fetch’ 先查询再同步 这个配置优先级更高,正常情况下是先查数量再同步的.

根源是之前用的插件,底层es api是JestClient,很久不更新了.
es8.x之后,官方力推java api…

没奈何.自己重写一下吧…用官方的api.
仔细分析和对比了github上面几个插件,确定了核心修改的部分是EsReader和EsClient.

几天折腾下来,勉强能用了.

https://github.com/ysy2025/datax-elasticsearchreader8x/tree/main
各位大佬多多点赞看下呗.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值