SSIS平面文件连接器不工作
我在设置的每个平面文件连接器上都出现以下错误。平面文件连接器是在数据流任务中从ADO.NET设置的 数据流任务[Flat File Destination 11[1230]]出错:数字 平面文件目标11的输入列数。输入[平面文件 目标输入]不能为零 数据流任务[SSIS.Pipeline]出错:“平面文件目标11” 验证失败并返回验证状态“VS_IsBreak” 数据流任务[SSIS.Pipeline]出错:一个或多个组件失败 验证 数据流任务出错:任务验证期间出错 我已验证输入中是否有列,如下所示: 我的眼睛看起来像 元数据看起来很合适 列映射SSIS平面文件连接器不工作,ssis,Ssis,我在设置的每个平面文件连接器上都出现以下错误。平面文件连接器是在数据流任务中从ADO.NET设置的 数据流任务[Flat File Destination 11[1230]]出错:数字 平面文件目标11的输入列数。输入[平面文件 目标输入]不能为零 数据流任务[SSIS.Pipeline]出错:“平面文件目标11” 验证失败并返回验证状态“VS_IsBreak” 数据流任务[SSIS.Pipeline]出错:一个或多个组件失败 验证 数据流任务出错:任务验证期间出错 我已验证输入中是否有列,如下
不要像这样构建数据流。它们需要一段时间来验证(组件一个接一个地得到验证),并且您将获得有限数量的并行运行,因为它们都在相同的数据流中。如果所有这些源都访问同一个DB,您也可能会遇到锁定问题-请参阅 如果您已确认所有平面文件目标都已映射其输入列,并且仍然出现此错误,则可能是SSIS数据流的源/目标映射太多,无法正确处理/验证。您可能想尝试下面的一种设计方案 可管理性与性能 当您处理这么多目的地时,我推荐一种可管理的方法。如果每个源->目标映射的元数据都相同,则可以使用单个数据流执行此ETL
如果你觉得<强>性能比可管理性更重要,并且你想给你的场景添加更多的并行性,那么你可以考虑一些不同的事情。您采取的方法将取决于这些源查询的不同程度,以及您是希望在DB级别还是在SSIS数据流中进行计算。有很多方法可以做到这一点-这里有一些事情要记住
- 使用多个数据流任务可以实现更多的并行性,并且通常比在单个数据流中使用多个源的性能更好。在数据流中使用多个源的唯一时间是在合并/连接行时(并且连接不能在源查询中完成)
- 如果所需的所有数据都可以放入单个源查询中,请使用单个源组件和条件拆分转换将行发送到相应的目标
- 如果您需要在多条路径下使用相同的行,请使用多播转换
- 您可以使用聚合转换计算总和/计数,但将其推送到源查询会更快