Informatica 常用组件Source Qualifier之 联接查询

联接源数据

  可以使用一个源限定符转换来联接来自多个关系表的数据。这些表必须能从相同的实例或数据库服务器访问。
当映射使用相关的关系源时,您可以在一个源限定符转换中同时联接两个源。在会话期间,源数据库在传递数据至PowerCenter 之前先执行联接。如果源表编制了索引,此操作可以增强性能。
提示: 为异类源使用联接转换以及用联接转换联接平面文件。

默认联接

  当您在一个源限定符转换中联接相关表时,PowerCenter 将基于每个表中的相关键来联接表。 这种默认联接是内同等联接,在 WHERE 子句中使用以下语法: Source1.column_name = Source2.column_name

默认联接中的列必须具有: 主键-外键关系 匹配的数据类型

  例如,您可以查看当月的所有订单,包括订单编号、订单数量和客户名称。ORDERS 表包括订单编号和每份订单的数量,但是不包括客户名称。要包括客户名称,您需要联接 ORDERS 和 CUSTOMERS 表。因为两个表均包括客户标识,所以您可以在一个源限定符转换中联接两个

表。 

  当您包括多个表时,PowerCenter Server 将为映射中使用的所有列生成 SELECT 语句。在本例中,SELECT 语句与以下语句类似:

SELECT
      CUSTOMERS.CUSTOMER_ID,
      CUSTOMERS.COMPANY,
      CUSTOMERS.FIRST_NAME,
      CUSTOMERS.LAST_NAME,
      CUSTOMERS.ADDRESS1,
      CUSTOMERS.ADDRESS2,
      CUSTOMERS.CITY,
      CUSTOMERS.STATE,
      CUSTOMERS.POSTAL_CODE,
      CUSTOMERS.PHONE,
      CUSTOMERS.EMAIL,
      ORDERS.ORDER_ID,
      ORDERS.DATE_ENTERED,
      ORDERS.DATE_PROMISED,
      ORDERS.DATE_SHIPPED,
      ORDERS.EMPLOYEE_ID,
      ORDERS.CUSTOMER_ID,
      ORDERS.SALES_TAX_RATE,
      ORDERS.STORE_ID
      FROM CUSTOMERS, ORDERS
WHERE CUSTOMERS.CUSTOMER_ID=ORDERS.CUSTOMER_ID

  WHERE 子句是一个同等联接,它包括来自 ORDERS 和 CUSTOMER 表的 CUSTOMER_ID

自定义联接  如果需要覆盖默认联接,您可以输入 WHERE 子句的内容,这指定了自定义查询中的联接。  在下列情况下您可能需要覆盖默认联接: 

1. 列不具有主键-外键关系。
2.联接用到的列的数据类型不匹配。
3.您需要指定不同类型的联接,例如外部联接。

异类联接

  要执行异类联接,请使用联接转换。当您需要联接下列类型的源时,请使用联接转换:

  1. 联接不同源数据库的数据
  2. 联接不同平面文件系统的数据
  3. 联接关系源和平面文件

创建键关系

如果表具有主键-外键关系,那么您可以在源限定符转换中联接表。但是,您可以在 Source Analyzer 中通过链接不同表中相匹配的列来创建主键-外键关系。这些列不必是键,但它们应该包括在每个表的索引中。

  提示: 如果源表超过 1000 行,您可以通过对主键-外键编制索引来增强性能。如果源表少于 1000 行,则对主键-外键编制索引反而会降低性能。
    例如,某零售连锁公司办公室需要基于订单提取收到的付款。ORDERS 和 PAYMENTS 表没有共享主键和外键。但是,两个表都包括 DATE_SHIPPED 列。您可以在 Source Analyzer 的元数据中创建主键-外键关系。 注意,两个表未链接。因此,Designer 不会识别 DATE_SHIPPED 列上的关系。
    可以通过链接 DATE_SHIPPED 列在 ORDERS 和 PAYMENTS 表之间创建一种关系。Designer 将自动向 ORDERS 和 PAYMENTS 表定义中的 DATE_SHIPPED 列添加主键和外键。

创建两个表之间的关系

如果不连接列,Designer 将不会识别关系。主键-外键关系仅存在于元数据中。您无需生成 SQL 或更改源表。一旦键关系存在,您就可以使用源限定符转换来联接两个表。默认情况下,联接基于 DATE_SHIPPED。

时间: 2024-10-14 10:22:22

Informatica 常用组件Source Qualifier之 联接查询的相关文章

Informatica 常用组件Source Qualifier之 外部联接

可以使用源限定符和应用程序源限定符转换在相同的数据库中执行两个源的外部联接.当 PowerCenter 执行外部联接时,它将返回其中一个源表的所有行和另一个源表中匹配联接条件的行. 如果您需要联接两个表并返回其中一个表的所有行,可使用外部联接.例如,当您希望联接注册客户表和每月购买情况表以确定注册客户的购买行为是否活跃时,您就可以执行外部联接.使用外部联接,您可以联接注册客户表和每月购买情况表,并返回注册客户表中的所有行,包括上个月无购买行为的客户.如果您执行正常联接,PowerCenter 将

Informatica 常用组件Source Qualifier之 使用排序端口

使用已排序端口时,PowerCenter 将添加端口至默认查询中的 ORDER BY 子句.PowerCenter Server 将添加配置的端口号,从源限定符转换的顶部开始.在映射中包括以下任何转换时,您可以使用已排序端口来提高性能: 聚合.为已排序输入配置聚合转换时,您可以使用已排序端口发送已排序的数据.聚合转换中的分组依据端口必须与源限定符转换中的已排序端口顺序相匹配. 联接.为已排序输入配置联接转换时,您可以使用已排序端口发送已排序的数据.按与源限定符转换中相同的方式来配置已排序端口的顺

Informatica 常用组件Source Qualifier之 创建SQ转换

可以配置 Designer 在您将源拖到映射中时默认创建源限定符转换,您也可以手动创建源限定符转换. 默认创建源限定符转换 可以配置 Designer 在您将源拖到映射中时自动创建一个源限定符转换. 要自动创建源限定符转换: 在 Designer 中选择"工具-选项". 选择"格式"选项卡. 在"工具"选项中,选择 Mapping Designer. 打开源时选择"创建源限定符". 手动创建源限定符转换 可以在 Mapping

Informatica 常用组件Source Qualifier之 User Defined Join

User defined join :      输入用户定义的联接与输入自定义 SQL 查询类似.但是,只需输入 WHERE 子句的内容,而不是整个查询. 添加用户定义的联接时,源限定符转换包括默认 SQL 查询中的设置.但是,如果在添加用户定义的联接后修改默认查询,PowerCenter 将仅使用在源限定符转换中的 SQL 查询属性中定义的查询. 可以在用户定义的联接中包括映射参数和变量.包括字符串映射参数或变量时,请使用适用于源系统的字符串标识符.对于大多数数据库,您应用单引号将字符串参数

Informatica 常用组件Source Qualifier之 Distinct

如果希望 PowerCenter 从源选择唯一值,您可以使用"选择相异"选项.例如,您可以使用此功能从列出总销售额的表中提取唯一客户标识.使用"选择相异"过滤器可以较早地过滤掉不必要的数据,这有助于提高性能. 默认情况下,Designer 生成 SELECT 语句.如果选择"选择相异",源限定符转换将在默认 SQL 查询中包括此设置.          例如,启用"选择相异"选项.Designer 将把 SELECT DIST

Informatica 常用组件Source Qualifier之 SQL Query

源限定符转换提供 SQL 查询选项以覆盖默认的查询.您可以输入您的源数据库支持的 SQL 语句.输入查询之前,请连接您要在映射中使用的所有输入和输出端口. 编辑 SQL 查询时,您可以生成并编辑默认查询.当 Designer 生成默认的查询时,它将合并所有其它配置的选项,例如过滤器或已排序端口数.结果查询将覆盖您随后可能在转换中配置的所有其它选项. 可以在 SQL 查询中包括映射参数和变量.包括字符串映射参数或变量时,请使用适用于源系统的字符串标识符.对于大多数数据库,您应用单引号将字符串参数或

Informatica 常用组件Source Qualifier之 会话前和会话后 SQL

  可以在源限定符转换的"属性"选项卡中添加会话前和会话后 SQL 命令.您可能要使用会话前 SQL 以在会话开始时将时间标识行写入源表. PowerCenter 在读取源之前对源数据库运行会话前 SQL 命令, 在写入目标之后对源数据库运行会话后 SQL 命令. 可以在会话属性"映射"选项卡上的"转换"视图中覆盖 SQL 命令.您还可以配置 PowerCenter 在运行会话前或会话后 SQL 命令遇到错误时是停止还是继续.      当您在源

Informatica 常用组件Lookup之六 查询

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

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

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