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

OWB 建立数据仓库的一般过程

    博客分类:
  • OWB
阅读更多

顾名思义,OWB是用来建立数据仓库的工具。既然是工具,那么对于使用者来说,最重要的就是知道自己想要做什么,然后才是怎么去实现。就像使用word,最重要的是知道要写些什么,至于怎么使用word来完成我们心中的功能,则是下一步的工作了。

 

但成为一个好作家是一个漫长的过程。我们还没有足够的积累和机遇来知道应该如何设计数据仓库。但是我们可以通过学习工具来使这个过程变得快一些。

 

为什么要建立数据仓库?百度上一搜一大把,简单的来说就是把海量的历史数据以某种更加便于快速查询的结构保存起来。

 

我理解的建立数据仓库的过程就是一个ETL(Extract, Transform, Load)的过程。这个过程可能在被设计好之后只执行一遍(对于历史数据来说),但大多数是每间隔一段时间就运行一次,从而使我们数据仓库中的数据保持up to date.

有些人说OWB是一个ETL工具,也有人说是ELT工具,都有道理。我倒觉得没有必要在这些方面较真。当我们了解一个典型的mapping(映射)是如何在OWB被编译和执行的,这些概念自然就比较清晰明了了。

 

总的来说,建立一个数据仓库,有三个大步骤:

1. 设计和定义metadata元数据,包括data source 的data type,dimension 和cube 的结构,mapping的结构,process flow的结构,甚至schedule的设置等。

2. 将OWB编译生成的目标dimension, cube, mapping等,部署到目标oracle数据库里(如果是11gR2,则还可以部署到基于OC4J的J2EE服务器上)。具体表现为创建target table, 创建各种plsql package等等。

3. 通过process flow,schedule或手动等方式,调用执行plsql package,从而真正的将数据装载到数据仓库中。

 

一般前两步在开发测试环境中反复进行,直到方案最红确定。和写代码差不多一个意思。一旦设计完成,就会每隔一段时间进行一次第三个步骤。而如何查询和使用数据仓库中的数据,则不是我们现在需要考虑的时候,这些东东以后可以由OBISE、OBIEE,甚至其他公司的产品来使用。

 

重要是第一步。即如何设计metadata元数据。我们把ETL的设计分开来说。

Extract。一般翻译为抽取。意思是从各种不同的数据源中读取数据。可能是oracle, db2, sqlserver, mysql中的数据,可能是excel文件,可能是peoplesoft、sap中的数据,还可能是纯文本。这需要我们了解数据源的基本结构,在OWB对其进行定义。

Transform。一般翻译为转换。意思是在装入数据仓库前需要对数据结构进行的处理。比如不同的数据源中,把性别以(0,1), (M,F), (男,女)等形式保存。我们需要将其统一为一种格式,如(0,1)。再比如,不同的数据源中的字段需要截短或补齐等等。

Load。一般翻译为装载。将数据存入数据仓库。话说数据仓库的存储方式老多种。最简单的就是所谓Relational-OLAP。直接用table作为存储媒介。所有的dimension和cube都被映射到其对应的table。此外还有Multi-dimensional-OLAP,以一种全新的结构保存dimension和cube的数据。另外还有最新的所谓HOLAP,结合ROLAP和MOLAP的优点于一身。这些实现方法回头慢慢再细谈。

 

对于某个dimension或cube的ETL的过程,可以在一个mapping(映射)里完成。一个mapping在deploy的时候会以一个plsql package的形式存在。用户在实际使用当中,会根据具体的业务需要,建立N个dimension和M个cube。这些dimensional的东西可能需要一个具体的执行流程。process flow就是干这事的。process flow的概念不是OWB特有,大家应该都比较熟悉了,就是对某个执行流程的管理。一个process flow应该完成某件相对独立的大事。

 

最后就是schedule了,设定一个定时器,让某个process flow在某个时间点执行一次,完成我们装载数据仓库的整个过程。

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics