【问题标题】:SSIS - Extract multiple databases based on lookup tableSSIS - 根据查找表提取多个数据库
【发布时间】:2013-06-26 16:57:40
【问题描述】:

如何创建一个包,该包根据查找表(也在另一台服务器上找到)从另一台服务器中提取多个数据库(以及每个数据库中的所有表),其中包含我需要提取的所有数据库的列上市了吗?

我需要使用查找表,因为不时会在源上创建新数据库,因此我不能只创建一个将数据库“静态集”提取到目标的作业。它需要有点动态......

此外,我还需要增量提取数据库,我可以在其中使用所有数据库/表中存在的时间戳。

我是 SSIS 新手,因此需要一份“简单”的指南。

谢谢

【问题讨论】:

  • 不幸的是,您所要求的并不是一件“容易”的事情。
  • 您能否提供该表的架构和一些示例数据,这些数据描述了需要自动复制的数据库等?时间戳属性怎么样,您能否更详细地描述它应该如何考虑到 ETL 中
  • 但仍然可以使用 SSIS?我可以阅读任何文章等以了解概念和挑战?
  • 明天我会尝试获取更多信息,因为大多数信息都在远程服务器上...
  • 您将遇到的最大障碍是 SSIS 使用数据流的概念将数据从源移动到接收器。该数据流可以提供出色的性能,但代价是必须在包运行之前修复元数据。您不能仅通过更改源表的名称来让 same 数据流拉取 2 列查找表和 100 列客户墓碑表。 SSIS 需要事先知道元数据,以便正确分配内存。

标签: sql ssis lookup extraction


【解决方案1】:

作为一个粗略的想法,您可以使用 SSIS 包配置并从包内执行包,然后使用传输 SQL Server 对象任务:

  • 制作一个“主包”,用于遍历查找表中的列。
  • 对于每个条目,它应该相应地更新您的第二个 SSIS 包的包配置条目。对第二个包使用“SQL Server”配置。
  • 然后主包应该执行第二个包 - 还有一个任务。
  • 第二个包查看其配置以找出从哪个服务器获取数据库并使用传输 SQL Server 对象任务来执行此操作。
  • 然后 Main 包继续查找表中的下一个条目。

理想情况下,您希望将“第二个 SSIS 包”放在 SQL Server 的 MSDB 中,而不是文件系统中。它更容易执行。

【讨论】:

  • 干杯,我会想出我能想到的:)
猜你喜欢
  • 2015-05-10
  • 2023-02-10
  • 2010-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-29
相关资源
最近更新 更多