SSAS/SSIS 定时任务

SSAS/SSIS 定时任务

在浪费了不知道多少时间之后,终于把 SSIS 的定时任务搞定了。事情的起因是几个月前做的两个 SSAS 的多维数据集,按照我个人的理解,多维数据集就是将原有的数据库表转变为带有多个维度、多个层次结构的数据集,一般将这种数据集在 Excel 中以数据透视表的形式呈现出来,它的好处在于可以非常方便的查询和筛选各项数据。但是 SSAS 有个问题,那就是它不会随着数据库表的更新而更新,为了解决这个问题需要使用 SQL Server 的另一项功能:整合服务(SSIS)。

首先是在 Visual Studio 中创建 SSIS 包,SSIS 项目中包含刷新多维数据集的控制流项,具体操作不再赘述,然后将这个包部署到服务器,这一步比较繁琐,可以参考:
https://wenku.baidu.com/view/d16105abdd3383c4bb4cd20c.html

部署完包就可以进入本篇博客的主题了,对于 SSIS 的定时任务,网上最常见的做法是在 MSSMS 中通过 SQL Server 代理来完成这项任务,如下图所示:
![(https://img-blog.csdnimg.cn/20181206181457345.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjkwMjY2OQ==,size_16,color_FFFFFF,t_70)
之前曾尝试过这种做法,不过不知道什么原因,总在新建完作业之后的启动作业那一步卡住。今天本来想着要去解决作业无法启动的问题,结果没想到 SQL Server 代理怎么也无法启动,无奈之下只好放弃这种方法。

下面来说一下我找到的另一种方法,总的来说就是通过系统自带的 DtExecUI 与任务计划程序来定时执行 SSIS 包。下面给出详细步骤:

1. 打开 “执行包实用工具”。
在这里插入图片描述
2. 选择服务器和要执行的包,如果包的部署没有问题,就能看到下面的界面。
在这里插入图片描述
3. 点击 “执行” 之后,如果没出现问题,可以在 “命令行” 选项中看到一条命令。
在这里插入图片描述
这条命令是可以直接在 cmd 中运行的,不过需要在前面加上 “dtexec”。
在这里插入图片描述
有了这条命令就可以设置定时任务了,可以说前面的三步就是为了得到这条命令。

4. 为了更方便地执行这条命令,需要将这条命令做成 bat 批处理文件。做法很简单,将命令复制到一个新建的 txt 文件中,然后保存时加上 .bat 的后缀就可以了。
在这里插入图片描述
5. 打开 “任务计划程序”,点击右侧栏中的 “新建任务”,把上一步得到的 bat 文件放进来,然后设置好触发条件和执行频率之类的参数就大功告成了。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42902669/article/details/84863182