我已使用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查询未正确执行。
对此有任何帮助是有帮助的
答案 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中找到更多详细信息。