• 使用SSIS包调度开发的包


    在项目中,开发完自己的packages之后,需要使用agentjob之类的服务来调度自己的package,当然我们也可以使用一个package来调度这些,下面就是我的一个简单的尝试.

    没有设计得像Agentjob那样复杂,agentjob中的每一个job都包含schedule,然后每一个job有若干个step,每一个step之间还是有依赖关系.

    我的设计很简单,就是使用一个csv文件保存三列值,一列是order,一列是batfilename,第三列是isenabled.

    分别表示执行顺序,batch file的名字,(其实也可以设计成包的路径)和是否执行.

    示例如下:

       

    我暂且就叫它MainFrame,它的基本结构如下:

       

    除了执行之外,我还想获取执行过程中返回的信息,存储到一个文件中去,所以添加了一些变量,另外一个考虑是方便配置.

    Step1.使用一个Dataflowtask读取csv文件的内容到一个recordset.

    Step2.使用foreach loop组件遍历这个Recordset,然后分别进行处理.

    如果isenabled是true,则就是需要执行的batch file.则使用Execute process task执行.

    然后写入返回的结果即可.

    Data flow task的内容如下:

    Execute process task的配置如下:

    最后一个script task的代码基本如下:

    string _errorinfo=Dts.Variables["User::var_outputfile"].Value.ToString();

    string _outputinfo= Dts.Variables["User::var_outputfile"].Value.ToString();

    StringBuilder sbcontent = new StringBuilder();

    sbcontent.Append("outputinfo:");

    sbcontent.Append(_outputinfo);

    sbcontent.Append(Environment.NewLine);

    sbcontent.Append("errorinfo:");

    sbcontent.Append(_errorinfo);

    sbcontent.Append(Environment.NewLine);

    File.AppendAllText(_filename,sbcontent.ToString());

    全部流程没有经过完全的测试,可能需要稍微调整一些内容.

    仅供学习参考.

    我们还可以再添加一些有用的内容,譬如执行完成后发邮件通知等等.这样更方便.

       

       

    Looking for a job working at Home about MSBI
  • 相关阅读:
    Django知识总结(一)
    Django知识总结(二)
    Django知识总结(三)
    机器学习领域主要术语的英文表达
    Python的进程与线程--思维导图
    MySQL数据库--思维导图
    5.18 每日小三练
    5.14 每日小三练
    5.12 每日小三练
    5.9 每日小三练
  • 原文地址:https://www.cnblogs.com/huaxiaoyao/p/3629845.html
Copyright © 2020-2023  润新知