源限定符转换

2024 年 8 月 29 日 | 4 分钟阅读

源限定符转换是活动的且已连接。它用于表示集成服务在运行会话时读取的行。我们需要将源限定符转换与映射中的关系或平面文件定义连接起来。

源限定符转换将源数据类型转换为 Informatica 本机数据类型。因此,无需更改端口的数据类型。

源限定符转换执行以下任务,例如

  • 连接: 我们可以从同一源数据库连接两个或多个表。默认情况下,源根据主键和外键关系进行合并。可以通过在“用户定义的连接”属性中指定连接条件来更改此设置。
  • 筛选行: 我们可以从源数据库中筛选行。在默认查询中,集成服务添加一个 WHERE 子句。
  • 对输入进行排序: 我们可以通过为排序的端口指定数字来对源数据进行排序。在默认 SQL 查询中,集成服务添加一个 ORDER BY 子句。
  • 不同行: 我们可以通过选择“选择不同”属性从源中获取单独的行。在默认 SQL 查询中,集成服务添加一个 SELECT DISTINCT 语句。
  • 自定义 SQL 查询: 我们可以编写 SQL 查询来进行计算。

源限定符转换属性

源限定符转换具有以下属性,例如

选项描述
SQL 查询它定义了一个自定义查询,该查询替换了集成服务的默认查询,该查询用于从源读取数据。自定义查询会覆盖自定义连接或源筛选器的条目。
用户定义的连接它指定用于连接来自同一源限定符转换中表示的多个源的数据的条件。
源筛选器它指定集成服务在查询行时应用的筛选条件。
排序端口数它指示列数,用于在对从关系源查询的行进行排序期间使用。如果使用此选项,则集成服务在读取源行时,会将 ORDER BY 添加到默认查询。ORDER BY 包括指定的端口数,从转换的顶部开始。
选择后,数据库排序顺序必须与会话排序顺序匹配。
跟踪级别它设置在运行包含此转换的会话时,会话日志中包含的详细信息的量。
选择不同指定是否要选择唯一行。如果选择此选项,集成服务将包含一个 SELECT DISTINCT 语句。
Pre-SQL会话前 SQL 命令用于在集成服务读取源之前针对源数据库运行。
Post-SQL会话后 SQL 命令用于在集成服务写入目标后针对源数据库运行。
输出是确定性的当运行之间输入数据一致时,会话运行之间不会更改的关系源或转换输出。配置此属性后,如果管道中的转换始终生成可重复的数据,则集成服务不会暂存源数据以进行恢复。
输出是可重复的当输入数据的请求一致时,会话运行之间顺序相同的关系源或转换输出。当输出是确定性的,并且输出是可重复的时,集成服务不会暂存源数据以进行恢复。

示例

在此示例中,我们要修改映射“m_emp_emp_target”的源限定符,因此它将只返回选定的列,而不是返回所有列。

步骤 1:在映射设计器中打开映射“m_stud_stud_target”。

步骤 2:双击源限定符转换“SQ_STUD”。它将打开它的编辑转换属性窗口。然后

  1. 单击“属性”选项卡。
  2. 单击“SQLQuery 修改”选项,这将打开一个 SQL 编辑器窗口。

步骤 3:在 SQL 编辑器窗口中

  1. 输入以下查询
    SELECT STUDNO, SNAME, CLASS, SEC FROM STUD

注意:我们从源中选择列 STUDNO、SNAME、CLASS & SECTION,因此我们只在 select 查询中保留了这些列。

  1. 单击“确定”按钮。

步骤 4:在“编辑转换”窗口中,

  1. 从菜单中选择“端口”选项卡。
  2. 在“端口”选项卡下,您将看到所有端口。仅保留端口 STUDNO、SNAME、CLASS、SEC 并删除其他端口

步骤 5:删除端口后,单击“确定”按钮。

现在,再次单击“编辑转换”窗口中的“属性”选项卡,我们将仅看到选定的数据。单击“确定”按钮后,它将打开 SQL 编辑器窗口,并且

  1. 它将确认您选择的数据正确,并已准备好加载到目标表中。
  2. 单击“确定”按钮。

保存映射(使用 ctrl+s)并执行工作流。执行后,只有选定的列将加载到目标中。

通过这种方式,我们可以在源限定符中覆盖需要从源获取哪些列,这是替换将在映射内部引入哪些特定列的唯一方法。


下一个主题聚合器转换