ODI 12.2.1 - 如何在运行时期间获取C $ Loading表的特定表名

时间:2016-07-08 10:40:22

标签: xml oracle data-migration oracle-data-integrator

我已使用ODI迁移工具将ODI项目从ODI 11.1.1.7迁移到12.2.1。

Source是XML文件,Target是Oracle 12c数据库。

在迁移的项目中,我可以看到一些接口发生了巨大的变化。

还创建了其他对象。 Default_DS_AP和Default_DS1_AP对象在Target Group of Interface中创建。 看起来这用于使用LKM SQL到Oracle将数据从Source加载到Target对象。

但是在迁移过程中我可以看到,当创建C $表时,会创建一些与目标表不匹配的唯一表名。

对于我只有1个DEAFULT_DS_AP对象的某些接口,我能够看到使用正确的目标表名创建的C $ Loading对象。

但是,如果Interface的Physical选项卡中存在2个DEFAULT_DS对象,则使用C $ _0DEFAULT_DS,C $ _0DEFAULT_DS1 ..

创建加载表。

我如何获得正确的表名,例如C $ _0ADDNUMEBRS,其中ADDNUMBERS是我的表名?

此外,加载表未正确创建,它混乱,因此IKM查询未正确执行。

对此有任何帮助是有帮助的

1 个答案:

答案 0 :(得分:0)

当从11g升级到12c时,ODI将在所有映射中使用数据集。这就是您在物理设计中看到此额外Default_DS_AP和Default_DS1_AP节点的原因。但是,您可以删除这些数据集并使用流程范例(请参阅http://www.rittmanmead.com/2015/04/di-tips-odi-convert-to-flow/)。

但这可能无法解决目标表名称的问题。使用12c,ODI现在允许在映射中具有多个目标。这意味着在所有情况下,目标表名称不能再用作临时名称。相反,ODI在LKM步骤中使用数据传输之前的最后一个组件的名称来创建C $ _表格可以更改它以回到先前的行为,但它需要在每个组件中进行一些更改映射(可以在Groovy中自动化)或在KM中。您可以在this blog post中找到更多详细信息。