文档首页/ 数据治理中心 DataArts Studio/ 常见问题/ 数据集成(实时作业)/ 在实时集成作业中,作业运行异常报错信息包含关键字“Ddl type 'ALTER_COLUMN_TYPE' is configured with policy 'EXCEPTION”怎么办?
更新时间:2025-11-03 GMT+08:00
分享

在实时集成作业中,作业运行异常报错信息包含关键字“Ddl type 'ALTER_COLUMN_TYPE' is configured with policy 'EXCEPTION”怎么办?

问题描述

在实时集成任务中,源端表进行了修改列DDL变更,作业运行异常,报错关键字“Ddl type 'ALTER_COLUMN_TYPE' is configured with policy 'EXCEPTION'”。

报错信息详情:

Caused by: org.apache.inlong.sort.protocol.ddl.exception.DdlHandleException: migration.10000400: Encountered a DDL error, please resolve the DDL manually. Error stack:
 Ddl type 'ALTER_COLUMN_TYPE' is configured with policy 'EXCEPTION'
. DDL sql: alter table llch96.rds_source_tbl_961 modify col_float varchar(20) default null comment 'float to varchar'
at org.apache.inlong.sort.protocol.ddl.utils.DdlPolicyUtils.processWithDdlPolicy(DdlPolicyUtils.java:34) ~[blob_p-b7cce999877870001e778eb40e09ff21b660374d-4926c44a980abda9eb01b290112cec9b:?]
... 17 more
2025-07-28 18:01:52,457 WARN  org.apache.flink.runtime.taskmanager.Task                    [] - Call stack:
    at java.lang.Thread.getStackTrace(Thread.java:1564)
    at org.apache.flink.runtime.taskmanager.Task.transitionState(Task.java:1139)
    at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:801)
    at org.apache.flink.runtime.taskmanager.Task.run(Task.java:573)
    at java.lang.Thread.run(Thread.java:750)

原因分析

Hudi仅支持新增字段的DDL同步,其他类型的DDL变更将被默认忽略或导致作业失败。用户需要停止作业,并通过Spark SQL来完成Hudi表的相应变更。

解决方案

用户需要手动完字段类型的变更,步骤如下:

  1. 参考如何查看实时作业已消费位点并恢复作业?确认当前作业的同步位点并记录。
  2. 停止作业,参考MRS官网文档在Spark SQL中开启Hudi Schema演进能力,完成Hudi字段类型变更。
  3. 在作业配置界面,查看DDL配置,通过下拉框将“修改列类型”设置为“忽略”,或在Hudi表属性配置中添加“sink.ddl.alter.column.type.policy = ignore”,以在实时作业中忽略源端下发的列修改DDL语句。
  4. 完成DDL配置后提交作业,根据第1步中记录的消费位点启动作业。注意,为避免数据丢失,启动时间可早于记录的位点几分钟。
  5. 作业运行稳定后,可将“修改列类型”配置重置为“报错”,以便感知下一次的源端类型变更操作。

相关文档