查找转换的属性标识数据库源、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 变量。如果您使用其中一个变量,查找表必须驻留在配置会话时所指定的源或目标数据库中。
如果选择具体的数据库连接,则还可以指定数据库连接的类型。如果连接是应用程序连接,则在连接名称前面键入
如果不指定数据库连接类型,则 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 将按您没有配置排序输入的方式来处理查找。 |
在会话中配置关系查找
配置会话时,在"映射"选项卡中的"连接"节点中,为查找数据库指定连接。您可以使用以下选项来指定连接:
- 选择任何关系连接。
- 使用连接变量 $DBConnection。
- 为 $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,则会话将失败。