我在我设置的每个平面文件连接器上收到以下错误。平面文件连接器是在数据流任务
中从ADO.NET设置的数据流任务错误[平面文件目标11 [1230]]:数字 平面文件目标的输入列.Inputs [平面文件 目标输入]不能为零。
数据流任务[SSIS.Pipeline]出错:“平面文件目标11” 验证失败并返回验证状态“VS_ISBROKEN”。
数据流任务错误[SSIS.Pipeline]:一个或多个组件失败 验证
数据流任务错误:任务验证期间出现错误。
我已经确认输入中有列,如下所示:
我的data flow看起来像
元数据看起来合适
列映射
答案 0 :(得分:9)
不要像这样构建数据流。他们将需要一段时间来验证(组件一个接一个地得到验证),并且您将获得有限数量的并行运行,因为它们都在相同的数据流中。如果所有这些来源都在同一个数据库中,您也可能会遇到锁定问题 - 请参阅Too Many Sources in a Data Flow。
如果您已确认所有平面文件目标都已映射其输入列,并且您仍然收到此错误,那么可能是SSIS数据流处理的源/目标映射太多/验证正确。您可能想尝试以下设计方案之一。
当您使用这么多目的地时,我建议采用可管理的方法。如果每个源的元数据相同 - >目标映射,您可以使用单个数据流执行此ETL。
如果您认为性能比可管理性更重要,并且您希望为您的方案添加更多并行性,那么您可以考虑一些不同的事情。您采用的方法取决于这些源查询的不同,以及您是要在数据库级别还是在SSIS数据流中进行计算。有很多方法可以做到这一点 - 这里有一些要记住的事情。