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

Google Cloud Data Fusion复制时_source_timestamp字段为空求助

Cloud Data Fusion同步MySQL到BigQuery:_source_timestamp字段为空问题

核心原因

_source_timestamp的填充完全依赖MySQL的CDC(变更数据捕获)机制——只有当Data Fusion能从MySQL的二进制日志(binlog)中获取到行变更的原始时间戳时,这个字段才会被赋值。如果你的同步任务是全量快照模式(而非增量CDC同步),或者MySQL的binlog配置不满足CDC要求,就会导致该字段为空。

排查与修复步骤

  • 确认同步模式:检查Data Fusion任务是否启用了CDC模式。全量快照同步只读取当前表数据,没有变更时间戳来源,因此_source_timestamp为空属于预期行为。
  • 检查MySQL binlog配置:确保MySQL实例满足以下条件:
    • 已开启binlog,且格式设置为ROW(必须是行级模式,才能捕获每行的变更时间)
    • expire_logs_days设置足够大,避免binlog在Data Fusion读取前被清理
    • Data Fusion使用的MySQL账号拥有REPLICATION SLAVE和REPLICATION CLIENT权限,能正常读取binlog内容
  • 验证任务配置:在Data Fusion的同步任务设置中,确认CDC相关选项已正确启用,且未手动覆盖元数据字段的赋值逻辑。
  • 测试增量数据:如果首次全量同步阶段字段为空,尝试在源表触发一条更新/插入操作,观察增量同步后_source_timestamp是否被正确填充——全量快照阶段的字段为空是正常现象。

特殊场景处理方案

如果已启用CDC模式但_source_timestamp仍为空,可能是MySQL版本过旧或特殊配置导致binlog未记录变更时间戳,可尝试以下方案:

  • 在MySQL源表中添加自定义的update_time字段(默认值为当前时间,更新时自动刷新),然后在Data Fusion任务中将该字段映射到BigQuery的自定义时间字段,替代_source_timestamp
  • 将MySQL升级到5.7及以上版本,确保binlog能完整记录行变更的时间信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:02:48