Oracle ODI 12c之多表联合查询以及定时任务设置
时间:2022-03-15 06:46
本文介绍如何通过ODI进行多表联合查询并设置定时任务。准备工作如下:
- 准备物理方案和逻辑方案;
- 创建模型并通过“逆向工程”同步方案;
- 创建项目(根据实际情况创建或者使用现有的);
- 确保源表和目标表都有主键存在。
以上内容的前三点可以参考我博客中的相关文章。一、Preparing
1.1 源SQL语句
SELECT a.ID, a.ORG_ID, a.NAME_ID, a.EVR_ID, a.PACKAGE_ARCH_ID, a.PACKAGE_GROUP, a.RPM_VERSION, a.DESCRIPTION, a.SUMMARY, a.PACKAGE_SIZE, a.PAYLOAD_SIZE, a.INSTALLED_SIZE, a.BUILD_HOST, a.BUILD_TIME, a.SOURCE_RPM_ID, a.CHECKSUM_ID, a.VENDOR, a.PAYLOAD_FORMAT, a.COMPAT, a.PATH, a.HEADER_SIG, a.COPYRIGHT, a.COOKIE, a.LAST_MODIFIED, a.CREATED, a.MODIFIED, a.HEADER_START, a.HEADER_END FROM rhnpackage a LEFT JOIN web_customer b ON a.org_id = b.ID WHERE a.name_id > 5 AND a.package_group = 4;
1.2 创建映射
- 拖动模型源数据库中的相关表到映射框;
- 在映射框中插入组件栏里的联接以及过滤,根据SQL设置相关连接;
- 推动模型目标数据库中的相关表到映射框,并设置相关连接。如下图所示:
1.2.1 设置联接
在映射的逻辑结构里,点击连接图标,在Condition中,输入“Join Condition”和“Join Type”,点击保存。如下图所示:
1.2.2 设置过滤
在映射的逻辑结构里,点击过滤图标,在Condition中,输入“Filter Condition”,点击保存。如下图所示:
1.2.3 设置目标表整合类型
在映射的逻辑结构里,点击目标表,设置“Target”的“Integration Type”为“Incremental Update”,点击保存。如下图所示:
1.2.4 设置目标组的知识模块
在映射的物理结构里,设置AP的知识模块为“LKM SQL to SQL(Built-In).GLOBAL”,点击保存。如下图所示:
在射的物理结构里,设置目标表的知识模块为“IKM Oracle Incremental Update”,点击保存。如下图所示:1.3 验证映射
点击下图中的“√”进行验证,如下图所示:
二、Scheduling
2.1 生成场景
右击“映射名称”,选择“ Generate Scenario...”,如下图所示:
场景名称和版本号自定义,如下图所示:2.2 定时任务设置
展开场景,右击Scheduling,选择“New Scheduling”,根据实际情况定义自动调度时间。这里是每天下午的16:00开始运行。如下图:
最后,更新下agent的调度信息,即可查看到即将运行的作业信息,如下图所示: