基于Azure SQL哈希变更用Data Factory映射数据流删Cosmos DB数据失败排查
以下是可能导致删除操作未生效的常见原因及排查方向:
Alter Row删除标记逻辑错误
要确保Alter Row活动中,仅HASH列发生变化的行被标记为Delete。如果判断条件有误(比如错误使用相等判断而非不等判断,或未正确对比HASH的新旧值),会导致没有行被标记为删除状态。需验证过滤逻辑是否精准筛选出HASH变更的目标行。Cosmos DB Sink删除配置未启用
检查Sink的Update method是否设置为Allow insert, update and delete,同时确认Delete behavior选择了符合需求的选项(如Soft delete或Hard delete)。若仅开启插入和更新权限,删除标记不会被执行。分区键与ID匹配问题
尽管配置了分区键为/id,需确保数据流传递的id值与Cosmos DB目标文档的id完全一致(注意大小写敏感)。若SQL表的ID存在大小写、格式(如多余空格)差异,会导致无法匹配到目标文档,删除操作无效果。Cosmos DB权限不足
确认Data Factory连接Cosmos DB使用的服务主体或账户密钥具备Delete权限。若权限不足,删除操作会静默失败,调试过程可能无报错但无实际删除行为。调试模式数据采样限制
调试模式下Data Factory默认仅处理部分数据(如前100行),若HASH变更的行不在采样范围内,将无法观测到删除效果。可尝试关闭数据采样,或调试时指定包含目标行的数据集。Cosmos DB软删除配置干扰
若Cosmos DB容器开启了软删除功能,删除后的文档会进入软删除状态并保留一段时间。通过查询验证结果时,需确认是否过滤了处于软删除状态的文档。
相关参考文档内容
- Azure Data Factory映射数据流Alter Row活动:详细说明删除、更新等操作的标记规则及生效条件。
- Azure Data Factory Cosmos DB Sink配置:涵盖更新方法、分区键设置、删除行为等关键配置项的说明。
- Cosmos DB权限配置:介绍针对Data Factory的访问权限设置要求。
内容的提问来源于stack exchange,提问作者marcos espinola

