动态的,表驱动的SSIS数据流任务

时间:2014-11-22 00:13:34

标签: sql-server ssis

我正在尝试将一组继承的SSIS包合并到一个表驱动的包中,但是我在设计时需要映射输入和输出时遇到了问题。

问题:

每天,我们需要将~40个表从生产服务器复制到其他几个生产服务器和几个开发/测试服务器。目标表和目标表在名称和结构上始终相同。这里的目的是每次都运行相同的包,并通过更改它的驱动配置表来控制其行为。

另外,值得注意的是,在任何给定时间,一个服务器可能不希望填充Table#n,并且我希望能够在配置表中关闭该特定表。

示例流程

Prod1 \ DB \ Table1需要发送到Prod2 \ DB \ Table1,Prod3 \ DB \ Table1,Dev1 \ DB \ Table1和Test1 \ DB \ Table1。

Prod1 \ DB \ Table2需要发送到Prod2 \ DB \ Table2,Prod3 \ DB \ Table2,Dev1 \ DB \ Table2和Test1 \ DB \ Table2。

等......到〜表40。

**进展:**

到目前为止,我迄今为止开发的软件包如下:

  1. 使用具有活动表传输的服务器的配置表查询server \ database。
  2. 将此服务器列表传递给Foreach循环容器。
  3. 对于每个服务器,构建连接字符串并查询配置表以获取要填充的表的结果集。
  4. 将结果集传递给另一个Foreach容器。
  5. 对于每个表,构建要在数据流任务的源组件中使用的查询。
  6. 使用查询,存储在变量中作为数据源。
  7. 使用dbTable变量将目标指向正确的表。
  8. 这就是我遇到困难的地方,即使我知道不同的服务器\ databases \ tables表之间的表格总是相同的,我也无法绕过输入/输出列。

    问题:

    1. 有没有办法绕过我将要移动/使用的特定表/数据流任务的输入/输出列的映射,因为有这么多的表,并且某些表可能会被关闭给定的服务器在任何一天?
    2. 除了在运行时编写程序包之外,有没有人有更好的设计理念?我有能力写这篇文章,但我们的团队此时真的无法节省资源。
    3. 使用计划的备份和部署作业而不是SSIS包可以更好地解决此问题吗?
    4. 如果我通过这篇文章打破任何礼仪,我道歉,请告诉我,我会尽力解决,感谢您对此事的任何想法!

0 个答案:

没有答案