如何为 IKM 增量更新配置 ODI 以自动增加行

How to configure ODI to auto-increment rows for IKM Incremental Update

我对 'dimension' 和 IKM 的自动增量 ID 有疑问:增量更新。

我的来源 table 只有一栏:SUPPLIER_NAME。它有 23 行供应商名称。

我的目标 table 有两列:SUPPLIER_ID、SUPPLIER_NAME

接下来我想 SUPPLIER_ID 为每个新行创建自动增量 ID 并使用 IKM:增量更新 - 有人添加新供应商我只想更新 table(添加新行)并添加此供应商新 ID(自动增量的下一个值)。

我该怎么做?

我在数据库上创建序列,如:

Create sequence autoinc start with 1  
increment by 1  
minvalue 1  
maxvalue 1000000;  

在 ODI 中我创建序列: AutoIncrementDIm --> 增量:1, 原生序列 - 原生序列名称:autoinc

接下来我创建 ODI 映射:

源 table(一列)映射到目标 table(带有 ID 和名称)。

将supplier_name映射到supplier_name

我使用的 ID:#NFS_HD.AutoIncrementDim_NEXTVAL

在逻辑部分我设置集成类型:增量更新 物理部分我为IKM设置:IKM Oracle Merge

对于我的第一个 运行ning 一切都很好。我为每个供应商自动增加了 1 到 23。

但是当我在源 table 和 运行 中有包含新供应商名称的新行时,我的映射会得到如下信息:

Results

新行(有新供应商)有 47 个 ID ...我认为这是因为每行的顺序是 运行ning。

我必须更改哪些内容才能更正,或者更好的解决方案是什么?

在逻辑映射上,单击您的 SUPPLIER_ID 目标属性。在 Target 选项卡的 属性 窗格中,取消选中 Update 复选框。这意味着该属性将不会在更新查询中使用。

还要确保 SUPPLIER_NAME 属性设置为键,以便 IKM 使用它来知道何时应该执行插入或更新。