作者:长风
原创文章转载请注明出处:
http://nifoo.iteye.com
一、 需求阶段
1. 分析业务需求,弄懂报表定义。(不要忘记filter?)
2. 分析数据来源(来自什么业务系统,或者电子表格,或者人工录入?数据量有多大?数据更新频率?)
3. 分析用户(报表的用户有多少?主要用户有哪些?他们如何使用报表?)
4. 是否需要国际化(需要支持哪些地区和语言)
5. 安全和权限(模型可见性?数据可见性?报表可见性?功能权限?)
6. 报表的分发(即时查询?定时生成?邮件寄送?要不要Burst?用户获取报表的频率?用户获取报表的主要时间节点?日报,周报,月报?)
二、分析设计阶段
1. 分析数据源,是否包含所有需要的数据和元数据?是否不同数据源包含有同样的数据?是否有DataWarehouse(或DataMart)?是否需要ETL?
2. 分析数据(一致性,完整性,冗余性,合理性),找出主键、外键、索引,及表之间的关系。
3. 找出维度表(包括其Key和Attribute)和事实表,找出Path,澄清不明关系(Role-Playing, loop joins, reflexive and recursive relationships)
4. 设计出维度、度量、Dimension Map,组织成星座/星型
5. 设计报表(Chart、List、CrossTable?Prompt、Filter?Multilingual? 样式?)
6. 设计报表的分发方式(Schedule? Burst?)
7. 权限控制的设计(功能的权限、报表的权限、模型的权限、数据的权限)
三、Framework 模型
1. 建立关系模型(物理层)
1.1. 导入元数据(主要是表、列、视图、存储过程、关系);
1.2. 修正导入的元数据(按照设计修正relationships、cardinality、 determinants,Usage and Regular Aggregate property for query items )
1.3. 解决不明关系(Role-Playing, loop joins, reflexive and recursive relationships)
1.4. 简化关系模型(将关系型和雪花型转换成星型,合并主从事实表等)
2. 建立多维模型(维度层)
2.1. 创建Regular Dimensions(Dimension、Hierarchies 、Level、Key、Attribute等)
2.2. 创建Measure Dimensions
2.3. 创建Scope Relationships
3. 建立业务规则(业务层)
3.1. Calculations
3.2. Filters
3.3. Parameter
3.4. Prompts
4. 组织模型(展示层)
4.1. 用 Query Item Folder 组织 Query Item
4.2. 用 Measure Folders 组织 Measure dimensions
4.3. 用 Shortcuts 和 Star Schema Groups 组织模型(Query 和 Dimension 分开),弄清 Single Fact Query、"Multiple-fact, Multiple-grain Queries"、Multiple Conformed Star Schemas or Fact-less Queries、"Multiple-fact, Multiple-grain Query on Conformed Dimensions"、"Multiple-fact, Multiple-grain Query on Non-Conformed Dimensions"
5. 发布模型
5.1. 创建 Package
5.2. 数据安全和权限控制(data security、object security、package security)
5.3. 其它(国际化设置,Suppression Options等)
5.4. 验证 Model 和 Package,修改错误
5.5. 发布模型
四、创建报表
除了MDX,没什么好说的。