SSISDB 系列随笔汇总:

使用工程部署模式(Project Deployment Model),对管理SSIS工程的部署,排除ETL运行过程中出现的异常等问题,很有帮助。开发人员把SSIS工程部署到“Integration Services Catalog”中之后,集成服务引擎把Package的配置数据,ETL执行的情况等都记录在SSISDB数据库中。数据库SSISDB包含两个内置的框架(schema)中:internal和catalog。internal 框架下的数据表、视图等对象是集成服务引擎内部使用的,catalog框架下的数据表,视图等对象是提供给用户使用的。在数据库SSISDB中,用户可以使用TSQL脚本调用和执行package,通过视图查看package的执行情况,根据package的历史消息对package进行故障排除,管理package执行的参数或环境变量等。

一,基本元素

用户可以查看架构catalog下的视图,来监控SSISDB的运行情况。SSISDB数据库的基本构成是:Folder、Project、Package、Parameter和环境(Environment):

  • [catalog].[folders]:用于查看在Integration Services Catalog->SSISDB目录下创建的文件夹(Folder);
  • [catalog].[projects] :用于查看存储在文件夹(Folder)下的SSIS 工程(Project);
  • [catalog].[packages] :用于查看位于SSIS Project下的Package;
  • [catalog].[object_parameters] :用于查看Package或Project的参数,字段object_type=20表示Project参数;字段object_type=30,表示Package参数;
  • [catalog].[execution_parameter_values] :用于查看Package或Project在执行时的参数值;用户在执行package之前,可以修改Package参数的默认值,在Package执行时的参数的值是参数的执行值。
  • [catalog].[environments]、[catalog].[environment_variables]和[catalog].[environment_references] :用于查看环境,环境中的变量,以及环境的引用,环境引用表示Project和Environment之间的映射关系;

在Package执行时,SSISDB会创建一个Operation,Execution,并统计每一个Package中的每一个可执行任务组件(Executable)的执行情况:

  •  [catalog].[operations] :用于查看操作信息,常见的操作类型是:部署工程(deploy_project),执行包(create_execution and start_execution),停止包(stop_operation),维护窗口(Retention window);
  • [catalog].[executions]:用于查看Package的执行情况;
  • [catalog].[executables]:用于查看Package中的可执行任务组件(Executable),Executable 是package的可执行组件,在控制流(Control Flow)选项卡中,是一个Task 或者 Container;
  • [catalog].[executable_statistics] :用于查看可执行任务组件的执行情况;

二,参数

SSISDB中的参数分为默认参数和执行参数,对象参数可以从视图[catalog].[object_parameters] 查看,该视图用于存储所有Package和Project的参数的信息。parameter_name表示参数名称,data_type表示参数的数据类型,必需属性(required)为1,表示在执行package时,该参数必须赋值,敏感属性(sensitive)为1,表示参数值是敏感的,SSIS会隐藏明文,显示为•••;value_set字段为1,表示参数被赋值,如果为0,表示参数未被赋值。

1,使用参数的对象

根据参数的作用域,可以把参数分为Package参数和Project参数,字段object_type=20表示Project级别的参数;字段object_type=30,表示Package级别的参数,

字段object_name是对象的名称,如果字段object_type=20表示Project名称;字段object_type=30,表示Package名称。

还有一种特殊的对象,它的object_type为50,配置相应的参数,能够改变Package在执行时的特殊行为。

2,参数值

参数有三类值: design_default_value,default_value, 和 execution_value,设置时的默认值(design_default_value)是指在VS中设计Package时为参数指定的值;默认值(default_value)是指Package部署到SSIS中为参数设置的默认值;如果没有修改参数的默认值,那么默认值就是设计时的默认值。执行时(execution_value)是指Package在运行时为参数设置的值。由于在执行package时,可以选择设置参数的Value,或选择使用默认值,所以执行值是Package在某一次执行(Execution)时所使用的值。

3,参数值的类型

字段 value_type 表示参数值的类型,如果value_type 为V,表示参数值就是default_value 或 execution_value字段的字面值,如果value_type 为R,表示参数的值是引用环境中的变量的值。

字段referenced_variable_name 是引用的环境的名称。

4,特殊参数的值

通过catalog.execution_parameter_values查看Package的执行参数,当object_type为50时,可以为package配置特殊的参数:

  • LOGGING_LEVEL
  • DUMP_ON_ERROR
  • DUMP_ON_EVENT
  • DUMP_EVENT_CODE
  • CALLER_INFO
  • SYNCHRONIZED

这些参数会影响Package运行的行为,例如 LOGGING_LEVEL会影响Package运行时,系统记录Package的日志级别。

三,配置SSIS维护代理(Agent)的属性

SSIS引擎使用Agent来维护SSISDB记录的数据,用户可以使用视图 [catalog].[catalog_properties] 查看代理的配置信息:

  • ENCRYPTION_ALGORITHM:加密算法的名称
  • MAX_PROJECT_VERSIONS:每个工程保持的最大版本数量
  • OPERATION_CLEANUP_ENABLED:周期性地删除旧版本
  • RETENTION_WINDOW:保持窗口
  • SCHEMA_BUILD:
  • SCHEMA_VERSION:
  • SERVER_CUSTOMIZED_LOGGING_LEVEL:
  • SERVER_LOGGING_LEVEL:服务器级别的日志级别
  • SERVER_OPERATION_ENCRYPTION_LEVEL:
  • VERSION_CLEANUP_ENABLED:启用版本清除功能

SSIS引擎会追踪对Package操作的历史记录和消息,包括Package的执行情况,工程的部署,以及执行的消息等,为了维护操作数据的size,SSIS创建了一个维护Job,叫做“SSIS Server Maintenance Job”,这个Agent Job在Integration Services安装时创建。SSIS通过该Job删除旧版本的Project,Package的操作记录和事件产生的消息。

四,部署版本的控制

在每次每次工程部署SSIS时,集成服务引擎都会记录工程的版本,用户可以通过SSISDB查看部署的版本,并可以根据需要切换到老的版本。用户可以通过“版本历史”查看部署的版本,或者查询视图catalog.object_versions 查看部署的历史版本。

1,通过Integration Services Catalogs来查看

打开SSISDB-》Projects,查看指定project的version history,这种方式查看Deployed Time 比较慢

2,当前版本

查询SSISDB的表projects,查看最后一次部署的时间

select
f.name as foler_name,
--p.project_id,
p.name as project_name,
p.deployed_by_name,
p.last_deployed_time
from catalog.projects p
inner join catalog.folders f
on p.folder_id=f.folder_id

3,查看部署的历史版本

通过查看SSISDB的表catalog.object_versions,查看部署的历史版本

select
f.name as foler_name,
p.project_id,
p.name as project_name,
ov.created_by as deployed_by,
ov.created_time as deployed_at
from catalog.object_versions ov
inner join catalog.projects p
on ov.object_id=p.project_id
inner join catalog.folders f
on p.folder_id=f.folder_id
where ov.object_type=20 --object type: 20 project
and p.project_id=8
order by deployed_at desc

参考文档:

SSIS Catalog

Views (Integration Services Catalog)

SSISDB1:使用SSISDB管理Package的更多相关文章

  1. SSISDB1:使用SSISDB管理SSIS Projects

    使用Project Deployment Model,将SSIS Project部署到Integration Services Catalog之后,SSISDB负责管理SSIS Project.在SS ...

  2. Lua如何管理”package”

    Lua如何管理"package" 方式一: 私有方法和变量都需要显式定义为local类型的,这很容易造成错误.一旦不小心漏写,就又将方法定义为全局的了. "package ...

  3. 解决Sublime包管理package control 报错 There are no packages available for installation

    解决Sublime包管理package control 报错 There are no packages available for installation 真的是哔了狗了,要不是我机智的重新安装了 ...

  4. 永久解决Sublime包管理package control 打开install package报错 There are no packages available for installation

    很多用户在使用sumblime安装插件的时候,打开package control的install package会出现报错:There are no packages available for in ...

  5. SSISDB8:查看SSISDB记录Package执行的消息

    在执行Package时,SSISDB都会创建唯一的OperationID 和 ExecutionID,标识对package执行的操作和执行实例(Execution Instance),并记录opera ...

  6. Sublime Text 3 安装插件管理 Package Control

    自动安装: 1.通过快捷键 ctrl+` 或者 View > Show Console 菜单打开控制台 2.粘贴对应版本的代码后回车安装 适用于 Sublime Text 3: import   ...

  7. SSISDB8:使用SSISDB记录的消息Troubleshoot packages

    在执行Package时,SSISDB都会创建唯一的OperationID 和 ExecutionID,标识对package执行的操作和执行实例(Execution Instance),并记录opera ...

  8. SSISDB7:查看当前正在运行的Package

    在项目组中做ETL开发时,经常会被问到:“现在ETL跑到哪一个Package了?” 为了缩短ETL运行的时间,在ETL的设计上,经常会使用并发执行模式:Task 并发执行,Package并发执行.对于 ...

  9. SSISDB2:使用TSQL执行Package

    在SSISDB中,能够使用TSQL脚本执行Package:每执行一次Package,SSIS都会创建一个Operation 和一个执行实例(Execution Instance),每个Executio ...

随机推荐

  1. ELK搭建实时日志分析平台之一ElasticSearch搭建

    文:铁乐与猫 系统:CentOS Linux release 7.3.1611 (Core) 注:我这里为测试和实验方便,ELK整套都装在同一台服务器环境中了,生产环境的话,可以分开搭建在不同的服务器 ...

  2. C++ 读书笔记1

    c++ 笔记1 body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding ...

  3. spring-boot-jpa 自定义查询工具类

    1.pom文件中添加如下配置 <dependency> <groupId>org.springframework.boot</groupId> <artifa ...

  4. RSA算法知识

    摘自http://www.cfca.com.cn/zhishi/wz-012.htm RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它.但是有不少新来的同事对它不太了解,恰好看到一 ...

  5. 关于移动端APP开发-字体样式变大问题

    前两天在写App项目的时候发现一个问题,就是明明css写的样式是14px,刚开始在页面显示时并未出现问题,可是内容一多,字体突然变大了. what?,不明所以,在各大网站上找了好久才知道是浏览器的字体 ...

  6. gitlab+jenkins环境搭建.md

    gitlab+jenkins自动化部署环境搭建 环境说明 系统 主机 IP 安装软件 CentOS 7 study-1 192.168.100.51 gitlab.git CentOS 7 study ...

  7. 怎样批量提取JPG照片的文件名

    用批处理做吧, @echo off dir /a-d /b >./list.txt 把上面两句代码用记事本保存为“list.bat”(不要引号) 然后把这个文件放到你要提取文件名的文件夹里,就是 ...

  8. java web开发环境配置系列(二)安装tomcat

    在今天,读书有时是件“麻烦”事.它需要你付出时间,付出精力,还要付出一份心境.--仅以<java web开发环境配置系列>来祭奠那逝去的…… 1.下载tomcat压缩包,进入官网http: ...

  9. Sequelize-nodejs-9-Scopes

    Scopes作用域 Scoping allows you to define commonly used queries that you can easily use later. Scopes c ...

  10. Python 日志输出

    昨天的任务是需要记录各操作的性能数据,所以需要用这种格式来输出日志:{"adb_start_time": 1480040663, "tag_name": &qu ...