查找轉換的屬性標識數據庫源、PowerCenter 如何處理轉換,以及它如何處理高速緩存和多項匹配。
創建映射時,為每個查找轉換指定屬性。創建會話時,您可在會話屬性中覆蓋某些屬性,如每個轉換的索引和數據高速緩存大小。
選項
|
查找類型
|
說明
|
Lookup SQL Override
|
關系
|
覆蓋默認 SQL 語句以查詢查找表。
指定希望 PowerCenter 用以查詢查找值的 SQL 語句。僅在已啟用查找高速緩存的情況下使用。
|
Lookup Table Name
|
關系
|
指定轉換將查找和高速緩存其值的表的名稱。在第一次創建查找轉換時所顯示的對話框中,您可以通過選擇"導入"按鈕以從其它數據庫導入表、視圖或同義詞。
如果輸入一個查找 SQL 覆蓋,則不需為此選項添加條目。
|
Lookup Caching Enabled
|
平面文件,
關系
|
指明 PowerCenter 是否在會話期間高速緩存查找值。
如果啟用查找高速緩存,PowerCenter 將在會話期間查詢查找源一次,高速緩存值,然后在高速緩存中查找值。這可以提高會話性能。
如果禁用高速緩存,則每當一行傳遞至轉換時,PowerCenter 都將向查找源發出一個選擇語句以查找值。
注:PowerCenter 始終高速緩存平面文件查找。
|
Lookup Policy on Multiple Match
|
平面文件,
關系
|
確定當查找轉換找到多個與查找條件匹配的行時,進行什么操作。您可以選擇從高速緩存或查找源返回的第一行或最后一行,或報告錯誤。
|
Lookup Condition
|
平面文件,
關系
|
顯示在"條件"選項卡中設置的查找條件。
|
Connection Information
|
關系
|
指定包含查找表的數據庫。您可以選擇具體的數據庫連接,也可以使用 $Source 或 $Target 變量。如果您使用其中一個變量,查找表必須駐留在配置會話時所指定的源或目標數據庫中。
如果選擇具體的數據庫連接,則還可以指定數據庫連接的類型。如果連接是應用程序連接,則在連接名稱前面鍵入Application: 。如果連接是關系連接,則在連接名稱前面鍵入Relational: 。
如果不指定數據庫連接類型,則 PowerCenter 不能確定數據庫連接類型時將使會話失敗。
|
Source Type
|
平面文件,
關系
|
指明查找轉換從關系數據庫或平面文件中讀取值。
|
Tracing Level
|
平面文件,
關系
|
設置在運行包含此轉換的會話時會話日志中包含的細節量。
|
Lookup Cache Directory Name
|
平面文件,
關系
|
指定配置查找轉換以高速緩存查找源時用於建立查找高速緩存文件的目錄。同時用於在選定"永久查找"選項時,保存永久查找高速緩存文件。
默認情況下,PowerCenter 使用為其配置的 $PMCacheDir 目錄。
|
Lookup Cache Persistent
|
平面文件,
關系
|
指明 PowerCenter 是否使用永久查找高速緩存(該緩存至少由兩個高速緩存文件組成)。如果查找轉換是為一個永久查找高速緩存而配置的,但該永久查找高速緩存文件卻不存在,則 PowerCenter 將在會話期間創建該文件。僅在已啟用查找高速緩存的情況下使用。
|
Lookup Data Cache Size
|
平面文件,
關系
|
指明 PowerCenter 在內存中分配給數據高速緩存的最大大小。如果 PowerCenter 不能在初始化會話時分配配置的內存量,它將使會話失敗。如果 PowerCenter 無法將所有數據高速緩存數據存儲到內存,PowerCenter 將根據需要借用磁盤。
默認查找數據高速緩存大小為 2,000,000 字節。最小大小為 1,024 字節。如果會話配置的總高速緩存大小為 2 GB(2,147,483,648 字節)或以上,您必須在 64 位 PowerCenter 上運行會話。
僅在已啟用查找高速緩存的情況下使用。
|
Lookup Index Cache Size
|
平面文件,
關系
|
指明 PowerCenter 在內存中分配給索引高速緩存的最大大小。如果 PowerCenter Server 不能在初始化會話時分配配置的內存量,它將使會話失敗。如果 PowerCenter Server 無法將所有索引高速緩存數據存儲到內存,PowerCenter Server 將根據需要借用磁盤。
默認查找索引高速緩存大小為 1,000,000 字節。最小大小為 1,024 字節。如果會話配置的總高速緩存大小為 2 GB(2,147,483,648 字節)或以上,您必須在 64 位 PowerCenter Server 上運行會話。
僅在已啟用查找高速緩存的情況下使用。
|
Dynamic Lookup Cache
|
關系
|
指示使用動態查找高速緩存。當查找高速緩存將行傳遞到目標表時,插入或更新該查找高速緩存中的行。
僅在已啟用查找高速緩存的情況下使用。
|
Output Old Value On Update
|
關系
|
僅在已啟用動態高速緩存的情況下使用。如果啟用此屬性,PowerCenter 將通過查找/輸出端口輸出舊值。PowerCenter 更新高速緩存中的行時,將在基於輸入數據更新行之前,輸出查找高速緩存中存在的值。PowerCenter 在高速緩存中插入行時,將輸出空值。
如果禁用此屬性,PowerCenter 將通過查找/輸出和輸入/輸出端口輸出相同的值。
此屬性在默認情況下被啟用。
|
Cache File Name Prefix
|
平面文件,
關系
|
僅適用於永久查找高速緩存。指定用於永久查找高速緩存文件的文件名前綴。PowerCenter 將該文件名前綴用作它保存到磁盤的永久高速緩存文件的文件名。僅輸入前輟。不要輸入 .idx 或 .dat。
如果存在已命名的高速緩存文件,PowerCenter 將根據這些文件建立內存高速緩存。如果已命名的永久高速緩存文件不存在,則 PowerCenter 將重建永久高速緩存文件。
|
Recache From Lookup Source
|
平面文件,
關系
|
僅在已啟用查找高速緩存的情況下使用。選定后,PowerCenter 將在第一次調用查找轉換實例時,按照查找源重建查找高速緩存。
如果使用永久查找高速緩存,則 PowerCenter 將在使用高速緩存之前,重建永久高速緩存文件。如果不使用永久查找高速緩存,則 PowerCenter 將在使用高速緩存之前,在內存中重建查找高速緩存。
|
Insert Else Update
|
關系
|
僅在已啟用動態高速緩存的情況下使用。應用於進入查找轉換且行類型為insert的行。當選擇此屬性且輸入到查找轉換的行類型為"插入"時,如果該行為新行,則 PowerCenter 將該行插入到高速緩存,如果該行已存在,則更新該行。如果不選擇此屬性,則當輸入到查找轉換的行類型為"插入"時,PowerCenter 僅將新行插入到高速緩存。
|
Update Else Insert
|
關系
|
僅在已啟用動態高速緩存的情況下使用。應用於進入查找轉換且行類型為update的行。當選擇此屬性且輸入到查找轉換的行類型為"更新"時,如果存在該行,PowerCenter 將在高速緩存中更新該行,如果該行為新行,則插入該行。如果不選擇此屬性,則當輸入到查找轉換的行類型為"更新"時,PowerCenter 僅更新高速緩存中的現有行。
|
Datetime Format
|
平面文件
|
如果沒有為查找定義或"端口"選項卡中的特定字段定義日期時間格式,PowerCenter 將使用此處定義的屬性。
您可以輸入任何日期時間格式。默認格式是 MM/DD/YYYY HH24:MI:SS。
|
Thousand Separator
|
平面文件
|
如果沒有為查找定義或"端口"選項卡中的特定字段定義千位分隔符,PowerCenter 將使用此處定義的屬性。
您可以選擇無分隔符、逗號或句點。默認為無分隔符。
|
Decimal Separator
|
平面文件
|
如果沒有為查找定義或"端口"選項卡中的特定字段定義小數點分隔符,PowerCenter 將使用此處定義的屬性。
您可以選擇逗號或句點作為小數分隔符。默認為使用句點。
|
Case-Sensitive String Comparison
|
平面文件
|
如果選定,PowerCenter 在對字符串列執行查找時將使用區分大小寫的字符串比較。
注:對於關系查找,區分大小寫的比較需要數據庫支持。
|
Null Ordering
|
平面文件
|
確定 PowerCenter 如何對空值排序。您可以選擇將空值按高或低排序。默認情況下,PowerCenter 按高排序空值。這將覆蓋 PowerCenter 配置以在比較運算符中將空值處理為高、低或空。
注:對於關系查找,空值排序需要數據庫支持。
|
Sorted Input
|
平面文件
|
指示是否排序查找文件數據。這將提高文件查找的性能。如果啟用排序輸入,但尚未對條件列分組,PowerCenter 將使會話失敗。如果對條件列進行了分組,但尚未排序,PowerCenter 將按您沒有配置排序輸入的方式來處理查找。
|
在會話中配置查找屬性
配置會話時,您可以配置會話特有的查找屬性:
- 平面文件查找。配置位置信息,如文件目錄、文件名和文件類型。
- 關系查找。您可以定義會話屬性中的 $Source 和 $Target 變量。您還可以覆蓋連接信息以使用服務器變量 $DBConnection。
平面文件查找配置的會話屬性:
屬性
|
說明
|
查找源文件目錄
|
輸入目錄名稱。默認情況下,PowerCenter 將在服務器變量目錄 $PMLookupFileDir 中查找查找文件。
您可以輸入完整路徑和文件名。如果您在"查找源文件名"字段中同時指定了目錄和文件名,請清除此字段。當 PowerCenter 運行會話時,會將此字段與"查找源文件名"字段連接在一起。
另外,您也可以使用 $InputFileName 會話參數指定文件名。
|
查找源文件名
|
查找文件的名稱。如果使用間接文件,請指定希望 PowerCenter 讀取的間接文件的名稱。
您也可以使用查找文件參數 $LookupFileName 以更改某會話所使用的查找文件的名稱。
如果您在"源文件目錄"字段中同時指定了目錄和文件名,請清除此字段。當 PowerCenter Server 運行會話時,會將此字段與"查找源文件目錄"字段連接在一起。例如,如果您在"查找源文件目錄"字段中輸入 "C:\lookup_data\" ,並在"查找源文件名"字段中輸入"filename.txt"。當 PowerCenter Server 開始會話時,將會查找 "C:\lookup_data\filename.txt"。
|
查找源文件類型
|
指示查找源文件是否包含源數據或具有相同文件屬性的文件列表。如果查找源文件包含源數據,請選擇"直接"。如果查找源文件包含文件列表,請選擇"間接"。
如果選擇"間接",PowerCenter 將為所有文件創建一個高速緩存。如果對間接文件使用排序輸入,請驗證文件中的數據范圍沒有重疊。如果數據范圍重疊,PowerCenter 將按您沒有配置排序輸入的方式來處理查找。
|
在會話中配置關系查找
配置會話時,在"映射"選項卡中的"連接"節點中,為查找數據庫指定連接。您可以使用以下選項來指定連接:
- 為 $Source 或 $Target 信息指定數據庫連接。
如果為查找連接使用 $Source 或 $Target,請在會話屬性中配置"$Source 連接值"和"$Target 連接值"。這可確保 PowerCenter 在運行會話時為變量使用正確的數據庫連接。
如果使用 $Source 或 $Target 且沒有在會話屬性中指定連接值,PowerCenter 會在運行會話時確定將要使用的數據庫連接。PowerCenter 將在包含查找轉換的管道中為源或目標使用源或目標數據庫連接。如果它無法確定使用哪個數據庫連接,則將使會話失敗。
以下列表介紹了您未在會話特性中指定 $Source 連接值或 $Target 連接值時,PowerCenter Server 將如何確定 $Source 或 $Target 的值:
- 當您使用 $Source 且管道包含一個源時,PowerCenter 將使用您為源指定的數據庫連接。
- 當您使用 $Source 且管道包含由聯接轉換聯接的多個源時,PowerCenter 將使用不同的數據庫連接,具體取決於查找轉換在管道中的位置:
- 如果查找轉換位於聯接轉換后面,則 PowerCenter 使用細節表的數據庫連接。
- 如果查找轉換位於聯接轉換前面,則 PowerCenter 使用已連接到查找轉換的源的數據庫連接。
- 當您使用 $Target 且管道包含一個目標時,PowerCenter 將使用您為目標指定的數據庫連接。
- 使用 $Target 且管道包含多個關系目標時,會話將失敗。
- 如果在未連接的查找轉換中使用 $Source 或 $Target,則會話將失敗。