【问题标题】:Generating several similar SSIS packages (file data source to DB)生成几个类似的SSIS包(文件数据源到DB)
【发布时间】:2012-12-10 21:22:48
【问题描述】:

有没有办法自动生成 SSIS 包?我需要创建很多 SSIS 包,它们只是从一个表中删除数据并从文本文件中导入数据。文件名与表名匹配,列标题在文件的第一行。

更多详细信息:

  • 我正在开展一个项目,在该项目中我必须分离当前耦合的两个系统(一个系统可以直接访问另一个系统的数据库)。修改后,一个系统将通过txt文件提供数据,加载到另一个数据库中。
  • 我们必须使用 SSIS 将数据从文本文件加载到数据库中。
  • 文本文件将以 CSV 格式提供,第一行带有列标题。
  • 两个数据库中的表具有匹配的列名,我们需要做的就是清除表并从文件中加载数据。

我有一百多个不同列数的表。我需要手动创建每个包吗?

【问题讨论】:

  • 如果所有 100 个程序包总是同时运行(例如,一夜之间),您可能有一个包含 100 个步骤的程序包和一个 sp 清除所有 100 个表。

标签: sql-server csv file-io ssis


【解决方案1】:

我熟悉 2 个免费选项。

  • EzAPI 可能是一个好地方,如果你是一个重度 .NET 的商店,或者只是真的想用 API 玩一玩。这种方法允许您控制几乎整个包的生成,但以编码时间为代价。我发现 EzAPI 通常比使用 SSIS 的基本 COM/.NET 库更容易。

  • Biml 是一只有趣的野兽。 Varigence 很乐意向您出售 Mist 的许可证,但这不是必需的。您只需要BIDSHelper,然后浏览BimlScript 并寻找符合您需求的食谱。完成后,单击 BIDSHelper 中的上下文相关菜单按钮并嗖嗖,它会生成包。

【讨论】:

    【解决方案2】:

    我只是使用 vb 完成的,我将表名作为命令参数传递,并使用 vb 生成插入和清除,效果很好......我明天回来时可以尝试挖掘它办公室,但很简单。似乎没有任何其他方式可以说“只需获取 x 并导出它”,“只需获取 y 并将其导入 z”,所以它必须是 vb。实际上想起来我想我实际上使用了一个小的 xml 文件来传递表信息以进行导出,然后从 csv 文件名中确定要导入的表名。需要明确的是,这只是一个包,但它可以动态选择它所做的导入/导出数量。进一步澄清这是 ssis 中的 vb 作为处理步骤

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      相关资源
      最近更新 更多