1.从cdc捕获到数据以后, 连接ssis进行执行数据的抽取以及转换工作,把需要的数据导入到数据仓库,
并且做好对应的日志记录表.现在先说一下比较重要的.
选择参数化设置数据连接, 以方便后面的配置.
因为要动态可维护, 这里使用 可执行exe程序进行封装, 然后配置在windows计划任务里面
下面开始写代码
首先引入命名空间 和程序集
using DTS = Microsoft.SqlServer.Dts.Runtime; using Microsoft.SqlServer.Dts.Runtime;
然后开始开发代码
static void Main(string[] args) { //更改SSIS包里面的 变量 string path = @"E:开发测试实例SSIS2012ConSSISConSSISSSISPackegexm_xmbj.dtsx"; DTS.Package dtsPackage = null; DTS.Application dtsApplication = null; dtsApplication = new DTS.Application(); //指定文件路径加载 package dtsPackage = dtsApplication.LoadPackage(path, null); Connections v = dtsPackage.Connections; //获取所有的 数据源连接,包括输入和输出 for (int i = 0; i < v.Count; i++) { if (v[i].Name == "XIANGZX.JGBDB.sa") { //指定数据库连接 v[i].ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=sa123.;Initial Catalog=JGBDB;Data Source=xiangzx"; } } DTS.Variables packageVariables1 = dtsPackage.Variables; packageVariables1["cdc_xm_xmbj"].Value = "exec [opr_].[cdc_xm_xmbjxx] '2016-05-30 00:00:00','2016-05-31 00:00:00'"; //传递参数 DTS.DTSExecResult packageResult = dtsPackage.Execute(); }
特别说一下, 这里 的 Connections v = dtsPackage.Connections; 获取的是 数据库连接配置, 具体的可以查看 dts包文件.
XIANGZX.JGBDB.sa 是数据库连接的名称.
这里对其进行修改.(包里面的是测试环境的,现在要发布到正式环境上)
DTS.Variables packageVariables1 = dtsPackage.Variables; packageVariables1["cdc_xm_xmbj"].Value="";
这里要说一下的是, 这里的 "cdc_xm_xmbj" 是变量.
有了这些以后,就可以实现从 生产库到数据仓库的数据转换.