|
|
现在先简单介绍下设计阶段。这个阶段也是我们容易忽略的地方,因为以往项目都是从ODS-DW-DM-CUBE/REPORT,只是根据情况,再在遇到具体困难后,再做些具体的设计调整,有时甚至开发过程中再做些设计调整。
我在另外一个帖子中写到过规划,有人说很理论化,其实不是,理论书上有从这些角度去看数据仓库的么?在设计中,不要说中长期规划的远见,至少得有一个项目范围内的预见吧?所以我一直不鼓励刚毕业的或者经验少的去直接设计商业项目,那样不但设计不出合理的项目,反而让他们的经验引向不合理的方向。
设计方面,前端BI主要看客户的需求,因为客户直接使用前端来实现BI。那么这里主要说数据仓库,没最终用户关心你后台架构怎么设计,只关心你怎么把BI做得更好用,更可靠。如果说客户更需要你帮他们用BI实现更多价值,那你说的应该是已经有成熟数据仓库架构的成熟项目,不在本主题讨论范围,如果客户连你的BI都不够信任,觉得不好使,后期的BI思想再好,又有什么用呢?
目前多数商业项目是从BI主题(也就是业务主导)引导数据仓库建设,技术主导的项目属于少数。这里以业务主导为例。业务主导的主要特点是需要较快见效,最终用户为主导方向,也是甲方考核方向。所以需要以合理的时间和投入去建设BI以及数据仓库,同时也考虑多个主题的统一性,以及使用效率问题,对于高价值数据,还需要自定义行级别的数据安全管理。当然理性的客户,最终还是会接受,在未来的规划中,范式建模的数据仓库的重要性。但他们的特点是想先产出效果,老板才能拍板再继续不断投资建设,于是你就不能强制推行Inmon先生主导的EDW,否则完成不了项目,自己就兜着吧。
那么这个时候主要几个要点,一是是否有统一维度建模(如果是某部门独立建的集市项目,那就不必了),是否模型中不但支持业务变化,还支持业务组织结构变化(如原来销售区域分3层,现在分4层,有结构交叉了)。在ETL方面是否有合理的增量抽取方案,每个包是否都有统一的检查流程,每个ETL过程是否有数据验证功能。模型设计中,PK,FK是否都设计合理。是否预测到数据量会带来架构瓶颈。而对于客户的合理的需求变更,数据集市是否有足够的变化空间,不要只有聚合汇总数据吧。
经常会碰到的项目开发中修改设计架构,往往就是对困难的估计不足,架构灵活空间太小,所以开头说的,如果设计偏差太大,后果不堪设想,会导致开发改变,重新测试,难免会顾此失彼,而且时间被严重浪费。后台设计空间要足够大,数据集市主要考虑功能,效率不是最大的问题,正常运行好几年的项目,一般数据集市都重组过2、3次了,效率问题每次重组后就不是问题了,如果说是空间换效率,那么数据集市相比数据仓库的数据量,应该不是大的问题。 |
|