数据仓库之SSIS开发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据仓库之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" 是变量.

 

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

 

以上是关于数据仓库之SSIS开发的主要内容,如果未能解决你的问题,请参考以下文章

FocusBI:《DW/BI项目管理》之SSIS执行情况

SSIS 暂存截断仓库

为啥我们需要 SSIS 和数据仓库的星型模式?

在 SSIS 中的数据仓库中填充事实表的技术

数据仓库之建立多维数据库

SSIS包中的错误将数据加载到azure数据仓库中