RSS订阅
RSS订阅TT数据库

Oracle数据仓储DBA的MetaBase脚本

2008-8-22  选择字号:  | |
打印本文章

导读:对于任何Oracle DBA来说,一个最有挑战性的领域就是对复杂的job stream进行管理。幸运的是,Oracle已经有dbms_scheduler包和OMB脚本语言可用来对它进行管理。

关键词:Oracle 数据仓储 数据仓储 DBA MetaBase脚本

正在加载数据... 【TechTarget中国原创】对于任何Oracle DBA来说,一个最有挑战性的领域就是对复杂的job stream进行管理。幸运的是,Oracle已经有dbms_scheduler包和Oracle Warehouse Builder MetaBase Plus (OMB)脚本语言可用来对它进行管理。就Oracle数据仓库管理而言,Oracle Warehouse Builder产品提供一种能够整合抽取、转换和装载等命令的OMB脚本,这种整合要依靠能进行错误检测、确认以及数据配置的内部工具才能进行。对OWB环境来说,它就是一种类似TP的检测器(CICS)。

【TechTarget中国原创】

对于任何Oracle DBA来说,一个最有挑战性的领域就是对复杂的job stream进行管理。幸运的是,Oracle已经有dbms_scheduler包和Oracle Warehouse Builder MetaBase Plus (OMB)脚本语言可用来对它进行管理。

就Oracle数据仓库管理而言,Oracle Warehouse Builder产品提供一种能够整合抽取、转换和装载等命令的OMB脚本,这种整合要依靠能进行错误检测、确认以及数据配置的内部工具才能进行。对OWB环境来说,它就是一种类似TP的检测器(CICS)。

一方面Oracle公司在Oracle 10g Enterprise Manager图形用户界面(GUI)方面取得重大进展,另一方面一些高级Oracle专家仍然觉得有必要利用更加活跃的脚本环境。一个图形用户界面不能完成所有的任务,并且有些高级操作需要更加灵活、精确的工作控制逻辑:

预定执行——工作流在预先确定的时间、先决条件下完成。确保“遗漏”工作都是预先确定的。

条件执行——在已完成任务情况的基础上执行新的任务。

对错误警告和工作流的确认——Oracle DBA需要确定所有可能出错的范围并创建用户退出窗口终止执行直到解决所有重要事情。

Oracle数据仓库专家在管理ETL时有两种方法:

亲自动手(DIY)——如果Oracle DBA已经懂得怎样创建batch stream、检测错误和进行有条件执行,那么写ETL就是一种方法。Oracle10g dbms_scheduler包能够用来安排job-stream,或用习惯做法:OS shell脚本。DIY方法更加灵活,这样你就可以选择最佳的处理方法和技术,而不是依靠OWB提供的工具。Tim Hall在这方面撰写了一本很好的书,书名为Oracle Job Scheduling,它是在Oracle环境中执行复杂工作任务的最全面的参考书。

使用OracleMetaBase脚本——OMB是Tcl语言的扩展(全称为tickle),它具有下列强有力的特性:程序设计语言,包括复杂的布尔运算符、变量支持和loop循环(FOR, WHILE, REPEAT-UNTIL)。Oracle数据仓库Tcl扩展是为OMB定做的,所以进行复杂的数据配置以及规划job stream。跟Java一样,OMB有独立的平台而且在Mainframe或者Macintosh上运行MetaBase时不需要做任何的改变。

当然,MetaBase需要你额外购买Oracle Warehouse Builder来处理ETL,但是OWB OMB的脚本语言是一种具有吸引力、并能代替“亲自动手”的方法,这种方法取决于你ETL处理的经验水平。

内部OMB语句

让我们更仔细地观察OMB环境。OMB跟SQL*Plus很相似,它可以调用内部命令目录来处理OWB数据映射。这些数据映射能嵌入(一个层级结构),并且OMB给出命令允许你从Tcl程序中调用这些映射。以下是两种OMB命令:

元数据定义语言(MDL)——如DDL一样,通过它你能创建和下拉OMB对象。MDL对象类型包括项目、模块、表、映射以及工作流程步骤。

OMBalter——用来为Warehouse Builder元件改变元数据。在下列的示例中,要注意类似UNIX反斜线符号命令延续字符:


ombalter mapping ’MAP_NAME’ modify operator ’join’ 
set properties join_condition) 
values (’fact.empno = emp.empno) 

OMBcreate——用这一命令在OWB中创建一个元件,也许是一个项目、模块、表、映射或者工作流程步骤。

OMBdrop——用来下拉存放中的命名对象。

元数据维护语言(MML)——类似Oralce DML,MML命令允许我们改变(增加、更新、删除)命名对象。一些MML命令还包括:

OMBCC——这是“更改内容”命令,其用法和UNIX以及DOS "cd"命令一样,都是用于更改OWB目录。

OMBCOMMIT——负责业务办理。

OMBCOPY——这是一个手动命令,用于复制和该命令同以类型的一个或者多个对象。


ombcopy ’AN_EXTSTING_MAP’ to ’A_NW_MAP’ replacement

OMBDEPLOY——它通过OWB运算时间表给具体的数据库部署一个具体的对象。

OMBLIST——OMBLIST命令包含在目录命令内,该目录在具体的子目录结构中列出了所有OWB对象。

OMBRECONCILE——用于协调OWB元数据定义和数据库元数据定义。

ODTUG文件明确提出“用Oracle的MetaBase Plus语言创建和部署映射和工作流”,使用Oracle的MetaBase对传统工作流应用软件来说确实是个很不错的选择,下面是MetaBase范围Tcl工作范例:下面的例子同样说明部署OWB流程指向Oracle Workflow引擎。首先,它连接存储库,改变了STUDENT_YEAR_4模块内容。然后开始用一个特殊的命名模式找回所有的工作流包,内部loop循环还能对该部署什么样的工作流进行控制。


proc owb_deploy_workflows_all {} {
 OMBCONNECT OWB_DEV/XXX@SERVER:1521:DBPROD
 OMBCC ’STUDENT_YEAR_4’
 OMBCONNECT RUNTIME ’SASI_CURR_RT’ USE PASSWORD ’XXX’
 set ModList [ OMBLIST PROCESS_FLOW_MODULES ’CURR_W.*.’]
 set i 1
 foreach ModName $ModList {
    puts "Accessing WF package: $ModName"
    OMBCC ’$ModName’
    set mapList [ OMBLIST PROCESS_FLOW_PACKAGES ’LD_ACNR.*.’ ]
    set J 1
    foreach mapName $mapList {
       puts " deploying: $mapName"
       OMBcreate TRANSIENT DEPLOYMENT_ACTION_PLAN
       ’DEPLOY_PLAN’ ADD ACTION ’WORK_FLOW_DEPLOY’
       SET PROPERTIES (OPERATION)
       VALUES (’create’) SET REFERENCE PROCESS_FLOW_PACKAGE
       ’$mapName’
       OMBDEPLOY DEPLOYMENT_ACTION_PLAN ’DEPLOY_PLAN’
       OMBdrop DEPLOYMENT_ACTION_PLAN ’DEPLOY_PLAN’
       OMBCOMMIT
       incr J
       }
OMBCC ’..’

小结

Oracle数据仓库DBA能否像选择ETL脚本语言一样选择OMB脚本? 由于OWB通常带有数据仓库许可证,因此它一般都是免费工具,任何数据仓库DBA都想希望能够在非GUI环境中处理OWB。唯一的缺点就是需要学习Tcl语言。

还没有登录? 阅读全文请先登录或注册
用户名:(请填写您的E-mail做为登录账号)
  • 获取最新的IT业界资讯、市场动态、行业趋势等独家原创内容。
  • 分享国内外技术专业人士提供的技巧经验。
  • 利用专注IT的技术资源中心,不断更新专业知识。
  • 享受白皮书、Webcast等系列特色增值服务。
  • 免费参加TT中国举办的各种会员活动。
  • 更多的精彩服务,在不断开发中……
用户名:(请填写您的E-mail)
密 码:
 永久登录
请输入您的登录email:
银行破产、全球经融动荡、信贷危机和销售萎靡使公司面临艰难的选择。一些公司仍在拥有少量资源中艰难度日,或者是面临破产,各地的主管都在努力寻找消减公司成本的方法。
由于商业智能(BI)赢得了众多的客户,Oracle在刚刚结束的民意调查中获得了更多的选票。Oracle在Gallup的产品经理Jim Collison表示,Gallup所获得的测验和调查的数据……
甲骨文和英特尔在正于美国旧金山举行的甲骨文全球大会上宣布,将就云计算展开合作,促企业级云计算发展及提高云计算的效率和安全性。
商业数据库在传统领域的市场竞争大的格局已经保持多年未变,而在商业智能方面的竞争日趋白热化。关于BI产产品市场份额的数据各大厂商一直众说纷纭,调查机构的数据……。
什么是BI?BI就是企业在运营上高层主管必须看的各项数据及分析资料。这些资料包括"总体运营状态分析统计资料"、"业务业绩达标率统计"……

本专题介绍了SQL Server服务代理相关方面的知识,包括SQL Server服务代理基础知识的概述、消息类型、契约、队列、服务和路由、SEND命令和RECEIVE命令、性能方面的改进以及对运行状况的监控等等。

无论你是否计划将SQL Server数据库转换服务(DTS)包迁移到SQL Server集成服务(SSIS)或在SQL Server 2005里运行DTS包,都需要专家的一些建议。这一指南主要是包括SSIS的相关基础知识、技巧帮助你进行SSIS调整,还介绍了SSIS有经验的一些用户的具体信息等等。

子查询是一个嵌套在SELECT、INSERT、UPDATE 或DELETE语句,或者另一个子查询里的查询。一个子查询可以返回一行或多行结果给父查询。标量子查询是只返回一个值的查询:只有一个字段的一行记录。标量子查询可以在SQL语句的大多数位置,其中你可以使用一个表达式或一个实际值。
最新更新
专家答疑
技巧
Michael Hillenbrand
你能解释一下数据库公程师、数据库架构师以及数据库管理员之间有什么区别吗?数据库管理员:这是目前最普遍使用的对从事数据库相关的工作的人的头衔。数据库管理员是指……
Brian Peasland
对5GB大小的Oracle 7.3存档或删除的最佳办法是什么?为了便于管理机构查询,这些数据至少需要再用20年的时间。我们担心将来我们不能对它重新获取并迁入一个更新的……
Rudy Limeback
如何创建一个约束限制2007年1月1日之前的日期被录入?用CHECK约束就可以。如下面的示例……