Oracle ODI 12c之多表联合查询以及定时任务设置

本文介绍如何通过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的调度信息,即可查看到即将运行的作业信息,如下图所示:

原文地址:http://blog.51cto.com/candon123/2073126

时间: 2024-08-01 21:10:23

Oracle ODI 12c之多表联合查询以及定时任务设置的相关文章

Oracle数据库-多表联合查询&子查询

多表联合查询 当需要获取的数据分布在多张中,考虑使用联合查询1.SQL92方式2.SQL99方式 SQL92方式 1.笛卡尔积:将多个表的数据进行一一对应,所得到结果为多表的笛卡尔积. 结果的数量为所有表的数量的乘积. select * from emp,dept 2.等值连接筛选 概念:先做表的笛卡尔积,然后筛选,筛选条件为等值筛选. 注意:条件为字段的值相同来进行筛选,字段的名字可以不同 查询员工姓名,工作,薪资,部门名称 select * from emp,dept where emp.d

【Oracle】曾经的Oracle学习笔记(4-7)多表联合查询,子查询,动态条件查询

一.多表联合查询 二.子查询 三.动态条件查询 LESSON 4 Displaying Data from Multiple Tables-------------------------------------------------------- 查询s_emp表中最大的工资数,并且显示出这个最大工资数的员工名字 select last_name,max(salary)from s_emp; 多表查询 查询多张表的时候会产生笛卡尔积 为了防止笛卡尔积的产生,我们需要使用某些条件把两张表或多张

约束条件 ,表与表之间的关系 和多表联合查询***

一.约束条件    为了确保数据的完整性 可以给列加上约束条件    完整性的分类:        1.实体完整性        2.域完整性        3.引用完整性    1.实体完整性        实体:即表中的一行(一条)记录 代表一个实体 entity        实体完整性的作用:标识每一行数据不重复        约束类型:            1.1 主键约束(primary key)            1.2 唯一约束(unique)            1.3

一个多表联合查询引发的思考

朋友做一个项目,遇到一个多表联合查询的需求. A表SYSTEM_ID和B表SYSTEM_ID关联: C表中ROLE_LIST字段,存储多个B表中的ROLE_ID值: 需要一个sql,当A表中SYSTEM_ID值为123时,找到B表和C表的关联,当B表满足SYSTEM_ID值为123时,包含其中的ROLE_ID数据,显示C表中NAME数据.例如查询结果为:james.lucy. T_TABLE_A表 ID SYSTEM_ID 1 123 2 234 T_TABLE_B表 ID SYSTEM_ID

两个表联合查询获取聊天表中用户最新的一条聊天数据

一个用户表,一个聊天记录表,两个表联合查询获取聊天表中用户最新的一条聊天数据 select c.contentfrom sixin as c where c.tid = a.user_idorder by ctime desc limit 0,1) as content,(select c.statusfrom sixin as c where c.tid = a.user_idorder by ctime desc limit 0,1) as status from users as a, s

MySQL DML操作--------多表联合查询实战

1. 背景 * 多表联合查询是把不同表的记录到一起的一种方式 * 在SQL标准中规划的联合(join)大致分内连接,外连接,全连接.其中外连接又分左外连接,右外连接. 2. 内连接例子 (inner join) [ 员工 --> 部门 ] * 查看员工表[ employees ]和部门表[ departments ]结构 mysql> desc employees; +-----------+---------------+------+-----+---------+------------

对于多表联合查询的一点理解

操作数据库时多表联合查询很常见.也知道常见联合查询的集中类型,内连接.外连接.全连接.自连接,外连接又分为左连接和右连接. 这些概念我一直都知道,但对于感念的理解并不透彻.对于不同类型的联合查询的结果数据集合没有清晰的区分.前两天,工作中又遇到的这样的问题,才开始弄明白. 内连接:传统写法:select a.*,b.* from a,b where a.column=b.column; 新式写法:select a.* from a inner join b on a.column=b.colum

MVC5+EF6简单实例---以原有SQLServer数据库两表联合查询为例

工具:VS.net2013.EF6.MVC5.SQLServer2008 参考出处: http://www.cnblogs.com/slark/p/mvc-5-get-started-create-project.html http://www.cnblogs.com/miro/p/4288184.html http://www.cnblogs.com/dotnetmvc/p/3732029.html 一.准备工作 在SqlServer上创建数据库:Element 模拟两个表并插入数据:SysU

hibernate实现多表联合查询

以前用sql实现联合查询 是非常简单的事,只需要写sql语句就可以,第一次遇到hibernate要实现多表联合查询的时候还楞了一下.最后看了下资料,才恍然大悟,hibernate实现多表联合查询跟SQL没多大差别. hibernate很多实现都是靠喜欢配关系,但是如果两张表,数据量都非常大的时候,并不合适配关系. 例如:student表和score表需要做联合查询. 1)sql: select s.id,s.name,sc.score from student as s,score as sc