- 浏览: 334134 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
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 2005第一章: Everybody wants a ... -
BIEE之timestamp问题
2012-12-12 21:13 1842最近在做一个需求, ... -
timeTunnel的学习
2012-09-25 19:26 2688采集数据(通过TT的cli ... -
数据挖掘之归一化
2012-09-24 21:10 3468在阅读数据模型的文章中,经常看到针对特征维度进行归一化处理。 ... -
BIEE 界面DIY
2012-09-06 21:49 2185改图片和css不需要重启服务,但要注意清除IE缓存。l在C:\ ... -
BIEE登录问题排查及集群搭建
2012-07-01 21:08 2987背景: BIEE服务器虽然搞了两台,但是只是作为冷备。大部 ... -
BIEE10g集群配置
2012-07-01 21:08 0mark 下。后续补上。 -
OBIEE的ibot配置
2012-02-14 15:30 1728http://prolynxuk.com/blog/?p=28 ... -
调用BIEE提供的web service
2011-11-17 15:33 9088门户项目中准备用web service获取现有的制作好的报表 ... -
biee清除缓存脚本
2011-10-10 22:55 3654前面文章 http://jianchen.iteye.com ... -
OBIEE 变量
2011-08-29 21:34 1122biee的变量分类以及在各个组件的引用方法: 这 ... -
OBIEE Data model Best Pratices
2011-08-28 22:31 1351Data Model Best Practices 1, ... -
性能测试 and BIEE(二)
2011-08-28 20:29 1793测量以及监控 (measing and monito ... -
性能测试 and BIEE(一)
2011-08-28 20:19 3628目标: 1. 性 ... -
部署普及型BI关键成功因素
2011-08-15 16:24 1037部署普及型BIwhat is it?传 ... -
BIEE缓存设置
2011-08-14 18:22 34831,BI server cache OracleBI\ser ... -
【转】据仓库设计的三级数据模型
2011-08-13 17:33 1776所谓数据模型,就是 ... -
聚集导航出错
2011-07-25 19:35 958今天遇到一件很奇怪的 ... -
kettle的源代码svn地址
2011-07-06 15:51 2857网上一开始搜索到的地址 svn://source.pen ... -
kettle之牛刀小试
2011-06-30 20:05 11929需求描述: 客户端有一个程序定时(15分钟间隔)的采集外网 ...
相关推荐
《嵌入式Linux C语言应用程序设计》读书笔记《嵌入式Linux C语言应用程序设计》读书笔记《嵌入式Linux C语言应用程序设计》读书笔记《嵌入式Linux C语言应用程序设计》读书笔记《嵌入式Linux C语言应用程序设计》...
USB读书笔记 USB读书笔记 USB读书笔记 USB读书笔记
移动应用 UI 设计, 读书笔记, 记录摘取书籍中重点信息,有助于页面设计,原型设计等
学生读书笔记共享-学生读书笔记共享系统-学生读书笔记共享系统源码-学生读书笔记共享管理系统-学生读书笔记共享管理系统java代码-学生读书笔记共享系统设计与实现-基于springboot的学生读书笔记共享系统-基于Web的...
linux内核设计与实现的读书笔记.docx
学生读书笔记共享-学生读书笔记共享系统-学生读书笔记共享系统源码-学生读书笔记共享管理系统-学生读书笔记共享管理系统java代码-学生读书笔记共享系统设计与实现-基于springboot的学生读书笔记共享系统-基于Web的...
设计模式1,包含了设计模式的基本介绍,以及状态机模式的读书笔记
单片机读书笔记全文共9页,当前为第1页。单片机读书笔记全文共9页,当前为第1页。单片机的分类 单片机读书笔记全文共9页,当前为第1页。 单片机读书笔记全文共9页,当前为第1页。 单片机是一种集成电路芯片,是采用...
r和统计学读书笔记 r和统计学读书笔记 r和统计学读书笔记 r和统计学读书笔记 r和统计学读书笔记
毕业论文读书笔记格式,教会你怎么写毕业论文读书笔记格式
读书笔记读书笔记读书笔记
计算机技术的读书笔记10篇计算机技术的读书笔记10篇计算机技术的读书笔记10篇计算机技术的读书笔记10篇计算机技术的读书笔记10篇
linux内核设计与实现读书笔记.docx
深入浅出MFC读书笔记3 深入浅出MFC 读书笔记
从管理员、用户的功能要求出发,读书笔记共享平台系统中的功能模块主要是实现管理员;首页、个人中心、用户管理、笔记分享管理、个人笔记管理、管理员管理、交流互动、系统管理。用户:首页、个人中心、笔记分享管理...