SCD 推断成员重复条目
SCD Inferred member duplicate entry
如何最好地处理这种情况:
- 类别维度 table 包含 "Food" 和 "Drink" 个类别
- 事实记录到达时类别未知,并在类别维度中创建推断成员 "N/A"。
- 我们有一个流程来审查推断的成员,事实证明这是一个错字,这个事实记录的类别应该是 "Food"
可能的操作:
选项 A: 返回源系统并修复类别以匹配现有类别之一。下次 ETL 运行时 - 它会选择现有类别并更新事实 table。更新完成后获取总计 Food 类别包括该事实记录。
维度 table 中的选项 B: 将 CategoryName 字段更新为 "Food" 并保留推断成员。不要在源系统中更正 - 在报告中按类别名称而不是类别键分组。
如果无法在源系统中进行更正 - 处理这种情况的其他选择是什么?
实际上两者都有。
应实施方案 A。因为如果上游检测到拼写错误,如果可能,应该修复它。
但是,选项B触及了一个非常重要的点:报表数据的分组应该在属性上进行,而不是在键上进行。无论有一个还是多个 "Food" 条目,您都应该始终按类别名称而不是类别键进行分组。想想 SCD 类型 II:如果按键分组,那么属于同一维度记录的不同版本的事实将分组在不同的行中,这不是我们通常想要的。
如何最好地处理这种情况:
- 类别维度 table 包含 "Food" 和 "Drink" 个类别
- 事实记录到达时类别未知,并在类别维度中创建推断成员 "N/A"。
- 我们有一个流程来审查推断的成员,事实证明这是一个错字,这个事实记录的类别应该是 "Food"
可能的操作:
选项 A: 返回源系统并修复类别以匹配现有类别之一。下次 ETL 运行时 - 它会选择现有类别并更新事实 table。更新完成后获取总计 Food 类别包括该事实记录。
维度 table 中的选项 B: 将 CategoryName 字段更新为 "Food" 并保留推断成员。不要在源系统中更正 - 在报告中按类别名称而不是类别键分组。
如果无法在源系统中进行更正 - 处理这种情况的其他选择是什么?
实际上两者都有。
应实施方案 A。因为如果上游检测到拼写错误,如果可能,应该修复它。
但是,选项B触及了一个非常重要的点:报表数据的分组应该在属性上进行,而不是在键上进行。无论有一个还是多个 "Food" 条目,您都应该始终按类别名称而不是类别键进行分组。想想 SCD 类型 II:如果按键分组,那么属于同一维度记录的不同版本的事实将分组在不同的行中,这不是我们通常想要的。