SSISDB1 使用SSISDB管理Package

2021-09-22 06:58:26 字數 3869 閱讀 4644

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

在package執行時,ssisdb會建立乙個operation,execution,並統計每乙個package中的每乙個可執行任務元件(executable)的執**況:

二,引數

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配置特殊的引數:

這些引數會影響package執行的行為,例如 logging_level會影響package執行時,系統記錄package的日誌級別。

三,配置ssis維護**(agent)的屬性

ssis引擎使用agent來維護ssisdb記錄的資料,使用者可以使用檢視 [catalog].[catalog_properties] 檢視**的配置資訊:

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

asfoler_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

asfoler_name,

p.project_id,

p.name

asproject_name,

ov.created_by

asdeployed_by,

ov.created_time

asdeployed_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=

8order

by deployed_at desc

ssis catalog

views (integration services catalog)

作者

悅光陰

分類:

ssisdb

標籤:

ssisdb

SSISDB5 使用TSQL指令碼執行Package

通常情況下,etl工程師建立乙個agent job來周期性地執行package,agent底層呼叫ssisdb的儲存過程 catalog.start execution 以同步模式來啟動執行例項,這就意味著,我們可以模擬agent job的行為,使用tsql指令碼執行package。ssis引擎每執...

使用分割槽 1

使用分割槽 按照oracle 8的分割槽劃分 create table rangepart id number 2 primary key,name varchar2 20 partition by range id partition p1 values less than 10 partitio...

委託使用(1)

這是乙個委託排序的例子 public enum comparsion thefirstcomesfirst 1,thesecondcomesfirst 2 來決定排序的順序 class pair 在下面我建立的兩個類student,dog,都把他們儲存在pair裡面 private t thepai...