SSIS DailyETL包执行失败,触发FK外键约束错误
解决WideWorldImportersDW中MigrateStagedMovementData的外键约束冲突问题
第一步:定位冲突的日期键
执行以下SQL查询,找出临时表中不存在于日期维度表的Date_Key值:SELECT DISTINCT Date_Key FROM Integration.Staged_Movement WHERE Date_Key NOT IN (SELECT Date_Key FROM Dimension.Date);注意
Date_Key一般是YYYYMMDD格式,可通过CONVERT(date, CAST(Date_Key AS CHAR(8)))转换为日期格式,确认这些日期是否合法。第二步:检查日期维度表的覆盖范围
查询日期维度表的起止日期,确认是否包含上述冲突日期:SELECT MIN(Date) AS Min_Date, MAX(Date) AS Max_Date FROM Dimension.Date;第三步:补充缺失的日期维度记录
如果冲突日期超出了现有维度范围,调用自带存储过程生成对应日期的维度记录:EXEC Dimension.AddDateRange @StartDate = '需要补充的起始日期', @EndDate = '需要补充的结束日期';替换参数为实际的日期范围,确保覆盖所有临时表中缺失的日期。
第四步:重新执行迁移操作
完成维度数据补充后,再次运行迁移存储过程:EXEC Integration.MigrateStagedMovementData;
常见原因说明
这个冲突通常是因为扩展WideWorldImporters生成的业务数据日期,超出了数据仓库日期维度表默认的覆盖范围,重置种子值时未同步更新维度表的日期区间导致的。
内容的提问来源于stack exchange,提问作者Ian
相关产品推荐
相关产品推荐

