0

我有一个自定义源数据流组件,其 O/P 每次都会不同,我需要将这些记录插入到目标表中。

问题:- 无法在设计时为目标组件指定输入列。就像每次调用 DataFlow 任务时一样,源组件将根据表模式返回不同的 O/P 列。

所需的解决方案:- 如何在目标数据流组件(通过任何现有组件或自定义组件)中没有任何映射的情况下接受任何可用的输入?

4

3 回答 3

0

数据流的固定结构用于数据验证和优化目的。它的所有组件都将具有固定的输入和输出列。我建议以下可能性:

  • 为每个可能的模式编写数据流。可能存在有限数量的可能性。您可以通过使用可以为您生成包结构的 BIML 来减少此任务的工作量。这也可能引入并行加载的可能性。
  • 使用脚本任务而不是数据流。在脚本任务中,将每个输入的行写入表中。

于 2016-05-17T12:42:46.170 回答
0

如果您需要将多个输入传递给单个脚本组件,我知道的唯一方法是将多个输入传递给一个UNION ALL组件,然后将单个输出从脚本传递UNION ALL给脚本。

您必须考虑 UNION ALL 中两个列结构之间的任何差异,如果您需要一种简单的方法来识别行来自哪个原始输入,则可能使用派生列。

于 2016-05-17T13:54:58.997 回答
0

我知道这已经很晚了,但我一直看到这种 UNION ALL 方法并且不喜欢它。

这种方法怎么样。

  1. 将两个数据流运行到它们自己的记录集目的地并保存到 ADO 对象类型的变量中

  2. 创建一个新的数据流并使用脚本源并引入两个 ADO 对象

  3. 使用适配器填充数据表,然后对它们做任何你想做的事情。
于 2019-04-03T19:42:20.887 回答