大文件,SSIS到小块,并行丰富

时间:2015-03-11 15:55:41

标签: sql-server ssis bids ssis-2012

我有一个非常大的文件,10GB的大小需要将记录加载到DB中, 我想要另外两列

  1. LoadId是一个常量(这表示文件唯一的加载号)
  2. ChunkNumber,表示批量大小的块。
  3. 因此,如果我的批量大小为10,000个记录,我想要

    1. LoadId = {GUID}
    2. ChunkNumber = 1
    3. 我想要的下一个10,000条记录

      1. LoadId = {GUID}
      2. ChunkNumber = 2
      3. 这在SSIS中是否可行?我想我可以为此编写一个自定义组件,但是如果我可以使用,那么应该有一个内置ID,因为SSIS已经在批量运行10,000个大小的东西

        有人可以帮我弄清楚这个参数是否存在并可以使用吗?

        关于什么和为什么的背景,请稍微详细一点。

        我们将数据放入10,000条记录中,然后我们可以开始调用存储过程来丰富数据块,我想要做的就是SSIS可以通过放置一个Chunk编号和一个Guid < / p>

        这有助于存储的proc以块的形式移动数据,虽然我可以在行号之后执行此操作,Select必须再次遍历整个集合并更新块号。这是双重努力。 GUID将表示完整的数据集,并且各个块与其相关。

        更多洞察力。有一个WorkingTable我们导入这个大文件,如果我们开始丰富所有数据,事务日志将用完,如果我们可以将数据分成块,那么它更易于管理,因此事务日志不会爆炸,我们也可以平行浓缩过程。

        数据从此处转移到非规范化格式规范化格式。 SP在今天的发布和管理方面更易于维护,所以任何帮助都会受到赞赏。

        或者还有其他更好的方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

对于LoadID,您可以使用SSIS变量

System::ExecutionInstanceGUID

是程序包运行时由SSIS生成的。