1.需求,要和业务部门深入讨论,了解他们的现状,诉求,以及期望,包括我要分析什么内容,需要到什么样的颗粒度,数据从哪里来的,是手工还是系统,数据质量怎么样,期望数据提供的频率是什么样的,实时的还是按月、半月、周、日等,分析的指标有哪些,维度是什么,总之,就是多交流,作为技术人员,要一定先理解业务,如果分工比较明确,就是产品经理与用户进行沟通了,这个过程一定要多听,多问,进行苏格拉底式提问,前期工作越详细,实施和开发阶段就越顺畅。
2.一定要进行架构、模型设计,架构关乎到系统的可用性,可扩展性,模型关乎到是否能灵活快速的提供数据,虽然现在敏捷很流行,但是整体框架还是要提前考虑的,在实际过程中,很多的敏捷变成了推到重来,一是耗费了很多时间,客户不满意,二是开发人员重复劳动,很有挫败感,三是投入产出问题。
3.明确责任人,数据仓库建设不单是一项技术工作,它的目的是为了提供有效,高质量,及时的数据,数据的使用者可能是公司高层决策者,可能是业务部门的分析人员,技术人员对于业务的理解不会面面俱到,在项目过程中,有问题需要用户及时参与答疑,所以,在项目开启之前,确定项目参与角色,职责也是很重要的一个环节。
4.设计阶段,按照经典的三层模型,业务模型,逻辑模型,技术模型,每层进行明确,可以进行poc验证
5.开发阶段团队内的写作问题,公共维度的调用,数据加载的策略,原始数据的清洗,宽表字段的设计,分析主题的划分等。
6.测实阶段,内部首先要测试完全,场景覆盖度要到,如果开发完成直接交付用户进行测试,测试bug很多,则用户对项目产生质疑。
7.上线后的跟踪工作,测试也无法保障百分百的场景覆盖,在实际使用过程中,经常会有这样那样的新场景出现,所以要做好跟踪,对于未覆盖的场景,提供手工处理方法,如果有资源,就在后续的版本进行迭代优化。
数仓的实施是一个复杂的过程,三言两语无法完全说清楚,总之有几条重要的原则前提是可以共同遵守的,项目的成功需要各方面的配合。