`
zhzhiqun2005
  • 浏览: 220445 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ODI工作中客户只提供查询权限的用户怎么办/

阅读更多


在做数据仓库的过程中, 常常会遇到这样的问题,用户提供的用户是一个只能查询的用户,这要在做ODI的过程中是无法反向表和视图的。
以下提供了两种解决方案:
1. 新建一个镜像用户,然后用户需要给予以下的权限。
ODI利用镜像用户玩转数据时,镜像用户与目标用户都需要以下授权
Grant
Select any table,
resource,
connect,
create view,
create synonym,
CREATE DATABASE LINK
to user
然后,ODI 在建模型中,新建的工作架构是用提供的只能查询的用户。 架构用以上的用户。

2. 可以利用创建物化视图的方式来达到工作的目的。
公司的项目中遇到需要从其它系统的数据库中取数据进行统计分析的问题,初步选择使用ORACLE的ODI工具进行抽数,但是对方提供的数据库用户下没有任 何对象,只是有查询所有表的权限,因此无法做数据反向。于是决定使用物化视图,把对方数据库中的数据拿过来,虽然数据量比较大,但是每月只拿一次,而且如 果设置成增量更新,也不会太慢。现在记录下物化视图的创建过程(以一张表为例)。

一、准备条件以及备注

假设双方数据库都是ORACLE10g,需要同步过来的表名叫:GG_ZLX_ZHU,对方数据库用户名:username,密码:password,SID:CPEES。
二、开始干活
1、首先要创建DB_LINK
CREATE DATABASE LINK to_cpees
CONNECT TO "username" identified by "password"
using "CPEES"
其中CPEES为新建的到对方数据库的TNS。执行,现在我们就已经创建了到对方数据库的DB_LINK TO_CPEES。
2、创建物化视图快速刷新日志
因为上面说过,以后视图的刷新将采用增量刷新的方式,因此,为配合增量刷新,ORACLE要求要在住表上建立物化视图日志。
CREATE MATERIALIZED VIEW LOG ON GG_ZLX_ZHU
WITH PRIMARY KEY
INCLUDING NEW VALUES;
(上面的SQL要在远程数据库上执行,不能在本地执行)
3、创建物化视图
物化视图,从名字上面来开,它应该是属于视图,但是确实物化。其物化是针对普通视图并没有真正的物理存储而言,其实可以简单的把物化视图看做一个物理表(不再做具体解释)。
CREATE MATERIALIZED VIEW GG_ZLX_ZHU --创建物化视图
BUILD IMMEDIATE  --在视图编写好后创建
REFRESH FAST WITH PRIMARY KEY  --根据主表主键增量刷新(FAST,增量)
ON DEMAND  -- 在用户需要时,由用户刷新
ENABLE QUERY REWRITE  --可读写
AS
SELECT * FROM GG_ZLX_ZHU@TO_CPEES; --查询语句
4、视图刷新
根据业务需要,每月不定时刷新,所以不能是JOB,而且数量多,所以也不能一个一个刷新。根据以上条件,选择使用ORACLE自带工具 DBMS_MVIEW工具包中REFRESH方法对物化视图进行刷新。该方法有两个参数,第一个参数是需要刷新的物化视图名称,第二个参数是刷新方式。我 们可以写存储过来,对每个物化视图调用一次REFRESH方法,也可以使用“,”把物化视图连接以来,一次刷新。如下:
CREATE OR REPLACE PROCDURE P_MVIEW_REFRESH AS
BEGIN
DBMS_MVIEW.REFRESH('GG_ZLX_ZHU','f');
END P_MVIEW_REFRESH;
或者使用
CREATE OR REPLACE PROCDURE P_MVIEW_REFRESH AS
BEGIN
DBMS_MVIEW.REFRESH('GG_ZLX_ZHU,GG_ZLX_FU','ff');
END P_MVIEW_REFRESH;
注意:
1、如果需要同时刷新多个物化视图,必须用逗号把各个物化视图名称连接起来,并对
每个视图都要指明刷新方式(f、增量刷新,c、完全刷新,?、强制刷新)。
2、当日志和物化视图创建好后,删除日志,则需要重新创建物化视图,否则无法增量
刷新。
3、因为上面写的物化视图时根据主键进行更新,因此,主表必须有主键。
4、以上文章中红色是为可替换的,大家可以根据自己项目需求来修改。
希望上面的内容对大家能有帮助。
忘了写删除方法了,日志和物化视图要分开删除
DROP MATERIALIZED VIEW LOG ON GG_ZLX_ZHU@TOCPEES;
DROP MATERIALIZED VIEW GG_ZLX_ZHU;
分享到:
评论

相关推荐

    Oracle ODI用户指南

    ODI用户指南,为学习ODI的朋友提供方便,总共分六大章节介绍

    ODI中过程的使用

    ODI中的过程类似数据库中的存储过程为,在ORACLE数据库中可以通过DBLINK实现跨库调用其它数据库的对象(表、视图等),当遇到不同类型的数据时则需要插件并且需要做大量的配置工作(如:ORACLE gateways 可以实现...

    ODI培训-ODI流程

    ODI从安装到借口整个流程全部包括,其中还有swf的视频,绝对好使。

    ODI10安装资料文档

    6.2 创建资料库用户 7 6.3 创建主资料库 7 6.4 连接主资料库 8 6.5 创建工作资料库 9 6.6 连接工作资料库 12 7 ODI Scheduler Agent 13 7.1 改变odiparams.bat文件 13 8 ODI Metadata Navigator安装步骤 14 8.1 先...

    ODI系统架构介绍

    ODI系统架构介绍, Odi architecture introduction

    Oracle ODI官方培训文档

    Oracle ODI操作培训文档,官方培训文档,需要可以仔细查看,我还没学完,与大家共同进步

    工作总结--ODI开发.docx

    工作总结--ODI开发.docx

    ODI中变量的使用

    在集成过程中时常出现:多对多、一对多、多对一的现象。 多对多:源数据库会定期生成数据表来存储数据,如财务系统每个月生成一张工资发放表,在集成时目标也要跟据源头一样每月生成一张工资表。 一对多:源数据库是...

    ODI教程

    ODI教程

    ODI代理找不到驱动

    在ODI11.1.1.5.0中创建了Microsoft Sql Server的服务器, JDBC驱动程序名称选择了Microsoft SQL Server 2005 Driver for JDBC (com.microsoft.sqlserver.jdbc.SQLServerDriver) 所有参数配置妥当,进行测试时,...

    工作汇报odi开发.doc

    工作汇报odi开发

    ODI技术说明白皮书(中文)

    描述ORACLE ODI 技术说明白皮书《中文翻译版》

    odi 知识模块开发

    odi 知识模块开发odi 知识模块开发odi 知识模块开发odi 知识模块开发odi 知识模块开发

    Oracle ODI使用手册

    Oracle ODI使用手册 详细讲解如何使用Oracle ODI

    oralce odi 培训11

    oralce odi 培训11

    java 调用 odi webservice

    用户需要通过第三方手动调用触发ODI方案的执行从而实现数据的同步。文档中描述了如何创建及调用ODI webservice,包括测试结果,相信对想手动调用实现odi数据同步者会有帮助。

    ODI集成工具使用

    讲述了ODI的操作及内部原理,图文并茂,非常详细

    odi清理日志文件.sql

    清理odi日志

    ODI新手操作指南,帮助使用ODI

    使用ODI写的文档,给其他人一些帮助。配置、过程、使用

Global site tag (gtag.js) - Google Analytics