返回工具站
Informatica

Informatica 数列生成器

当映射需要在 PowerCenter 内部生成可预测的代理键时,使用数列生成器。

它的作用
  • 在映射内部生成数值,不依赖源系统。
  • 通常为维度、暂存表或行级 ID 提供代理键。
  • 暴露两个端口:NEXTVAL 获取下一个生成值,CURRVAL 获取当前值。
核心端口
元素含义典型用途
NEXTVAL序列中的下一个生成值。写入新的代理键。
CURRVALNEXTVAL 推进后的当前值。在下游复用同一生成键。
起始值首个输出值。设定一次加载的首个键。
增量值之间的步长。控制键间距或分区。
基本流程
  1. 1在映射中添加数列生成器转换。
  2. 2配置起始值、增量与端口用法。
  3. 3将 NEXTVAL 连接到需要新标识符的目标键列。
  4. 4仅在映射中需要多次复用同一生成值时使用 CURRVAL。
代码

典型代理键模式

SRC_CUSTOMER -> EXP_CLEAN -> SEQ_CUSTOMER_KEY.NEXTVAL -> TGT_DIM_CUSTOMER.CUSTOMER_KEY
常见问题

什么时候使用 CURRVAL?

当同一个生成键需要馈入同一映射中的多个下游字段时使用。

为什么用数列生成器而不是源键?

源键常跨系统冲突,或对维度模型不够稳定。

数列生成器保证代理键无空洞吗?

不保证。会话失败或行拒绝后不会回滚值,ETL 流程中出现空洞是正常现象。

可以跨多个目标表共享一个生成器吗?

技术上可以,但不推荐。共享生成器会产生交错键区间,难以判断各表键域。建议每张目标表使用独立生成器,保证键隔离清晰。

相关链接