目前,我们计划为我们加载的每批事实记录一个“batch id”。这样,我们可以在发现问题时退出负载。
我们是否也应该考虑在维度行上跟踪批次 ID?
似乎维度行有不同的规则。如果我们将它们视为缓慢变化的,并使用保留历史的 SCD 算法之一,那么重新加载实际上并没有多大意义。
典型场景。符合尺寸,处理 SCD。加载事实。完毕。
延期。符合尺寸,处理 SCD。加载事实。发现问题。删除这批事实。解决问题。重新加载事实。完毕。
可能的情景。符合尺寸,处理 SCD。加载事实。发现问题。删除这批事实和维度行。解决问题。符合尺寸,处理 SCD。加载事实。完毕。
跟踪尺寸变化似乎没有多大帮助。关于如何最好地处理数据仓库负载的“撤消”或“回滚”的任何指导?
我们的 ETL 工具完全是本地开发的 Python 应用程序。