SSISDB1:使用SSISDB管理Package

简介:

使用工程部署模式(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)

作者悦光阴
本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。
分类: SSISDB
标签: SSISDB







本文转自悦光阴博客园博客,原文链接:http://www.cnblogs.com/ljhdo/p/5160405.html,如需转载请自行联系原作者
目录
相关文章
|
9月前
|
存储 网络协议 Java
java基础 --- java包(package)
java基础 --- java包(package)
87 0
|
10月前
|
前端开发 JavaScript 开发工具
如何使用lerna进行多包(package)管理
如何使用lerna进行多包(package)管理
304 0
如何使用lerna进行多包(package)管理
|
安全 Apache C++
Creating a package:创建一个软件包
Creating a package:创建一个软件包
159 0
|
Unix
ROS学习-创建一个Package包
ROS学习-创建一个Package包
122 0
|
存储 Java 数据安全/隐私保护
java包(package)
1.包的概念 为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。 包的作用 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。 Java使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等✨
73 0
java包(package)
|
开发工具 Android开发
使用外部包(package)
使用外部包(package)
139 0
|
Linux Ubuntu PHP
|
Linux Ubuntu PHP