图解SSIS监视文件夹并自动导入数据

来源:互联网 发布:cad手机画图软件 编辑:程序博客网 时间:2024/05/17 10:26
演示案例:让系统自动监视文件夹,并把文件夹下面的excel文件导入到sql中,之后清空目录。这个过程以往都需要写程序来实现或者定时执行,现在可以用ssis来订制任务完成。
 在阅读本文之前,你先要学会如何用ssis来批量导入数据,可以参考我先前的blog文章,这里我们用相同的数据交换背景来演示。http://blog.csdn.net/Johnson_hejun/archive/2008/11/12/3284247.aspx
 
1、建立测试环境,目录为F:/excel 下面保存需要导入的excel文件,F:/excel/upload目录用来让ssis自动监视,当我们上传了一批excel到F:/excel后,可以在F:/excel/upload目录中新建一个空文件,当ssis监视到这个目录有新增文件后就会遍历F:/excel目录依次导入表格。为什么不直接监视F:/excel目录呢?因为要考虑批量上传的问题,所以不可以直接监视数据目录。

2、这里假设你已经学会了ssis的基本使用办法和批量导入excel的方法,不会也不要紧,只需要参考一下http://blog.csdn.net/Johnson_hejun/archive/2008/11/12/3284247.aspx这篇就可以了,我们已这篇文章的成果为基础,增加一个wmi监视任务用来监视文件夹和两个文件系统任务用来处理导入后的文件。如图:

3、wmi监视任务的设置也很简单:


4、其中wmi连接设置:

5、wmi查询语句设置:
SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE TargetInstance ISA "CIM_DirectoryContainsFile" and TargetInstance.GroupComponent= "Win32_Directory.Name=/"f:////excel////upload/""


6、循环内的文件系统任务用来删除已经导入的excel,文件名沿用枚举得到的变量,而操作选择“删除文件”


7、循环外的文件系统任务用来清除监视文件夹里面的那个新增文件


8、这样我们就完成了整个配置,调试一下


9、copy一些excel到f:/excel中,格式沿用上面参考文章中的excel


10、在upload目录中新建一个文本文档


11、快速切换回设计器中,可以看到执行结果


12、整个过程结束,你会发现excle文件已经导入到sql中,并且已导入的文件连同新建的txt文件都已经被删除。这是ssis自动作业的一个简单的例子。

你可以把上面的步骤扔到一个循环容器中让他不停的监视,因为这个过程结束后wmi监视就结束了。
你可以用其他复杂的wmi来实现任务调度,比如监视服务器性能,磁盘空间等。