当前位置:Gxlcms > 数据库问题 > 数据仓库(七):Oracle Warehouse Builder(OWB)创建数据仓库

数据仓库(七):Oracle Warehouse Builder(OWB)创建数据仓库

时间:2021-07-01 10:21:17 帮助过:2人阅读

[sql] view plain copy
  1. select ‘grant select on user2.‘||t.table_name||‘ to user1;‘ from dba_tables t where t.owner=‘user2‘;  
  2. ‘或者赋给所有表的select权限  
  3. grant select any table to user2  
  • 导入表结构

一种方式是“新建”模块后,选中“完成后导入”复选框,自动进入“导入”向导;另一种方式是选择刚才建立的数据源模块,单击右键“导入”

  • 按照导入向导导入作为数据源的表

3.4 新建“目标数据模块”

  • 建立目标数据模块,“项目名称-数据库-Oracle”上右键“新建”
  • 按照向导输入模块名,选中“数据仓库目标”单选按钮
  • 点击“位置”右侧的“编辑”,进入连接信息编辑窗口,输入目标表所在数据库服务器的IP、端口、用户名、口令
  • 目标表可以用DDL脚本在数据库中建立;也可以在OWB中“项目名称-数据库-Oracle-目标数据模块名称-表”右键,“新建”通过图形化界面建立;也可以直接在映射中建立(本例采用这种方式)。

3.5 设计“映射”

  • “<项目名称>-数据库-Oracle-<目标数据模块名称>-映射”,右键“新建”,输入映射名称,“确定”后进入映射编辑器;从左上角的“浏览器”导航窗体中选“可用对象”标签,找到数据源模块下的表,拖拽到右边的“映射”框中
  • 从 “调色板(Palette)”框的“全部(All)”视图中找到“表运算符(Table)”,拖拽到右边的“映射”框中,此时弹出“添加表运算符(Add Table Operator)”对话框,选择“创建未绑定的运算符(不具有属性)(Create Unbound operator with no attributes)”,含义是在OWB的资料库中还没有这张表的定义(即还没有采用3.4中建立目标表的另外两种方法创建所需的目标表),输入表的名 称
  • “确定(OK)”后,进入映射设计阶段,选中数据源JQ_CJJL表中的某个属性拖拽都目标表T_JQ_CJJL的“INOUTGRP1”上即可,如下图
    技术分享
  • “创建和绑定(Create and Bind)”T_JQ_CJJL表到“目标数据模块”,这一步的作用是在OWB资料库中“目标数据模块”的“表”中添加T_JQ_CJJL,以便以后可以 部署这个表,也就是在目标数据库的目标用户下生成此表。“右键”T_JQ_CJJL表,选择“创建和绑定”
    技术分享
  • “保存”,关闭“映射编辑器”
  • 在Design Center的“项目浏览器”下,找到“<项目名称>-数据库-Oracle-<目标数据模块名称>-表”,可以看到T_JQ_CJJL,这样“创建和绑定”就成功了。

3.6 设计“进程流”

  • “<项目名称>-进程流-进程流模块”右键“新建”,输入“进程流模块”名称如WF1,点击“位置”右侧的“编辑”,输入Workflow管理员所在数据库服务器IP、端口、用户名和口令;如果数据库是10gR2,Workflow版本是2.6.4。
    技术分享
  • "确定"后自动弹出“新建进程流包”窗口,输入名称
  • “确定”后自动弹出“新建进程流”窗口,输入名称。也可右键“进程流包”新建进程流。进入“进程流编辑器”
  • 进程流的作用是将映射串联起来,确定映射的执行顺序,映射可以串行,也可以并行。简单起见,只加入一个映射。左上角“浏览器”选中“可用对象”找到目标数据模块中的映射MAPPING_JOB,拖拽到右边的“进程流(Process Flow)”框中
  • 在“START1”图标和“MAPPING_JOB”图标间画连线,在MAPPING_JOB和END_SUCCESS之间画连线,如下图:
    技术分享

3.7 设计“计划”

  • 不同的“工作流模块”和“目标数据模块”需要设计不同的“计划”,下面介绍为“工作流模块”建立“计划”
  • “<项目名称>-计划”右键“新建”,输入“计划模块”名称如SCH_WF,点击“位置”右侧的“编辑”,输入Workflow管理员所在数据库服务器的IP、端口、用户名和口令
  • “<项目名称>-计划-<计划模块名称>”右键“新建”,按照向导设置即可
  • 更改设置的“计划”,“<项目名称>-计划-<计划模块名称>-<计划名称>”右键“打开编辑器”,即可更改先前的设置
    技术分享

3.8 “配置”“工作流”的“计划”

通过这个步骤将上面两个步骤中创建的工作流和计划进行关联,即“工作流”将按“计划”执行。

  • “<项目名称>-工作流-<工作流模块名称>-<工作流包名称>-<工作流名称>”右键“配置”,如下图:
    技术分享
  • 点击“引用的日历(Referred Calendar)”右边的空格,从下拉框中选择3.7中创建的“计划”SCH_WF_DAY

至此,我们完成了Design Center中的设计工作,下面进入Control Center中部署和运行刚才所作的设计,完成整个ETL流程。

4 在Design Center中创建Control Center并设为缺省的Control Center

4.1 创建Control Center

  • 在Design Center的“连接浏览器”中,“控制中心”右键“新建”
  • 输入CONTROL CENTER名称,“编辑”CONTROL CENTER位置,输入OWB资料库所有者(注意是所有者owner,而不是一般用户,一般用户则需要设置其方案为所有者的方案方可)的用户名、口令、所在数据库服务器IP、端口
  • 双击刚才创建的CONTROL CENTER,进入“编辑控制中心”窗口,选择“数据位置”标签,从左边的“可用位置”将需要的选到右边“所选位置”中:数据源模块位置、目标数据模块位置、进程流模块位置、计划模块位置
    技术分享

4.2 将创建的Control Center设置为缺省

  • “<项目名称>-配置-DEFAULT_CONFIGURATION”右键“打开编辑器”,选择“详细资料”标签,下拉框中选择刚才创建的
    技术分享

5 在Control Center Manager中部署和执行ETL

5.1 进入Control Center Manager

在Design Center中,选择菜单“工具”-“控制中心管理器(Control Center Manager)”,输入OWB资料库所有者口令,即可进入控制中心窗口

5.2 注册所有位置

在控制中心窗口左侧列出了项目下的所有位置。

在本文的例子中,由于实际的目标数据库和设计时的目标数据库是同一个,并且在Design Center设计ETL过程时,我们编辑了所有的位置,因此不必在控制中心管理器注册位置。但在实际应用中,一般地,开发设计时的目标数据库、数据源、进 程流、计划所在的数据库和实际使用的不同,因此在部署上线时需要重新注册位置。这是OWB设计一次、部署多次的特性。

5.3 部署某个项目下所有对象

  • 选中“<项目名称>”,右侧的“对象详细资料(Object Detail)”会列出所有对象,如表、映射、进程流、工作(配置了计划的进程流或映射)
  • 点 击“默认操作(Default Actions)”,所有对象的“部署操作(Deploy Action)”列就会有“无(None)”变为“创建(Create)”,但是存在一些表是数据源表,无需部署,可以点击“创建(Create)”改为 “无(None)”。然后点击左上角的第四个小图标“部署”。(对于表、外部表、物化视图、队列等对象,部署代表着生成DDL脚本,并且将这些脚本在注册 位置的数据库用户下执行,这样来创建上述对象。但数据源中已经有这些表了,如果再部署,就会报错)
    技术分享
  • 注意查看下方的“控制中心作业(Control Center Jobs)”的第三列“Status”,如果都是绿色的对勾,说明部署成功;也可以查看上方所有对象的“部署状态(Deploy Status)”列,变为“成功”,说明部署成功。“警告”可先忽略。

常见错误

(1)RPE-02072: 在 Oracle Workflow 资料档案库中尚未启用 Oracle Workflow NLS 语言 ZHS。请使用 Oracle Workflow wfnlena.sql 服务器端脚本启用该语言。

[sql] view plain copy
  1. C:\oracle\product\10.2.0\db_1\wf\admin\sql>sqlplus owf_mgr/owf_mgr @wfnlena.sql ZHS Y  

注意路径。

(2)RPE-02260: Database User OWF_MGR must be a Control Center User. Please use the OWB Design Client against the Control Center repository to grant the Control Center User role.

您需要授予 Oracle Workflow (OWF) 用户 owf_mgr 特定角色,使其具有在 Control Center 中执行进程流的权限。
您不必将 Control Center 的口令嵌入 OWF 用户所拥有的数据库链接中。Control Center 用户具有高特权,其口令受到严格控制。
要注册 OWF 用户,可以从 Global Explorer 面板中的 Security > Users 节点使用 Register Warehouse Builder Users 向导。要访问 Security 节点,请确保以信息库所有者的身份登录到 Design Center。
1)
如果尚未登录,以用户名/口令 rep_owner/rep_owner 登录 Design Center。
在 Global Explorer 面板中展开 Security 节点。右键单击 Users 节点并选择 New。
注:在创建新用户之前,您必须先保存或恢复您的更改。要保存以前的更改,请从 Design 菜单中选择 Save All,或者单击工具栏中的技术分享
此时出现 Create User 对话框。
技术分享

2)
在 Create User 对话框中,您可以从可用数据库用户列表中进行选择,也可以创建一个新用户,该用户将自动注册为 Warehouse Builder 用户。

在本教程前面的部分中,我们说明了如何安装 Oracle Workflow Server,如何使用 Oracle Workflow Configuration Assistant,以及如何将 owf_mgr 指定为工作流帐户。其结果是将 owf_mgr 创建为数据库用户。从 Available DB Users 列表中选择 owf_mgr,单击 > 将其移至 Selected Users 列表。单击 OK。
技术分享

注意,owf_mgr 用户已添加到 Global Explorer 面板的 Security > Users 节点中。
技术分享

5.4 执行“作业”

  • 如果“部署”全部成功,可以选择右下方“已调度(Scheduled)”,选择WF_JOB1_JOB,右键“开始”
  • 在“计划”的指定运行时间此“作业”就会开始运行

5.5 检查结果是否正确

查看“目标用户”下的目标表T_JQ_CJJL,是否记录了从数据源表映射过来的数据。

推荐阅读:

强烈推荐:http://pan.baidu.com/share/link?shareid=513304&uk=1476405502
比较简单:http://download.csdn.net/detail/kingzone_2008/5492245
官方文档:http://pan.baidu.com/share/link?shareid=513296&uk=1476405502

参考资料:

Oracle Corporation 2006.Oracle BI Warehouse Builder 10g Release 2自学教程

http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/229051_zhs.htm

http://doc.chinaunix.net/oracle/200802/159388_7.shtml

数据仓库(七):Oracle Warehouse Builder(OWB)创建数据仓库

标签:

人气教程排行