我目前正在構建ETL系統以從事務性系統加載數據倉庫。我的事實表的顆粒是交易級別。爲了確保我不加載重複行,我在事實表上放置了一個主鍵,這是事務ID。處理數據倉庫加載中的主鍵重複
我遇到了一個交易被顛倒的問題 - 在交易數據庫中,這是通過一個狀態來完成的,我可以在這個狀態下完成交易,或者回滾,這樣我就可以加載一個倉庫中的反轉行。但是,反轉行將具有相同的事務ID,因此我得到主鍵違規。
我已經通過否定主鍵解決了這個問題,因此事務ID 1將是付款,並且事務ID -1(僅在倉庫中)將是逆轉。
我已經考慮過生成BIT列的替代方案,其中0是正常的,1是逆轉,然後使PK成爲交易ID和BIT列。
我的問題是,這是一個很好的做法,並有任何其他人遇到過這樣的事情嗎?作爲參考,這是一個支付處理系統,所以價值不會被修改,所以只會有交易和逆轉。