Amm*_*arR 5 data-warehouse sql-server etl ssis design-pattern
我每天有 2 种类型的表来填充数据仓库,查找表或配置表只有 100 条记录,这很容易,我只需截断和重新填充表。
但是对于有很多记录的事务表,我通常会递增,即我每天运行 ETL 以添加昨天的记录。
我有两个我总是面临的问题
现在我正在尝试设计一种方法来解决这两个问题,并尝试以这样一种方式开发 ETL,以便在发生任何这些事件时它可以自动修复它。
我希望它检查是否缺少天数并运行该天的 ETL,并检查是否有重复项并删除它们。
以下是我认为的方法 1. 我在过去 5 天里不管,ETL 运行的每一天,删除过去 5 天并重新填充。2.我检查目标表是否在上个月缺少日期,然后我用缺少的天数查询源。
请记住,源是生产环境中的一个巨大表,我必须在从它请求时最大限度地优化我的查询。
谢谢
您能否向数据仓库添加一个额外的表,用于维护导入的事务表?
维护表可以这样称呼:
ImportJob
ImportID (primary key)
TransactionDate
Run Code Online (Sandbox Code Playgroud)
将 ImportID 列添加到事务表中,并在加载数据时设置它。
导入表将有一条记录记录每天导入的交易量。TransactionDate 的唯一约束将防止重新加载数据两次。如果导入失败,您还可以通过原子性快速删除事务。您可以一次查询生产表中一天的数据并填写任何缺失的日期。