2012-08-31 87 views
0

下面的數據流任務是該方案臨時表VS物理表

我有CSV文件,這是我的線人,我加載到物理臨時表,我會在這個臨時表中的數據做轉換一個臨時表在包的後一部分,我需要新的數據(因爲它是從源代碼)

我應該做的轉型,臨時表或我應該再次使用數據流任務重新加載臨時表

數據心不是更多[微笑]剛不到一百萬只

回答

0

這是一個標準模式。

  1. 提取數據(從CSV到temp區)
  2. 轉換數據(清洗,轉換,格式化,加入其他的東西給它,使其與新系統兼容)
  3. 加載的數據(更新/插入/刪除您直播表)

這是對ETL的縮寫來源於 - http://en.wikipedia.org/wiki/Extract,_transform,_load

你已經是主要的優點,在點1你只有1個線程/用戶加載數據,因此可以快速提取數據,然後在第2階段操縱數據而不會在其他表上產生鎖。最後,一旦數據準備就緒,您就可以以最快的方式將其加載到您的實時表中。

你的兩個最大的(常常是競爭對手)關注點是簡單性和速度。簡單性非常好,因爲它涉及的代碼較少,所需的調試次數較少,使您對數據清理更有信心。有時候爲了速度,你不得不犧牲簡單性。

對於你的情況,由於你只加載了幾百萬行,所以我建議你每次重新加載登臺表,這樣每一個負載都使用相同的ETL進程。這使您的ETL機制易於編碼,維護和解釋。

僅供參考 - 如果您使用的是SQL Server,請查看SSIS。

+0

thnks 我在包中使用臨時表,因爲在我的包中有多個其他事物(一個完整的業務過程而不僅僅是ETL)。所以我認爲如果我能找到更好的選擇,最好避免因臨時表而消耗服務器空間(RAM)。所以這個問題。同樣如您所說,可維護性也變得更好 – Ashish