zoukankan      html  css  js  c++  java
  • SSISDB1:使用SSISDB管理Package

    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)

  • 相关阅读:
    从零开始写自己的PHP框架系列教程[前言]
    从零开始写自己的PHP框架系列教程(二)[App.php]
    Nginx
    常见的CSS
    常用JS代码
    jq常用
    EMMET 的HTM自动生成
    JS的小判断
    ARM寄存器与ATPCS/AAPCS
    关于笔记本电脑随想
  • 原文地址:https://www.cnblogs.com/ljhdo/p/5160405.html
Copyright © 2011-2022 走看看