Oracle 生成ODI包

Oracle 生成ODI包,oracle,scripting,oracle11g,data-warehouse,oracle-data-integrator,Oracle,Scripting,Oracle11g,Data Warehouse,Oracle Data Integrator,我目前正在从事一个数据仓库项目,在这个项目中,我经常需要从源代码将表加载到第1层和第2层。第1层是源数据加上一些技术字段的副本,第2层处理外键并进行一些小的转换 过程如下: 创建DDL脚本以在L1和L2中创建表 使用ODI(Oracle data integrator)定义定义从一层到另一层转换的接口 这是一项重复性很强的任务,其中转换保持大致相同 我想知道是否有一种方法可以从脚本语言在ODI代理上生成ODI包+接口+变量,这样我就可以自动化这个耗时部分的大部分 ODI版本:ODI_11.1

我目前正在从事一个数据仓库项目,在这个项目中,我经常需要从源代码将表加载到第1层和第2层。第1层是源数据加上一些技术字段的副本,第2层处理外键并进行一些小的转换

过程如下:

  • 创建DDL脚本以在L1和L2中创建表
  • 使用ODI(Oracle data integrator)定义定义从一层到另一层转换的接口
这是一项重复性很强的任务,其中转换保持大致相同

我想知道是否有一种方法可以从脚本语言在ODI代理上生成ODI包+接口+变量,这样我就可以自动化这个耗时部分的大部分

ODI版本:ODI_11.1.1.7.0_通用 平台:Windows7


提前感谢使用ODI SDK,您确实可以在ODI Studio中执行几乎所有的任务:。 这个JavaAPI还可以用于直接从ODI Studio执行的Groovy脚本(工具->Groovy->新脚本)。 Groovy是一种用于JVM的编程语言,它使用与Java语法类似的语法,并带有一些快捷方式,并且是动态编译的。除了少数例外,Java代码可以在Groovy中使用

Michael Rainey做了一个很好的介绍,介绍了ODI SDK、Groovy和一些用例。以下是幻灯片:

< P>我想,同一作者的这个完整的例子可能对你很有意思,因为他在他的基础层的表中添加了几列(相当于Oracle信息管理参考体系结构中的第1层):

一旦您理解了这些概念,Oracle Data Integrator团队几年前在他们的博客上发布了一个很好的脚本来自动创建。我认为它是在11.1.1.5上测试的,所以可能需要一些修改,但这是一个很好的起点:


SDK的一个限制是没有使用ODI的版本控制功能。

最好使用GUI而不是SDK创建包接口。这很容易实现、调试和节省时间。

数据仓库中的外键???动态创建表???你确定这是正确的设计吗?也许您应该考虑在表中创建分区并加载到单个分区中,让我详细说明一下:我们使用的是InMaDATAWAWHORKE安装程序,在这里我们有三个不同的层:*L1,其中我们复制来自不同源表*2的数据,其中我们在表上做一些转换,但保持正常化*3,在这里我们创建具有维度和事实的星型模式(数据集市)从源到第三层(仅上次加载后更新的记录)每天都进行加载。在数据仓库中使用外键没有问题。有些人喜欢启用它。对于Oracle,我个人禁用了NOVALIDATE和reline子句。即使数据库在插入时不会检查它,Oracle优化器也会使用它,其他工具也会看到它。例如,它们可以导入到OBIEE中,这样您就不必手动重做所有连接。对于Oracle信息管理参考体系结构中的分级或基础层的动态创建表,我没有问题。谢谢我认为这是一个非常粗略的答案,并没有真正帮助OP.如果你考虑改善你的答案,请使用。