设为首页 收藏本站
查看: 1196|回复: 0

[经验分享] 商业智能研究 (十三) oracle warehouse 一些基本概念

[复制链接]

尚未签到

发表于 2016-8-2 07:21:20 | 显示全部楼层 |阅读模式
oracle warehouse 一些基本概念

先介绍一些基本的概念,为了后面介绍如何在oracle上使用materialized view + dimension 部署foodmart demo 的例子的时候做些背景介绍。

数据仓库不同与普通的OLTP 数据模型,它由两种表组成:事实表(Fact table) , 维度表(Dimension Table)

Fact table : Fact table 主要储存用户实际感兴趣的信息的表 . 事实表有多个维表的外键 , 事实表的主属性可以定义成多个外键的集合 . 事实表的从属性称为事实(Fact)或者叫度量(Measure) ,它们一般都是数值或其他可以进行计算的数据.

Dimension table : Dimension table 就是我们需要分析的主题了,它主要表现层次结构,分类信息,比如Time,Product,
Customer,location ,dimension table 有时候又叫做lookup 或reference 表,dimension table  一般随ETL过程缓慢的变化而变化的.它一般比较小,但是却决定了数据库的性能,因为我们要在fact table 和dimension table 做多种join 操作.

Star Schemas
星形模型之所以被称作星形模型是因为它是由中心的一个或者多个事实表周围围绕一组维表组成。
DSC0000.png


materialized view
在oracle中,materialized view 是一个预先计算的,从fact table 和dimension table 做的聚合操作(不一定只有sum操作),view 是不储存数据的,但是materialized view 是存储数据的,它是oracle构建数据仓库最重要的技术之一,主要是为了解决性能的问题,就象MOLAP 系统预先计算的cube 是一样的.

dimension
dimension 是建立在dimension table 是上的,它只是一个概念的定义,主要定义level,category 的信息,它实际并不存储任何的数据,数据仍然是在dimension table中的,dimension 主要是为了配合materialized view 来解释数据的层次关系,也是为了解决性能问题的.

为了在oracle中使用materialized view ,用户必须有create materialized view 的权限.
为了使materialized viwe 发挥作用,两个参数必须先定义:
QUERY_REWRITE_ENABLED=TRUE;
QUERY_REWRITE_INTEGRITY=TRUSTED;
materialized view 主要可以减少物理的读写次数,减少CPU的计算时间,提高响应速度.但它也会占用更多的磁盘空间,包括materialized view 和它的index.

关于如何构建高性能的数据仓库,ningoo 在 http://www.ningoo.net/2007/05/21/data_warehouse_guide_notes.htm 上也有一篇文章讲解了在oracle上构建数据仓库的性能优化技巧,包括
1 . RELY constraint
2 . bitmap index 和 Bitmap join index
3 . Unique constraint & unique index 的 disable validate
4 . Partition table

大家可以到ningoo 的网站上去看看.另外还有三篇关于oracle datawarehouse 的文章,关于materialized view 和 dimension的例子,大家可以到
http://www.akadia.com/services/ora_materialized_views.html      介绍materialized view
http://www.akadia.com/services/ora_dimensions.html              介绍一个dimension + materialized view
http://www.akadia.com/services/ora_olap_dimensions.html         介绍两个跨表的dimension + materialized view
上面的三篇文章都写的非常的通俗易懂,而且它提供的脚本可以很容易的运行例子,是很好的oracle warehouse 文章,推荐大家看看.

还有些procedure 用来验证dimension的数据是否有效的在
http://www.stanford.edu/dept/itss/docs/oracle/10g/appdev.101/b10802/d_dimens.htm

EXEC dbms_utility.analyze_schema(' your db name ','COMPUTE');
EXEC dbms_olap.validate_dimension(' dimension name ',' db name ',FALSE,TRUE);
SELECT * FROM mview$_exceptions;

下篇介绍在oracle上部署mondrian 的 foodmart demo .

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-251935-1-1.html 上篇帖子: 连oracle 11g 数据库是报Got minus one from a read call错误 下篇帖子: Java 调用 Oracle 存储过程返回结果集
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表