记录一次datax同步数据到doris错误[DATA_QUALITY_ERROR]Encountered unqualified data

在使用DataX从MySQL同步数据到Doris时,遇到DATA_QUALITY_ERROR错误,提示遇到了不合格的数据导致同步失败。错误信息中没有提供详细的错误链接,经过排查发现是字段长度超出限制导致的问题。通过逐个字段测试,最终定位并解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用data同步数据,mysql到doris数据库,遇到过没有详细报错的情况,之前一般遇到字段长度或类型转换错误它是有详细错误的一个链接呈现错误原因的,找了很久没找到原因。

错误提示:

[2024-04-10 14:51:38.057][ERROR] >>>> 运行scheduler 模式[standalone]出错.

com.alibaba.datax.common.exception.DataXException: Code:[DBUtilErrorCode-05], Description:[往您配置的写入表中写入数据时失败.]. - java.io.IOException: Failed to flush data to doris.

{"Status":"Fail","Comment":"","BeginTxnTimeMs":1,"Message":"[CANCELLED][DATA_QUALITY_ERROR]Encountered unqualified data, stop processing","NumberUnselectedRows":0,"CommitAndPublishTimeMs":0,"Label":"datax_doris_writer_580a53cc-7fe0-45cc-9142-acac312cdcbc_0","LoadBytes":2455041,"StreamLoadPutTimeMs":6,"NumberTotalRows":0,"WriteDataTimeMs":310,"TxnId":2038723,"LoadTimeMs":319,"TwoPhaseCommit":"false","ReadDataTimeMs":10,"NumberLoadedRows":0,"NumberFilteredRows":0}

at com.alibaba.datax.plugin.writer.doriswriter.DorisWriterEmitter.doStreamLoad(DorisWriterEmitter.java:114)

at com.alibaba.datax.plugin.writer.doriswriter.DorisWriter$Task.flush(DorisWriter.java:123)

at com.alibaba.datax.plugin.writer.doriswriter.DorisWriter$Task.startWrite(DorisWriter.java:113)

at com.alibaba.datax.core.taskgroup.runner.WriterRunner.run(WriterRunner.java:56)

at java.base/java.lang.Thread.run(Thread.java:834)

- java.io.IOException: Failed to flush data to doris.

{"Status":"Fail","Comment":"","BeginTxnTimeMs":1,"Message":"[CANCELLED][DATA_QUALITY_ERROR]Encountered unqualified data, stop processing","NumberUnselectedRows":0,"CommitAndPublishTimeMs":0,"Label":"datax_doris_writer_580a53cc-7fe0-45cc-9142-acac312cdcbc_0","LoadBytes":2455041,"StreamLoadPutTimeMs":6,"NumberTotalRows":0,"WriteDataTimeMs":310,"TxnId":2038723,"LoadTimeMs":319,"TwoPhaseCommit":"false","ReadDataTimeMs":10,"NumberLoadedRows":0,"NumberFilteredRows":0}

at com.alibaba.datax.plugin.writer.doriswriter.DorisWriterEmitter.doStreamLoad(DorisWriterEmitter.java:114)

at com.alibaba.datax.plugin.writer.doriswriter.DorisWriter$Task.flush(DorisWriter.java:123)

at com.alibaba.datax.plugin.writer.doriswriter.DorisWriter$Task.startWrite(DorisWriter.java:113)

at com.alibaba

### 使用 DataX 实现 MySQL 数据同步Doris #### 配置环境需求 为了成功运行 DataX 工具并实现 MySQL 到 Doris数据同步,需满足以下软件依赖条件: - Linux 或 Windows 操作系统 - JDK 版本 1.8 及以上,建议使用 1.8 版本[^3] - Python 2 或者 Python 3 均可支持 - Apache Maven 3.x (仅用于编译 DataX) 对于已经安装好上述环境的操作系统来说,可以直接下载预编译好的 DataX 工具包来简化部署过程。 #### 下载与安装 DataX 可以通过官方提供的链接直接获取最新版的 DataX 工具包。解压后即可获得完整的执行文件及相关文档资料。 #### 准备 MySQL 数据源 确保目标 MySQL 数据库已准备好待迁移的数据表结构以及必要的权限设置。这一步骤通常涉及创建数据库连接字符串、授予适当访问权限给应用程序用户等操作[^1]。 #### 编写 JSON 配置文件 DataX 使用 JSON 文件定义读取端(Reader)、写入端(Writer)以及其他参数配置。下面是一个简单的例子展示如何构建这样的配置文件以完成从 MySQL 向 Doris数据传输任务: ```json { "job": { "content": [ { "reader": { "name": "mysqlreader", "parameter": { "username": "your_mysql_username", "password": "your_password", "column": ["*"], "connection": [{ "jdbcUrl": ["jdbc:mysql://localhost:3306/your_database_name"], "table": ["source_table"] }] } }, "writer": { "name": "doriswriter", "parameter": { "feNodes": ["http://<FE_HOST>:8030/api/_sql?db=your_db&user=your_user&passwd=your_pwd"], "table": "target_table", "columns": ["col1", "col2", ...], "maxRetryTimes": 3, "batchSize": 10000 } } } ], "setting": { "speed": { "channel": 3 } } } } ``` 此配置指定了 `mysqlreader` 和 `doriswriter` 插件分别作为输入输出插件,并设置了相应的连接信息和其他必要选项。注意替换其中的具体值为你自己的实际情况下的相应值。 #### 执行数据同步作业 当一切就绪之后,在命令行界面切换到 DataX 解压缩后的目录下,通过如下指令启动数据同步流程: ```bash python datax.py your_config_file.json ``` 这里假设当前路径存在名为 `datax.py` 的脚本文件和自定义命名的 `.json` 格式的配置文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值