- 浏览: 343004 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
zy_mensheng:
请问一下 怎么 js没有解析啊 还是钟表图..
调用BIEE提供的web service -
安铁辉:
师兄你很久没更新博客了
Information Dashboard Design读书笔记 -
mojunbin:
很清晰的文章
秒杀相关知识以及技术 -
yanchangjun8102:
楼主你好,我也最近在研究biee的webservice这块,按 ...
调用BIEE提供的web service -
sacredon:
不错,楼主我是看着你的这篇文章写代码调用的BIEE的Web ...
调用BIEE提供的web service
关于聚集导航的技术,最近读了一本很不错了书籍《Mastering Data Warehouse Aggregates: Solutions for Star Schema Performance》,其中的很多理念之前已经熟悉,不过人家写了一本书讲的还是蛮细致系统的。
1,数据仓库系统与数据库系统的对比,这个已经看了很多,就不列举了。
2,避免雪花模型设计
,除非架构需要。因为雪花模型带来的空间节省很小,却对查询和报表处理增加了很大的复杂度。
3,在企业级的数据仓库总,通常会面对多个星型模式的情况,产生了一个概念:drill across。
Drill-across reports combine data from multiple fact tables by querying each star separately and then merging the result sets by performing a full outer join on the common dimension values.
聚集的原则:
1,提升性能
数据库查询的时间花费主要集中在读取数据,大部分时间,是等待数据的从存储硬件加载。同时还要识别加载那些记录。当数据被返回后,需要执行连接和聚合操作,不过跟读取数据相比,这些额外操作所花的时间是很少的。聚集表的原理就是减少需要读取的数据量,进而提升查询性能。
2,The Base Schema and the Aggregate Schema
聚集导航的原则:
1,An aggregate schema must always provide exactly the same results as the base schema.
返回相同的结果,无论是走基表还是走聚合表,应该保证返回的结果相同。
2,The Same Facts and Dimension Attributes as the Base Schema(The attributes of each aggregate table must be a subset of those from a base
schema table. The only exception to this rule is the surrogate key for an aggregate dimension table.)
聚合表的字段应该与基表中的字段相同,唯一的例外情况是聚合表中的代理键字段。
如果引入新的外键字段则使得聚集导航对前端不再透明,有侵入性。(当然这个原则不是强制的,在biee的模型层,就实现了base schema和聚合表的字段的映射,字段名称不完全相同也是可以正确导航的)
聚合表的不可见性
:对于用户是透明的,作为数据仓库的一个组件,能够拦截sql对查询语句进行最优的表名替换,进而查询走相应的聚合表,依然返回正确的结果,但是速度快了很多。
聚集导航的实现
,既简单也复杂,简单的情况下,只需要替换合适的聚合表名即可,复杂的情况是,如何完全透明(不考虑前端应用,后端数据库,以及物理位置等),又如何保证聚合表的增加和删除依然保证sql的改写没有问题,一切都取决于如何维护。
数据库自带的特性,比如物化视图以及物化查询,这些技术与聚合表的理念类似,只不过物化视图是在数据库层,而聚集导航是中间层去处理。
Aggregate tables improve data warehouse performance by reducing the number of rows the RDBMS must access when responding to a query.总体思想就是,以空间换时间
Not all forms of summarization meet the requirements of invisible aggregates. 其他类型
的汇总:
1,pre-joined aggregates
the pre-joined aggregate places the results in a single table.聚合表,毕竟还是需要维度表和事实表进行关联查询的。而pre-joined的做法是将多张表查询的结果放到一张表里,避免了数据库层的join操作。带来的问题是对空间的占用比较多,特别是维度字段很多的情况。
其主要用在特定的报表查询中,在聚集导航组件处理时,要替换所有的表为pre-joined表名,然后忽略where后面的关联字段信息。
2,派生表
a.the merged fact table:The merged fact table combines facts from more than one fact table at a common grain.
b.the pivoted fact table(数据透视表):The pivoted fact table transforms a set of metrics in a single row into multiple rows with a single metric, or vice versa.
相当于将多列指标进行了行化,简化了特定的报表格式对应的数据存储问题。
c.the sliced fact table(分片表):The sliced fact table does nothing to transform the structure of the original schema, but does change its content.
根据特定维度的字段值,将事实表进行拆分,对基表结构不产生影响。
3,Tables with New Facts
总结如下:The merged and pivoted fact tables signifi-cantly alter schema structure, while the sliced fact table alters its content.虽然不能使用聚集导航,但是这些汇总表也是对于数据仓库基表的有益补充,只不过访问的时候需要应用sql显式指定。
聚集导航的实现技术涉及如下:
如何识别和选择聚合
:
1,分析报表来识别,比如查询频率高的sql优先聚合(Don’t study every report for candidate aggregates. Instead, look at the popular ones, batch subscriptions, poorly performing reports, and those that are required by key users.)
Some tools deliver key information only when certain conditions are met. This is often called pushing.(推送)
Sometimes, the distribution of individual values within a group is not even, a concept referred to as skew. (倾斜)
设计聚合:
table-level VS process-level
A table-level conformance matrix is an important component of the design documentation. It illustrates conformance requirements, and will be useful in selecting aggregates as well.
table-level是从表的粒度进行聚合的分析,更清晰的看出潜在的聚合表。process-level则更为宏观。
涉及到缓慢变化维的问题,type 1 change(直接更新),type 2 change(保留历史,插入新的记录)
housekeeping columns 定义审核维,并在事实表中与它关联;用来跟踪数据如何被加载进DW系统,一般在ETL阶段填充数据。
Aggregate Schema的设计原则
Single Schema and the Level Field(在维度表中,针对不同的层次有对应的记录,通过level进行标识。在一张事实表中可以存储同一维度但是不同层级的聚合数据,对于定位不同层级的聚合是个好做法)
但是这种方法不太建议,因为每次查询时需要带上level条件,不然的话,很有可能导致结果错误。
所以良好的实践是,separate table(独立的聚合表
)。
命名规范:
1,保持聚合表与基表的属性字段名称一致,这样可以保证一致性,易于理解,同时对sql的替换处理也只需要修改表名而已这么简单。
2,聚合表本身的命名要能够表达该表存储的数据,便于直观的了解。但并且是随之而来的问题是,表名直观的话就会很长,常用的缓解方法是用些缩略词来表示,比如brand-brd,统一并且坚持下去。开发人员自己要形成一定的规范即可。
有些操作不适合走聚合表,还得走基表。
Counts cannot be accurately performed against aggregate schemas, even if all attributes are the same. All counts must be performed against the base schema.
USE AGGREATE:
前置条件:
1,维度,指标是否满足
2,行数比较
3,is available?分为on-line和off-line(也许该聚合表还在装载中)
4,都不满足的情况下,依然走基表。
The aggregate navigator should support aggregate star schemas (including aggregate dimensions) and pre-joined aggregates (if desired). It should not require changes to the base schema design.
聚集导航是在运行时将sql进行重写,对于前端而言是透明的。
在设计和实现上,聚合表可以灵活的增加和下线,聚集导航组件能够智能处理。同时设计上要能够支持Multiple Front-End applications(比如不同的报表工具,即席查询),方便接入无需重复开发。还需要支持Multiple Back Ends,通常数据仓库不会再一个数据库,可能会跨域多个数据库平台。
总结:
1. The aggregate navigator should permit users and applications to deal with the base schema only.
2. The aggregate navigator should support aggregate star schemas (including aggregate dimensions) and pre-joined aggregates. It should not require
changes to the base schema design.
3. The aggregate navigator should be able to identify all necessary information automatically, through examination of the database catalog. This includes aggregate families, conformance, and relative table size.
4. The aggregate navigator translates base-schema SQL into aggregate-aware SQL at runtime. This process is transparent to the applications that issue
SQL queries.
5. The aggregate navigator should respond to the dynamic availability of aggregates.
6. The aggregate navigator should facilitate easy addition and removal of aggregates from the data warehouse.
7. A single aggregate navigator should service all front-end applications.
8. A single aggregate navigation system should service all back-end databases.
发表评论
-
Information Dashboard Design读书笔记
2013-06-20 18:34 2067第一章: Everybody wants a ... -
BIEE之timestamp问题
2012-12-12 21:13 1901最近在做一个需求, ... -
timeTunnel的学习
2012-09-25 19:26 2745采集数据(通过TT的cli ... -
数据挖掘之归一化
2012-09-24 21:10 3528在阅读数据模型的文章中,经常看到针对特征维度进行归一化处理。 ... -
BIEE 界面DIY
2012-09-06 21:49 2246改图片和css不需要重启服务,但要注意清除IE缓存。l在C:\ ... -
BIEE登录问题排查及集群搭建
2012-07-01 21:08 3082背景: BIEE服务器虽然搞了两台,但是只是作为冷备。大部 ... -
BIEE10g集群配置
2012-07-01 21:08 0mark 下。后续补上。 -
OBIEE的ibot配置
2012-02-14 15:30 1792http://prolynxuk.com/blog/?p=28 ... -
调用BIEE提供的web service
2011-11-17 15:33 9153门户项目中准备用web service获取现有的制作好的报表 ... -
biee清除缓存脚本
2011-10-10 22:55 3698前面文章 http://jianchen.iteye.com ... -
OBIEE 变量
2011-08-29 21:34 1190biee的变量分类以及在各个组件的引用方法: 这 ... -
OBIEE Data model Best Pratices
2011-08-28 22:31 1400Data Model Best Practices 1, ... -
性能测试 and BIEE(二)
2011-08-28 20:29 1872测量以及监控 (measing and monito ... -
性能测试 and BIEE(一)
2011-08-28 20:19 3673目标: 1. 性 ... -
部署普及型BI关键成功因素
2011-08-15 16:24 1080部署普及型BIwhat is it?传 ... -
BIEE缓存设置
2011-08-14 18:22 35291,BI server cache OracleBI\ser ... -
【转】据仓库设计的三级数据模型
2011-08-13 17:33 1810所谓数据模型,就是 ... -
聚集导航出错
2011-07-25 19:35 996今天遇到一件很奇怪的 ... -
kettle的源代码svn地址
2011-07-06 15:51 2935网上一开始搜索到的地址 svn://source.pen ... -
kettle之牛刀小试
2011-06-30 20:05 12007需求描述: 客户端有一个程序定时(15分钟间隔)的采集外网 ...
相关推荐
移动应用 UI 设计, 读书笔记, 记录摘取书籍中重点信息,有助于页面设计,原型设计等
学生读书笔记共享-学生读书笔记共享系统-学生读书笔记共享系统源码-学生读书笔记共享管理系统-学生读书笔记共享管理系统java代码-学生读书笔记共享系统设计与实现-基于springboot的学生读书笔记共享系统-基于Web的...
- 读书笔记应随同毕业设计论文一起装入档案袋,提交给毕业设计指导教师。 #### 三、读书笔记的常见形式 根据不同的目的和需求,读书笔记可以采取多种不同的形式: 1. **提纲式** - 以记住书的主要内容为目的。 ...
学生读书笔记共享-学生读书笔记共享系统-学生读书笔记共享系统源码-学生读书笔记共享管理系统-学生读书笔记共享管理系统java代码-学生读书笔记共享系统设计与实现-基于springboot的学生读书笔记共享系统-基于Web的...
【标题】"java读书笔记笔记笔记笔记笔记笔记" 暗示了这是一份关于Java编程语言的学习笔记,可能包含了作者在阅读Java相关书籍时所做的重要记录和理解。笔记通常涵盖了语言的基础概念、核心特性、类与对象、内存管理...
读书笔记:PHP设计模式讲解实现《大话设计模式》读书笔记和总结
读书笔记:Java多线程编程实战指南设计模式篇 之读书笔记
计算机技术的读书笔记10篇计算机技术的读书笔记10篇计算机技术的读书笔记10篇计算机技术的读书笔记10篇计算机技术的读书笔记10篇
从管理员、用户的功能要求出发,读书笔记共享平台系统中的功能模块主要是实现管理员;首页、个人中心、用户管理、笔记分享管理、个人笔记管理、管理员管理、交流互动、系统管理。用户:首页、个人中心、笔记分享管理...
这份"设计前必须知道的事情《版式设计的原理》读书笔记ppt模板"提供了一个学习和参考的平台,帮助我们更好地理解和应用这些原则。 1. **平衡与对称**:版式设计中的平衡涉及到元素的重量分布,可以是视觉上的对称或...
从管理员、用户的功能要求出发,读书笔记共享平台系统中的功能模块主要是实现管理员;首页、个人中心、用户管理、笔记分享管理、个人笔记管理、管理员管理、交流互动、系统管理。用户:首页、个人中心、笔记分享管理...
自己草草整的读书笔记,这本书虽然一百多页,但是给的信息量还不少,对于开发中的界面设计过程有很好的参考作用。读书笔记主要是记录了结果,原书对于原因有阐述,建议有兴趣的同学看看原书。
从给定的文件信息来看,虽然标题和描述指向了“读书笔记”,但内容部分似乎包含了一些乱码,无法直接解析出具体的知识点。不过,基于标题和描述的提示,我们可以探讨一下如何撰写高质量的读书笔记,以及在IT行业背景...
【JSP(Java Server ...在"毕业设计用读书笔记(jsp)"的压缩包中,可能包含了作者在学习JSP过程中整理的资料,包括对各个概念的理解、代码示例、问题解析等,对于正在做毕业设计的同学来说,是一份宝贵的参考资料。
通过阅读和分析《交互设计之路》的读书笔记,设计师不仅能深化对交互设计理论的理解,还能获得实际操作的指导,从而提升设计实践的能力。在不断学习和实践中,设计师可以创造出更符合用户需求、更具吸引力的产品和...