数据仓库之SSIS开发

 

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:\开发测试实例\SSIS2012\ConSSIS\ConSSIS\SSISPackege\xm_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" 是变量.

 

有了这些以后,就可以实现从 生产库到数据仓库的数据转换.

 

posted @ 2016-05-31 17:15  兴想事成  阅读(902)  评论(0编辑  收藏  举报