序列 Generator 信息化转型

⚡ 智能摘要

序列 Generator Informatica 中的转换是一个被动的、连接的对象,它为代理列和主键列生成数值序列,并通过名为 NEXTVAL 和 CURRVAL 的两个固定输出端口为每一行传递一个值。

  • 🔢 两个固定端口: NEXTVAL 包含生成的数字,CURRVAL 返回 NEXTVAL 加上“递增”值。
  • ⚙️ 四大核心特性: 起始值、增量、结束值​​和循环决定了生成的每个序列的形状。
  • 🧪 示例: 八图ping 设计步骤将生成的数字加载到 EMP_SEQUENCE 目标的 SNO 列中。
  • ♻️ 可重复使用的选项: 可重用的序列 Generator 多个地图共享ping默认情况下,s 会缓存 1,000 个值。
  • 🔒 端口已固定: 端口无法添加、编辑或删除,因此所有行为均在“属性”选项卡中控制。
  • 🗝️ 代理密钥: 仓库维度表使用生成的键,而不是来自源系统的自然键。

序列 Generator 信息化转型

什么是序列 Generator 转型?

序列 Generator 转换是被动的,因此不会影响输入行的数量。序列 Generator 用于生成主键值,也用于生成像 1、2、3、4、5 等这样的数值序列值。

例如,如果您想为源记录分配序列值,则可以使用序列。 Generator生成的序列值可以是 5、10、15、20、25 等,也可以是 10、20、30、40、50 等,具体取决于转换的配置属性。

与大多数转换不同,此转换完全没有输入端口。它不读取传入的行,只是将下一个数字传递给与其连接的端口,因此可以安全地将其放置在任何管道旁边。 地图ping.

序列中的端口 Generator 转型

序列 Generator 有两个输出端口

  • 电流
  • 下一个值

CURRVAL 端口值始终为 NEXTVAL 加上 Increment By 值,因此当 Increment By 保留其默认值 1 时,它只会读取为 NEXTVAL+1。

为了生成序列号,我们始终使用 NEXTVAL 列。下表总结了这两个端口的行为。

港口 它返回什么 何时连接
下一个值 流经管道的每一行序列中的下一个数字。 几乎总是如此。这是向目标系统中的关键列提供数据的端口。
电流 NEXTVAL 加上增量值。 仅与 NEXTVAL 一起使用时才有效。单独使用时,它会为每一行传递相同的常量值。

两个端口都不能重命名或删除,也不能添加第三个端口,因此对生成的号码的任何更改都是在“属性”选项卡上进行的,而不是在端口上进行的。

序列的性质 Generator 转型

  • 起始值 – 这是转换生成的第一个值,默认值为 0。
  • 增量 – 这是您要增加值的数字。默认值为 1。
  • 最终值——这是转换应生成的最大值。
  • 循环——如果设置了此选项,则在到达值的末尾后,转换将从起始值重新开始。

同一选项卡上还会出现另外三个设置,这些设置会在共享转换或重新运行会话时立即生效。

特性 它控制什么 默认
当前值 下次会话运行的起始值。集成服务会在生成行时更新存储库中的此值。 1
缓存值数量 内存中一次保留多少个值,才能保证并发会话永远不会重复分配同一个数字? 0 代表不可重复使用,1000 代表可重复使用
重设 每次会话都从初始当前值开始,而不是继续执行。此功能在可重用序列中不可用。 Generators. 残疾人
Tracing 级别 写入会话日志的详细程度:简略、正常、详细初始化或详细数据。 正常

如何使用序列 Generator 信息化转型

在这个例子中,我们将生成序列号并将其存储在目标位置。请按照以下八个步骤在 Map 中完成操作。ping 设计师。

步骤1) 使用以下脚本创建目标表。

下载上述 emp_sequence.sql 文件

步骤2) 将表导入 Informatica 作为目标表。

步骤3) 创建一个新地图ping 并导入 EMP 源表和 EMP_SEQUENCE 目标表。这两个定义现在都显示在画布上,如下所示。

地图ping 导入了 EMP 源和 EMP_SEQUENCE 目标定义的 Designer

步骤4) 在地图中创建一个新的转换ping

  1. 选择序列变换作为类型
  2. 输入转换名称“seq_emp”
  3. 选择创建选项

使用序列创建转换窗口 Generator 已选中并输入名称 seq_emp

步骤5) 序列 Generator 转换将创建完成,请选择“完成”选项。此时,seq_emp 对象及其两个端口将出现在画布上。

序列 Generator 在地图上创建了转换序列 seq_empping 帆布

步骤6) 将序列的 NEXTVAL 列链接起来。 Generator 到目标中的 SNO 列。

seq_emp 的 NEXTVAL 端口链接到 EMP_SEQUENCE 目标的 SNO 列

步骤7) 将其他列链接到 来源限定符 转换为目标表。

剩余的源限定符列链接到 EMP_SEQUENCE 目标表

步骤8) Double 点击序列 Generator 打开属性窗口,然后

  1. 选择属性选项卡
  2. 输入起始值 =1 的属性,其余属性保留默认设置
  3. 选择“确定”按钮

序列的“属性”选项卡 Generator 转换的起始值设置为 1

现在保存地图ping 创建完成后执行它 会议工作流程.

目标表中的 sno 列将包含由序列生成的序列号。 Generator 转型。

在我们的例子中,序列将是这样的:1 – Scott,2 – King,3 – Adam,4 – Miller,等等。

可重用序列和不可重用序列 Generators

上述的转变存在于一张地图中ping而在转换开发人员中创建它,可以使其可重用,并且一旦涉及多个会话,两者的行为就会有所不同。

比较点 不可重复使用 可重复使用
它在哪里被创建 一张地图ping在地图中ping 设计师 在转换开发器中,然后添加到任意数量的映射中。pings
缓存值数量 默认值为 0,因此不会预先预留值。 默认值为 1000,因此每个会话都会保留自己的数字块。
重置属性 可用,并从原始当前值重新开始序列。 不可用,因为重新启动会分配已被其他会话使用的号码。
典型用途 一张图中的一个目标关键列ping 多个映射中共享的代理键ping加载相同尺寸

缓存机制能够区分并发会话。每个会话都会预先获取一个数字块,这意味着这些数字是唯一的,但并非连续的:会话结束时,任何未使用的值都会被丢弃,下一个数字块会紧随其后开始。

序列的规则和限制 Generator 转型

有些内容只有在地图绘制完成后才会显现。ping 已经运行,所以在端口连接之前知道它们更便宜。

  • 端口已固定。 NEXTVAL 和 CURRVAL 不能编辑或删除,也不能向转换中添加其他端口。
  • CURRVAL 单独返回一个常量。 只有当 NEXTVAL 也向下游连接时,才连接 CURRVAL,否则每行都会获得相同的值。
  • 两个靶子依次被装填。 当 NEXTVAL 向两个目标表提供数据时,第一个目标表会在第二个目标表开始之前加载其数字,因此两组数据不会交错。
  • 出现缝隙是正常的。 会话未使用的缓存值永远不会被返回,因此会话失败或会话时间过短会在序列中留下空隙。设计键列时应考虑允许出现空隙。
  • Cycle 可能会产生重复项。 启用循环后,一旦达到最终值,编号将从起始值重新开始,除非目标允许,否则这将与现有键冲突。

由于该转换从不读取任何行,因此几乎不会增加会话运行时间,这也是为什么它很少成为瓶颈的原因。 性能调优当密钥必须依赖于数据本身而不是计数器时, 聚合 or 连接器转型 是执行该工作的对象,而不是这个对象。

常见问题

代理键是一个无意义的数字,它用来标识仓库中的一行数据,而不是源系统标识符。当源系统代码发生变化时,代理键保持不变,而生成序列是生成代理键最简单的方法。

因为编号会保留在地图上。ping 而不是存储在单个数据库中。平面文件和其他非关系型目标以相同的方式获取键,同一个可重用对象可以为多个目标编号,而无需为每个表创建一个数据库对象。

结束值最大可接受 9,223,372,036,854,775,807,这是最大的有符号 64 位整数。达到此值将导致会话终止并出现溢出错误,除非启用了循环计数,在这种情况下,编号将从起始值重新开始。

是的。NEXTVAL 函数会连接到任何下游转换,最常见的是构建复合键的表达式或检查键是否已存在的查找函数。生成的数字随后会随行传递。

是的,但要先检查目标值。编辑活动键列的起始值或当前值可能会导致目标值已存在,因此应将值提高到最高键值之上,而不是降低它。

几乎可以忽略不计。它不读取任何行,也不构建缓存文件,因此其开销仅为每行一次计数器更新。在计数成为问题之前,读取器和写入器就已经限制了大容量加载。

AI 分析器会扫描源列,以识别真正唯一的组合,标记包含空值或重复值的候选键,并检测不同加载之间的偏差。基于机器学习的匹配还能将描述同一实体但使用不同标识符的记录关联起来。

Copilot 编写了等效代码 SQL 序列或标识定义以及用于证明没有重复键的协调查询。它无法查看您的存储库值,因此请在加载之前在转换过程中验证当前值。

总结一下这篇文章: