AWS DMS数据导入Azure Databricks:增量加载脚本报错求助
解决方案:解决
bronze.mydb.delete_records表/视图不存在的问题 1. 先确认DMS输出结构
AWS DMS导出CSV时,默认不会自动生成delete_records相关文件/表,只有当你在DMS任务中配置了CDC(变更数据捕获)并启用「导出删除记录」选项时,才会生成对应删除事件的文件。
- 登录AWS S3控制台,检查目标桶路径下是否存在
mydb/delete_records/目录及对应CSV文件 - 如果没有该目录,说明DMS未配置导出删除事件,需根据业务需求选择:要么修改DMS配置生成删除记录,要么直接跳过删除逻辑的处理
2. 手动初始化缺失的表(如需处理删除记录)
如果业务需要同步删除操作,先手动创建匹配DMS输出结构的bronze.mydb.delete_records表:
CREATE TABLE IF NOT EXISTS bronze.mydb.delete_records ( -- 替换为DMS输出的删除记录CSV实际字段,比如主键、变更时间、操作类型等 primary_key_col STRING, change_ts TIMESTAMP, op_type STRING ) USING CSV OPTIONS ( path 's3://your-bucket-path/mydb/delete_records/', header 'true', inferSchema 'false' );
若不确定字段结构,可先临时加载CSV查看:
df = spark.read.csv('s3://your-bucket-path/mydb/delete_records/*.csv', header=True, inferSchema=True) df.printSchema()
3. 调整增量更新脚本(无需处理删除记录时)
如果业务不需要同步删除操作,直接修改你的增量脚本:
- 删除所有读取
bronze.mydb.delete_records的代码块 - 移除基于该表删除目标表数据的逻辑
4. 修正DMS CDC配置(如需捕获删除事件)
若需要同步删除操作,登录AWS DMS控制台修改任务:
- 编辑目标任务,在「CDC配置」中勾选「导出删除记录」
- 确保目标设置中,删除事件被输出到
delete_records对应的路径/表 - 重启DMS任务生成删除记录文件
5. 验证流程
完成上述调整后,先执行一次全量初始加载,再触发增量更新,确认错误是否消失。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

