You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Azure Data Factory从MySQL摄入数据时遇UInt64类型错误

解决MySQL无符号BigInt到Azure SQL的Copy Activity报错

问题根源

Self-Hosted IR读取MySQL无符号bigint列时,会将其识别为UInt64类型,而Azure SQL的驱动不支持直接处理该类型——哪怕你把目标列设为varchar或decimal,默认的类型转换逻辑不会自动处理这个原始类型,因此报错。

方案1:在Copy Activity列映射中强制转换

直接在Copy Activity的映射环节对id列做类型转换:

  • 打开Copy Activity的「映射」标签
  • 找到id列的映射规则,在源列表达式中使用toString(id)(转字符串,对应目标varchar列)或toDecimal(id)(转十进制,对应目标decimal(20,0)列)
  • 确保目标列类型和转换后的类型完全匹配

方案2:修改MySQL源连接字符串

在MySQL源数据集的连接字符串中添加参数,让驱动自动转换无符号类型:

  • 编辑连接字符串,追加 ;ConvertUnsigned=true
  • 这个参数会让MySQL驱动把无符号bigint转换为有符号bigint,Self-Hosted IR会识别为Int64,可直接和Azure SQL的bigint/decimal/varchar映射

方案3:改用Data Flow处理

如果Copy Activity的映射仍不生效,换用Data Flow:

  • 创建Data Flow,读取MySQL源数据
  • 添加「派生列」转换,对id列执行toString(id)或toDecimal(id)转换
  • 将转换后的数据写入Azure SQL目标表,匹配对应列类型

方案4:修改MySQL源表(若有权限)

如果可以改动源表,移除id列的无符号属性,改为普通bigint。此时Self-Hosted IR会识别为Int64,就能正常完成数据复制

内容的提问来源于stack exchange,提问作者sakis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 00:44:54