查看: 3721|回复: 0

[Oracle数据库] Oracle ODI 12c之多表联合查询以及定时任务设置

发表于 2018-3-11 16:06:25

本文介绍如何通过ODI进行多表联合查询并设置定时任务。准备工作如下:

准备物理方案和逻辑方案; 创建模型并通过“逆向工程”同步方案; 创建项目(根据实际情况创建或者使用现有的); 确保源表和目标表都有主键存在。
以上内容的前三点可以参考我博客中的相关文章。 一、Preparing 1.1 源SQL语句
  1. SELECT a.ID,
  2. a.ORG_ID,
  3. a.NAME_ID,
  4. a.EVR_ID,
  5. a.PACKAGE_ARCH_ID,
  6. a.PACKAGE_GROUP,
  7. a.RPM_VERSION,
  8. a.DESCRIPTION,
  9. a.SUMMARY,
  10. a.PACKAGE_SIZE,
  11. a.PAYLOAD_SIZE,
  12. a.INSTALLED_SIZE,
  13. a.BUILD_HOST,
  14. a.BUILD_TIME,
  15. a.SOURCE_RPM_ID,
  16. a.CHECKSUM_ID,
  17. a.VENDOR,
  18. a.PAYLOAD_FORMAT,
  19. a.COMPAT,
  20. a.PATH,
  21. a.HEADER_SIG,
  22. a.COPYRIGHT,
  23. a.COOKIE,
  24. a.LAST_MODIFIED,
  25. a.CREATED,
  26. a.MODIFIED,
  27. a.HEADER_START,
  28. a.HEADER_END
  29. FROM rhnpackage a LEFT JOIN web_customer b ON a.org_id = b.ID
  30. WHERE a.name_id > 5 AND a.package_group = 4;
复制代码
1.2 创建映射 拖动模型源数据库中的相关表到映射框; 在映射框中插入组件栏里的联接以及过滤,根据SQL设置相关连接; 推动模型目标数据库中的相关表到映射框,并设置相关连接。如下图所示:
Oracle ODI 12c之多表联合查询以及定时任务设置 1.2.1 设置联接

在映射的逻辑结构里,点击连接图标,在Condition中,输入“Join Condition”和“Join Type”,点击保存。如下图所示:
Oracle ODI 12c之多表联合查询以及定时任务设置

1.2.2 设置过滤

在映射的逻辑结构里,点击过滤图标,在Condition中,输入“Filter Condition”,点击保存。如下图所示:
Oracle ODI 12c之多表联合查询以及定时任务设置

1.2.3 设置目标表整合类型

在映射的逻辑结构里,点击目标表,设置“Target”的“Integration Type”为“Incremental Update”,点击保存。如下图所示:
Oracle ODI 12c之多表联合查询以及定时任务设置

1.2.4 设置目标组的知识模块

在映射的物理结构里,设置AP的知识模块为“LKM SQL to SQL(Built-In).GLOBAL”,点击保存。如下图所示:
Oracle ODI 12c之多表联合查询以及定时任务设置
在射的物理结构里,设置目标表的知识模块为“IKM Oracle Incremental Update”,点击保存。如下图所示:
Oracle ODI 12c之多表联合查询以及定时任务设置

1.3 验证映射

点击下图中的“√”进行验证,如下图所示:
Oracle ODI 12c之多表联合查询以及定时任务设置

二、Scheduling 2.1 生成场景

右击“映射名称”,选择“ Generate Scenario...”,如下图所示:
Oracle ODI 12c之多表联合查询以及定时任务设置
场景名称和版本号自定义,如下图所示:
Oracle ODI 12c之多表联合查询以及定时任务设置

2.2 定时任务设置

展开场景,右击Scheduling,选择“New Scheduling”,根据实际情况定义自动调度时间。这里是每天下午的16:00开始运行。如下图:
Oracle ODI 12c之多表联合查询以及定时任务设置
最后,更新下agent的调度信息,即可查看到即将运行的作业信息,如下图所示:
Oracle ODI 12c之多表联合查询以及定时任务设置



回复

使用道具 举报