微软 BI 系列随笔 - SSIS 2012 基础 - SSIS 目录
上一篇讲解了使用SSIS参数与环境,由于涉及到了SSIS目录的相关知识和概念,本篇将对其进行讲解。
注:在之前的版本中,是使用整合服务服务器下面的运行程序包(Running Packages)文件夹和存储程序包(Stored Packages)文件夹两个节点来管理程序包。
关于SSIS目录
“SSISDB”目录(Integration Services Catalog)是SQL Server 2012新引入的一个功能。它是管理已部署到 Integration Services 服务器的 Integration Services (SSIS) 项目的中心点。 在目录中,可以设置项目和包参数,配置环境以便为包指定运行时值,执行包并对包进行故障排除,以及管理 Integration Services 服务器操作。
SSIS目录结构
完整安装的SSISDB目录结构如下:
图中 1 是SSISDB数据库,他是SSISDB目录的基础。2 是SSISDB目录的文件结构,他是可视化管理目录。
下面分别对SSISDB目录中看到的各层解释,以及找到他在SSISDB数据库中对于的实体。
- SSISDB -- 对应的是整个SSISDB数据库。
- 文件夹(图中EDCSSISProcessing)
文件夹是项目和环境的储存仓库,在部署时通常为每个项目(或一个解决方案)指定一个单独的文件夹。
文件夹对应的是[internal].[folders]表,与之相关的权限在[internal].[folder_permissions]表。
- 项目
项目即是在SSDT(或Visual Studio)中创建的项目。项目是存在与项目的文件夹(Projects)中。在项目的父文件夹,可以实现项目的部署和导入包。
-
- 部署项目是通过Integration Services Deployment Wizard来实现项目部署,参见SSIS 项目部署模型
- 导入包是指通过Integration Services Project Converion Wizard来实现包的部署,这个之后会写一篇文章下讲解。
- 在项目上可以实现配置,验证,移动,管理版本,导出ispac部署文件以及设置项目权限。
- 可以通过选择历史版本,来控制选择包的设计内容,实现无缝的切换(灰常有用)。
- 项目对应的是[internal].[projects]表,与之相关的权限在[internal].[project_permissions],版本在[internal].[object_versions]表。
- 部署项目是通过Integration Services Deployment Wizard来实现项目部署,参见SSIS 项目部署模型
- 环境
环境是SSIS2012中新引入的用于配置包在各个环境的运行时值的容器。在环境文件夹可以添加环境,在环境属性中可以添加环境变量。
环境对应的是[internal].[environments]表,其权限配置在[internal].[environment_references]。
- 包
包是SSIS开发的实际可执行文件。包级别支持配置,执行和验证。
包对应的是[internal].[packages]表,这个表包含了所有的部署过的包已经对应的版本信息。
- 参数
参数是定义在项目级别和包级别的参数,选择项目或者包的配置,可以设置参数的值。
参数对应的是[internal].[object_parameters]表,这个表还包括了连接管理器的参数信息,他的每条记录也是基于不同的版本来的。
- 环境变量
环境变量是配置在每个环境里面的运行时变量。它存在于[internal].[environment_variables]表中。
以上列出了常用的管理单元,还有一些在SSISDB目录中没有列出来但是在SSISDB中存在的表也解释一下
- SSISDB其他表
- [internal].[executables] -- 记录每个版本的包里面的可执行任务
- [internal].[operations] -- 该表记录了SSIS包的操作记录
- [internal].[operation_permissions] --记录的每个操作记录的权限
- [internal].[operation_os_sys_info] --记录每个操作的系统资源使用
- [internal].[operation_messages] --记录每个操作的运行时状态,具体到包里面的各个任务的执行情况
- [internal].[executions] --记录每个SSIS包的执行信息
- [internal].[execution_parameter_values] --记录执行时各个参数的值
- [internal].[executable_statistics] -- 记录每个包里面可执行任务的执行状态
- [internal].[event_messages] -- 记录每个可执行任务的消息代码
- [internal].[event_message_context] -- 记录每个可执行消息的上下文属性
- [internal].[catalog_encryption_keys] -- 记录创建SSISDB时使用的密码和加密的Key值。
总结
本文介绍了SSISDB目录的结构和对应的数据库实体表,可以看出SSIS的整个架构设计。他的这个架构设计堪称完美的将开发,部署与管理紧密的结合在一起。细细看他的每一个细节,从项目到包,到可执行文件,到参数配置,版本控制,运行时日志,执行日志,消息追踪和持久化,在我们平时设计系统时是不是也可以借用一下呢?留给有兴趣的同学思考吧。