FTP任务允许你通过FTP来接收和传送文件。在SQL Server 2000中只能通过它来接收文件。在SSIS中对它进行了大量的改进。可以接收,删除本地或者远程服务器上的文件。也可以在本地或远程服务器上创建文件。
在FTP任务编辑页面上可以通过FTP Connection Manager设置FTP站点链接信息。如果没有设置连接,可以选择New Connection来新建一个连接。FTP Connection Manager的界面和OLE DB Connection Managers有一些不同,如图3-9。Server Name选项设置FTP地址,大多数FTP服务的端口都是21。另外一个重要的设置是使用被动模式Use Passive Mode,如果你要连接的服务器是被动交互,必须设置这个选项。在SQL Server 2000中没有这个选项。
图3-9
设置好连接之后,在File Transfer标签页面有几个需要注意的地方,如图3-10。这里的选择项和文件系统任务有些类似。IsRemotePathVariable属性和IsLocalPathVariable允许通过变量来设置,RemotePath属性设置需要进行操作的远程操作的远程文件的路径 ,LocalPath属性选项是设置一个需要通过FTP接收和传送文件的Connection Manager。OverwriteFileAtDestination属性设置在目的端地址如果有文件或文件夹冲突是否要覆盖。像其他FTP客户端一样,可以通过IsTransferAscii选项设置是否使用ASCII格式来读写文件。最重要的属性是Operation来设置要进行什么类型的操作。
图3-10
使用文件系统任务和FTP任务
下面讲解一个具体的例子。这个例子将会从一个ftp中的文件拷贝到本地文件夹中。如果不存在创建一个文件夹C:\SSISDemos\Archive。在SSIS项目中创建一个package取名FileCopy.dtsx。从工具栏中拖一个FTP任务到设计面板中。双击这个FTP任务打开边界界面,如图3-11。命名为FTP a File,并填写描述。在FTPConnection栏中选择<New connection…>,打开FTP连接编辑界面。在Server Name中输入ftp.microsoft.com,点击Test Connection按钮,点击OK回到编辑界面。
图3-11
打开File Transfer界面,输入/bussys/readme.txt。也可以点击省略号直接选择文件。如果是本地地址选项,选择<New connection…>打开文件链接管理器。选择已经存在的文件夹路径并且输入C:\SSISDemos
在Opertion栏下的Operation选择项里面选择Receive Files。OverwriteFileAtDest选择项里选择true,点击OK退出编辑页面如图3-12。
图3-12
点击允许可以进行下载得到文件。在真实的生产环境会下载文件,下载到SQL Server,然后归档,在第五章中可以看到一个完整的例子。使用文件任务将文件拷贝到一个目的目录下。在工具箱中拖放一个文件系统任务在Control Flow面板中。
双击打开编辑界面,在DestinationConnection下拉选择项中选择<New connection…>,打开文件链接系统编辑界面,在usage type选择项中输入已存在的文件夹路径C:\SSISDemos\ Archive。点击OK回到编辑界面。设置OverwriteDestination选项为true。
在Option选择项中选择Archive File,在description选择项中输入你想要的描述。Operation选择项设置为Copy File。IsSourcePathVariable选择项设置为true,在SourceVariable下拉选择项中选择<New variable…>,这样打开添加变量对话框。在value栏内输入C:\SSISDemos\Readme.txt,如图3-13
图3-13
点击OK回到编辑界面。变量的值将会协回到SourceVariable的列表框内。现在配置完成如图3-14.点击OK回到编辑界面内。
在Control Flow面板内,使用顺序约束将FTP文件任务和文件系统任务连接起来。执行package,最终的结果如图3-14,执行成功之后点击stop,在C:\SSISDemos\路径下的文件Readme.txt将会拷贝到C:\SSISDemos\Archive路径下。
图3-14