`
zhzhiqun2005
  • 浏览: 227220 次
  • 性别: 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 提供了一系列的功能和服务来帮助用户高效地进行数据抽取、转换、加载(ETL)操作,同时支持实时数据集成以及复杂的数据处理任务。 #### 二、版权与许可 - **版权说明**:文档明确指出所有权利均归甲骨文公司...

    ODI中变量的使用

    【ODI中变量的使用】 在Oracle Data Integrator (ODI)中,变量是一个至关重要的概念,它允许我们在数据集成过程中动态地管理信息,从而提高了灵活性和效率。ODI的变量能够存储各种类型的数据,并在不同场景下进行...

    Oracle ODI官方培训文档

    - **创建主仓库和工作仓库**:学习者将了解到如何设置ODI的核心组件——主仓库和工作仓库,这两者是ODI架构中的核心组成部分。 - **拓扑管理**:这部分内容讲述了如何管理和配置ODI的拓扑结构,包括创建和管理代理...

    ODI系统架构介绍

    2. **易用性**:ODI提供了一套直观的图形化用户界面,使得数据集成项目的开发和管理变得更加简单高效。 3. **灵活性**:ODI支持多种数据源和目标数据库,允许用户根据实际情况灵活选择最佳方案。 #### 六、应用场景...

    java 调用 odi webservice

    ODI(Oracle Data Integrator)是一种数据集成平台,提供了webservice接口,允许用户通过webservice调用ODI方案执行,从而实现数据的同步。 在本文档中,我们将通过 Java 应用程序调用 ODI webservice,实现数据的...

    ODI培训-ODI流程

    ODI(Oracle Data Integrator)是Oracle公司提供的一款强大的数据集成工具,主要用于企业级的数据迁移、转换和加载任务。在ODI培训中,通常会涵盖从安装配置到实际操作的全过程,确保用户能够全面掌握其核心功能。...

    ODI10安装资料文档

    - **创建资料库用户**:创建ODI的管理员用户和其他操作员用户,分配相应的权限。 - **创建主资料库**:主资料库存储ODI的系统元数据,是ODI环境的核心部分。 - **连接主资料库**:配置ODI客户端连接到创建的主...

    ODI中过程的使用

    在ODI中,"过程"是类似于数据库存储过程的概念,它允许用户执行一系列复杂的操作,如数据清洗、转换和加载,而无需依赖特定的知识模块(KM)。这个文档主要介绍了如何在ODI中使用过程,特别是如何通过源表标志位删除...

    ODI 笔记和数据库脚本

    5. **SQL脚本**:提供了创建ODI用户(如`ODI_MASTER_REP`、`ODI_WORK_REP`、`ODI_SRC`和`ODI_TAG`)的SQL脚本,包括用户身份验证、临时表空间分配和角色权限的授予。 这些笔记为理解ODI的基本架构和操作流程提供了...

    ODI12C接口查询及日志清理SQL

    ODI-12c 工作库查询接口及日志较大后台清理sql

    ODI部署及使用

    ODI 允许用户在多个异构数据源之间进行数据集成、同步和转换,为企业提供了一个强大的数据集成解决方案。 2. ODI 的特点 ODI 的特点包括: * 强大的数据集成能力:ODI 可以集成多种类型的数据源,包括关系数据库...

    Oracle ODI使用手册

    在使用 Oracle ODI 之前,首先需要创建数据库用户,必须为主存储库以及工作存储库各创建一个用户。创建用户的脚本如下所示: ``` CREATE TABLESPACE D_ODI_DATA DATAFILE ‘C:\ORACLE\DB\PRODUCT\10.2.0\ORADATA\...

    Oracle ODI 11g 官方教程

    本教程为用户提供了创建和连接 ODI 主资料库和工作资料库的步骤,旨在帮助用户快速开始使用 Oracle Data Integrator 11g。通过遵循本教程,用户可以轻松地创建和连接 ODI 主资料库和工作资料库,以便更好地使用 ...

    ODI安装手册

    - **创建资料库用户**:在Oracle数据库上创建两个用户,一个为主资料库用户,另一个为工作资料库用户,赋予必要的权限。 - **创建主资料库**:在Oracle Data Integrator的"Repository Management"中执行"Master ...

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

    ODI基于Java,支持多种数据库和数据源,允许用户创建复杂的逻辑工作流来处理数据。 3. **ODI理解之1** ODI的设计理念是强调元数据驱动,这意味着大部分数据处理逻辑都存储在元数据仓库中,这使得重用和维护变得...

    odi10最新安装手册.doc

    然后创建两个数据库用户,一个为主数据库用户,另一个为工作数据库用户,分配必要的权限。 创建主资料库是ODI配置的核心部分。通过程序菜单访问"Repository Management",按照提示输入数据库连接信息,包括Driver、...

    详细的Oracle Data Integrator (ODI) 11g开发手册

    - **主资料库**:存储关于ODI IT架构的信息,例如ODI用户的详细信息、工作资料库的数量等。 - **工作资料库**:每个ETL项目通常都有一个对应的工作资料库,用于存储项目特定的数据和元数据。 - **主资料库创建**...

    ODI 10.1.3.4安装手册

    2. 创建数据库用户:在Oracle数据库中,你需要创建两个用户,一个用于主资料库,一个用于工作资料库,赋予必要的权限,如connect和resource。 3. 创建主资料库:通过Repository Management工具,选择适当的数据库...

    odi 全程学习资料

    "oracledi_getting_started.pdf" 是ODI的官方入门指南,提供了快速上手的指引,包括ODI的工作环境、设计界面、基本操作和第一接口的创建。这将帮助初学者快速理解ODI的工作方式。 "[技术学习][Oracle+Data+...

Global site tag (gtag.js) - Google Analytics