使用工程部署模式(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,檢視最後一次部署的時間
select3,檢視部署的歷史版本通過檢視ssisdb的表catalog.object_versions,檢視部署的歷史版本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
selectssis catalogf.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
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...