SSIS包设计,其中第三方数据替换现有数据
我在过去创建了许多SSIS包,尽管对这个包的需求与我所写的其他包有所不同 以下是业务需求的快速描述: 我们有一个来自第三方供应商的小型数据库,需要每晚覆盖。SSIS包设计,其中第三方数据替换现有数据,ssis,Ssis,我在过去创建了许多SSIS包,尽管对这个包的需求与我所写的其他包有所不同 以下是业务需求的快速描述: 我们有一个来自第三方供应商的小型数据库,需要每晚覆盖。 此数据的来源是来自第三方供应商的一组平面文件(CSV) 当前设置:我们截断此数据库的表,然后通过SSI从文件中插入新数据 问题:有时文件无法到达,结果是我们截断了旧数据,尽管我们没有新的数据集。这使得我们没有一个数据库,在那里我们更希望有昨天的数据,而不是根本没有数据 理想的解决方案:在截断当前数据之前,我希望使用某种机制来查看新数据(这些
此数据的来源是来自第三方供应商的一组平面文件(CSV) 当前设置:我们截断此数据库的表,然后通过SSI从文件中插入新数据 问题:有时文件无法到达,结果是我们截断了旧数据,尽管我们没有新的数据集。这使得我们没有一个数据库,在那里我们更希望有昨天的数据,而不是根本没有数据 理想的解决方案:在截断当前数据之前,我希望使用某种机制来查看新数据(这些文件)是否确实存在 我尝试的内容:我尝试从文件中捕获数据并将其添加到ADO记录集中,并且仅当此部分成功时才继续。这似乎对我不起作用,因为我在一个数据流中有所有的数据捕获活动,我看不到重用这些数据的方法。这样做,让内存中的表就坐在那里,对我来说似乎是浪费资源 在类似的情况下你做了什么
我环顾四周,发现其他一些人也在为同样的问题苦苦挣扎,尽管他们都没有一个非常优雅的解决方案,我也没有
我最后做的是创建一个到每个感兴趣文件的平面文件连接,并有一个任务计数记录并保存到一个变量。如果文件不存在,则包将失败,此时您可以停止执行。有一些文件的实际计数对我来说很有趣,尽管在大多数情况下,我不在乎。如果你不在乎计数是多少,你可以继续循环使用相同的变量;这将减少您端变量的创建(我需要31个)。为了保留资源(读取:减少包执行时间),我排除了每个数据源中除一列以外的所有列;它带来了巨大的不同。不幸的是,Powershell不是我的选择,因为它不会听说它。