2012-08-31 126 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