Informatica 常用组件Lookup之七 查找条件

  PowerCenter 使用查找条件来测试收到的值。这与 SQL 查询中的 WHERE 子句相似。为转换配置查找条件时,将对转换输入值和查找源或高速缓存(用查找端口代表)中的值进行比较。当您运行工作流时,PowerCenter 将基于条件在查找源或高速缓存中查询所有收到的值。

必须在所有查找转换中输入查找条件。查找条件的某些准则适用于所有查找转换,而某些准则则视您如何配置转换而定。

为查找转换输入条件时,请遵循以下准则:

  • 条件中的数据类型必须匹配。
  • 为条件中用到的每个查找端口使用一个输入端口。您可以在转换的多个条件中使用相同的输入端口。
  • 输入多个条件时,PowerCenter 将每个条件计算为 AND 而不是 OR。PowerCenter 仅返回与您指定的所有条件相匹配的行。
  • PowerCenter 匹配空值。例如,如果输入查找条件列是 NULL,PowerCenter 将该 NULL 计算为与查找中的 NULL 相等。
  • 为已排序输入配置了平面文件查找时,如果未对条件列分组,PowerCenter 将使会话失败。如果对列进行了分组,但尚未排序,PowerCenter 将按您没有配置排序输入的方式来处理查找。

查找条件准则和 PowerCenter 处理匹配的方法可能不同,具体取决于您将转换配置为动态高速缓存,不高速缓存还是静态高速缓存。

不高速缓存或静态高速缓存

        将查找转换配置为无高速缓存或使用静态高速缓存时,请遵循以下准则:

  • 创建查找条件时,您可以使用以下操作符:=, >, <, >=, <=, !=

  提示:如果包括多于一个查找条件,请将带等号的条件放在前面,以提高查找性能。例如,创建以下查找条件:

  ITEM_ID = IN_ITEM_ID PRICE <= IN_PRICE

  • 输入值必须满足查找的所有条件才能返回值。

条件可以匹配相等值或提供一个阈值条件。例如,您需要查找不是生活在加利福尼亚州的客户,或薪酬高于 $30,000 的员工。取决于源和条件的种类,查找可能会返回多个值。

处理多个匹配项

查找操作根据您在查找转换中设置的条件查找值。如果查找条件不是基于唯一的键,或如果查找源非规范化,则 PowerCenter 可能在查找源或高速缓存中找到多个匹配项。

  • 返回第一个匹配值,或返回最后一个匹配值。您可以将转换配置为返回第一个匹配的值,或返回最后一个匹配的值。第一个和最后一个值指在查找高速缓存中找到的、与查找条件相匹配的第一个和最后一个值。高速缓存查找源时,PowerCenter 通过为查找高速缓存中的每一列生成一个 ORDER BY 子句来确定哪一行是第一个哪一行是最后一个。PowerCenter Server 然后按照升序排列查找条件中的每一查找源列。

   PowerCenter 按数字升序排列数值列(如 0 到 10),从一月到十二月并从每月第一天到每月最后一天排列日期/时间列,并根据会话配置的排序方式排列字符串列。

  • 返回错误。PowerCenter 返回输出端口的默认值。

注: 当会话遇到配置为使用动态高速缓存的查找转换的多个键时,PowerCenter 将使该会话失败。

动态高速缓存

        如果将查找转换配置为使用动态高速缓存,则在查找条件中您只能使用等号 (=) 操作符。

处理多个匹配项

        不能在配置为使用动态高速缓存的转换中配置多匹配处理。当会话正在高速缓存查找表或在含有重复键的高速缓存中查找值时,如果遇到多匹配,PowerCenter 将使该会话失败。

时间: 2024-11-10 23:34:45

Informatica 常用组件Lookup之七 查找条件的相关文章

Informatica 常用组件Lookup之四 查找组件

在映射中配置查找转换时,请定义以下组件: 查找源 端口 属性 条件 元数据扩展 查找源         您可以使用平面文件或关系表作为查找源.创建查找转换时,您可以从以下位置导入查找源: 资料库中的任何关系源或目标定义 资料库中的任何平面文件源或目标定义 PowerCenter Server 和 PowerCenter Client 机器都可以连接到的任何表或文件 查找表可以是单个表,您也可以使用查找 SQL 覆盖以将相同数据库中的多个表联接起来.PowerCenter 为所有传入查找转换的行,

Informatica 常用组件Lookup之八 查找高速缓存

可以配置查找转换以高速缓存查找文件或表.PowerCenter 将在处理高速缓存查找转换中的第一个数据行时在存储器中建立高速缓存.它将根据您在转换或会话特性中配置的数量来分配高速缓存区内存.PowerCenter 会将条件值存储在索引高速缓存区中,而将输出值存储到数据高速缓存区.PowerCenter 将查询进入转换的每行的高速缓存. 默认情况下,PowerCenter 还将在 $PMCacheDir 中创建高速缓存文件.如果数据在存储器高速缓存区中放不下,PowerCenter 会将溢出值存储

Informatica 常用组件Lookup之九 配置未连接的查找转换

在映射中,未连接的查找转换与管道是分开的.您可以使用 :LKP 引用限定符编写表达式以调用其它转换中的查找.未连接查找的常用用法包括: 测试表达式中某个查找的结果 基于查找结果过滤行 基于查找的结果将行标记为更新,如更新缓慢更改的维表 在一个映射中多次调用相同的查找         配置未连接的查找转换时,请完成以下步骤:  添加输入端口. 添加查找条件. 指定一个返回值. 调用其它转换中的查找. 步骤 1. 添加输入端口 为 :LKP 表达式中的每个参数创建一个输入端口.您需要在查找转换中为每

Informatica 常用组件Lookup之十 创建查找转换

在 Mapping Designer 中选择"转换-创建".选择查找转换.输入转换名称.查找转换的命名惯例是 LKP_TransformationName.单击"确定". 在"选择查找表"对话框中,您可以选择以下选项: 选择现有表或文件定义. 选择从关系表或文件导入定义. 跳过以创建手动定义. 为每个需要定义的查找条件定义输入端口. 对于未连接查找转换,请为需要从查找返回的值创建一个返回端口. 为需要传递到其它转换的值定义输出端口. 对于使用动态

Informatica 常用组件Lookup之二 已连接和未连接的查找

可以配置一个已连接的查找转换,以从映射管道中直接接收输入:您也可以配置一个未连接的查找转换,以从其它转换的表达式结果中接收输入. 已连接的查找 未连接的查找 直接从管道接收输入值. 从其它转换的 :LKP 表达式结果接收输入值. 可以使用动态或静态高速缓存. 可以使用静态高速缓存. 高速缓存包括映射中用到的所有查找列(即,包括在查找条件中的查找源列,以及作为输出端口链接至其它转换的查找源列). 高速缓存包括查找条件中的所有查找/输出端口和查找/返回端口. 可以从相同的行返回多列,或插入到动态查找

Informatica 常用组件Lookup之五 转换属性

查找转换的属性标识数据库源.PowerCenter 如何处理转换,以及它如何处理高速缓存和多项匹配. 创建映射时,为每个查找转换指定属性.创建会话时,您可在会话属性中覆盖某些属性,如每个转换的索引和数据高速缓存大小. 选项 查找类型 说明 Lookup SQL Override 关系 覆盖默认 SQL 语句以查询查找表. 指定希望 PowerCenter 用以查询查找值的 SQL 语句.仅在已启用查找高速缓存的情况下使用. Lookup Table Name 关系 指定转换将查找和高速缓存其值的

Informatica 常用组件Lookup之一 概述

转换类型:被动.已连接/未连接 在映射中使用查找转换以从平面文件或关系表.视图或同义词查找数据.您可以从 PowerCenter Client 和 PowerCenter Server 均连接至的任何平面文件或关系数据库中导入查找定义.您可以在一个映射中使用多个查找转换. PowerCenter 基于转换中的查找端口来查询查找源.它基于查找条件将查找转换端口值与查找源列值相比较.将查找结果传递至其它转换和目标. 您可以使用查找转换执行多项任务,包括: 获取相关值.例如,源包括员工标识,但您需要在

Informatica 常用组件Lookup之六 查询

PowerCenter 基于您在查找转换中配置的端口和属性来查询查找.当第一行输入到查找转换时,PowerCenter 运行一个默认的 SQL 语句.如果使用关系查找,您可以在"查找 SQL 覆盖"属性中自定义默认查询. 默认查找查询         默认查找查询包含以下语句:  SELECT.SELECT 语句包括映射中的所有查找端口.您可以通过使用查找 SQL 覆盖属性生成 SQL 来查看 SELECT 语句.切勿在默认 SQL 语句中添加或删除任何列. ORDER BY.ORDE

Informatica 常用组件Lookup之三 关系和平面文件查找

创建查找转换时,您可以选择使用关系表或平面文件作为查找源. 关系查找 使用关系表作为查找源来创建查找转换时,您可以使用 ODBC 连接到查找源并导入表定义作为查找转换的结构. 仅可对关系查找使用以下选项: 如果需要添加 WHERE 子句或查询多个表,则可以覆盖默认的 SQL 语句. 您可以对关系查找使用动态查找高速缓存. 平面文件查找 使用平面文件作为查找源时,可以使用资料库中的任何平面文件定义,或导入平面文件定义.如果导入平面文件查找源,Designer 将调用平面文件向导. 仅可对平面文件查