zoukankan      html  css  js  c++  java
  • BI之路学习笔记2--SSIS/ETL设计练习三:《DB->定期生成excel表》

    上次笔记记到,用sql任务给参数赋值,映射到变量,然后把数据流任务放到序列容器中进行执行,可以定期生成excel,

    现在的问题是:

    在EXCEL目标编辑过程中,必须选定某一个特定的excel目标,这样的话,如果部署到sqlJob中,每次都会在同一个EXCEL中增加记录数,即每次运行都会在同一个EXCEL的相同sheet中写入查询出的记录,

    而我们的要求是:

    每月末运行加载一次SSIS包,每次在特定路径下生成新的excel,命名格式为:XXX-XXXXXX.xlsx的文件,即:'内容-年月日.xlsx’

    经过了解我的解决方案是:

    先决条件:执行一次数据流任务,在特定路径--D:DBTableToExcelak路径--下建立带有查询之后复制列表名表头建立新的template: OriginalExcel.xlsx。它同时也是每次运行查询后写入的excel目

    标,然后复制一份到D:DBTableToExcel路径下,为了4>步将模板拷贝至EXCEL目标位置。

    1>SQL任务:建立一个select语句选择作为新生成的EXCEL需要放置的路径

    SELECT 'D:DBTableToExcelexcel1-' + CONVERT(nchar(8), GETDATE(), 112) + '.xlsx' AS ExcelFileAddress

    2>数据流任务:excel目标,每次都在此excel目标中写入数据,名为:OriginalExcel.xlsx

    3>文件系统任务:重命名文件,其实就是将生成好的bak路径下的sourceConnection即  OriginalExcel.xlsx ->重命名为一份新的文件《自带复制功能》->ExcelFilePath,

    注:如果想多次运行调试执行包,则重命名选项:OverwriteDestination的值要设置为:true

    4>文件系统任务:复制文件,即拷贝模板OriginalExcel.xlsx(D:DBTableToExcel路径下)至  excel目标 的路径位置,文件名不变,即OriginalExcel.xlsx。

    5>循环

    效果如图:

     

    看一个多个序列容器的成品图:

  • 相关阅读:
    使用Git--将本地项目提交到Github
    海量数据处理面试题
    web前后端安全问题
    mysql关键字如何当字段使用
    一个Java项目开发流程(正规级别)
    开发工具idea中撤回代码和恢复撤销代码快捷键
    layui前端使用
    shiro标签
    常见SVN图标的含义
    最常见到的runtime exception 异常
  • 原文地址:https://www.cnblogs.com/ammy714926/p/4810285.html
Copyright © 2011-2022 走看看