SSIS 设计简介
1.选择Business Intelligence Project 之Integration Servers Project
2.右键单击新建数据源
3.新建SSIS包
4.右键单击“连接管理器”空白处,选择“从数据源新建连接”。
5.把所需要的数据源选中(按Ctrl键可多选),单击“确定”。
6.从工具箱中拖拽控件到右边窗体中
7.双击控件进行编辑
7-1编辑“执行SQL任务”
l 在Connection右边选择要连接的DB(此处DB来自于所建的数据源连接)。
l 在SQLStatement右边单击
l 修改Name和Description。
7-2编辑“数据流”
双击“数据流”控件后,后调到数据流操作界面,如下:
添加OLE DB源数据和OLE DB目标数据流。
l 双击OLE DB源数据,进行编辑。
l 在OLE DB连接管理器中选择Connection.
l “数据访问模式”选择SQL命令
l 编辑SQL命令(红色框)。
双击OLE DB目标数据流,进行编辑。
l 在OLE DB连接管理器中选择对应QSMS Server DB。
l “数据访问模式”选择表或视图-快速加载
l 选择要导入数据的表。
点击“映射”,对于列名一样的列,系统会自动对应起来,列明不一致的需要手动选择(例如红色框中的TotalQty和Qty对应就需要手动选择)。
8.拖拽绿色箭头到对应执行下一步操作的控件上。
9.双击绿色箭头选择成功约束还是失败约束执行下一步。
10.设定Package 公用密码
10-1.属性中ProtectionLevel选择EncryptAllWithPassword。
10-2.点击右边的按钮输入密码
11.创建Job执行SSIS
l 将生成的<Package filename>.dtsx文件拷贝到Server上。
Eg.
l 双击该文件,会调用DtExecUI.exe打开. 选择“命令行”,复制命令行
方式1.在SQLAgent Job中用xp_cmdshell呼叫dtexec.exe来执行SSIS Package:
declare @str varchar(8000)
set @str='dtexec /FILE "D:\SSISPackage\NB1TransferFUJIDID.dtsx" /DECRYPT qms**** /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING EWCDI'
exec master..xp_cmdshell @str
方式2.在Windows Schedule Job中用batch檔呼叫dtexec.exe来执行SSIS Package:
在<filename>.bat中内容为:
dtexec /FILE "D:\SSISPackage\NB1TransferFUJIDID.dtsx" /DECRYPT qms**** /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING EWCDI
exec master..xp_cmdshell @str
注意其中红色部分/DECRYPT qms****是需要手动添加的。
12..若OLE DB的Source是stored procedure
Stored procedure 中有用到temp table, SSIS可能会抓不到output column
Solution: Exec stored procedure 之前, 加上SET FMTONLY OFF
13. 記錄SSIS 執行狀況
13-1. Log會記錄在sysdtslog90 table中; 參考MSDB.dbo.sysdtslog90, create sysdtslog90在別的DB.
13-2.選SSIS->Logging
2.選擇 Connection |
1.選擇SSIS log provider for SQL Server |
13-2. 選擇要記錄的事件, 通常記OnError