Hadoop 数据仓库开发实战(一)

7.1 业务需求


            背景: 物美的管理来说,数据仓库平台对其至关重要。因为数据平台是其数据化运营的前提和基础。
            基于数据仓库平台生成的各种销售报表和库存报表是公司管理层和各个城市运营人员以及门店运营人员决策的主要依据。整个公司得整体销售趋势如何?是否应该对某些滞销的商品进行促销?客户是否在流失??某些畅销商品是否应该及时补货?如何选择自营商品从而利润最大化?这些都需要及时、准确和精炼过的数据来支持。
            同时,过去的数据分析只是一个方面,更重要的是预测未来和分析。例如:未来商品销售估计,并据此制定采购计划。此外随着新零售的兴起,未来的消费者需要的是更为个性化的服务和产品,如何将这种个性化的商品和服务提供给消费者?
            目标: 为物美超市搭建基于Hadoop 的数据仓库。
            需求: 1、一位资深的物美会员,其近年来购买商品的种类、型号、时间、支付方式、会员卡基本信息、住址、联系方式,以及由此生成的会员购买商品档次评级、消费评级、退款评价等信息都被数据平台详细记录。
            2、 会员步入超市或者开车进入超市停车场,物美的车牌识别系统、视频系统或者WIFI网络(如果会员通过收集接入)捕获到会员来访,预测会员可能的购买清单,并有针对性地生成促销和优惠信息。比如,会员上次拿起某件商品仔细查看了商品价格但没有购买,那么物美此次将推荐另一个高性价比的同款商品给会员。
            3、会员到收银台结账,物美会预测下次会员的来访时间,并更新采购计划和清单等。
            上述所有智能化的、个性化的购买行为必须借助数据平台的支撑。
          

 
7.2 Hadoop 数据仓库架构设计
        


            首先介绍基于Hadoop 的数据仓库逻辑架构。
            在Hadoop数据仓库的实际设计中,通常出于可维护性、性能成本以及使用便捷性考虑,会对数据仓库中的表进行分层。
            
            来自于源头操作性系统的数据表通常会原封不动地存储一份,这称为ODS(Operation Data Store) 层。ODS 层通常也被称为准备区(staging area),他们是后续仓库层(即基于Kimball)维度建模生成的事实表和维度表层,以及基于这些事实表和明细表加工的汇总层数据)加工数据的来源。同时ODS 层也存储着历史的增量或者全量数据。
            数据仓库层(DW层)是Hadoop数据平台的主题内容。数据仓库层的数据是ODS层数据经过ETL 清洗、转换、加载生成的。Hadoop数据仓库的DW层通常都是基于Kimball的维度建模理论来构建的,并通过维度一致性和数据总线来保证各个子主题的维度一致性。
               
            DW层 的数据一定是清洗过的、干净的、一致的、规范的、准确的数据。数据平台的下游用户将会直接使用DW层数据,而ODS层数据原则上不允许下游用户直接接触和访问。
            
            此外,处于性能、重复计算和使用便捷性考虑,DW层数据除了保存基于Kimball维度建模的最细粒度的事实表和维度表(即DW层的明细层),还会基于他们生成一层汇总数据(即DW层的汇总层)。汇总层的设计主要是出于性能以及避免重复计算考虑。实际数据仓库的汇总层如何设计以及主要对哪些维度进行汇总等,需要根据业务需求以及明细层实际汇总额率来确定,原则上,业务使用频繁的维度需要对这些维度建立汇总层,汇总的指标可以和业务需求方共同设计完成。
            
            
            在 DW 层的基础上,各个业务方或者部门可以建立自己的数据集市(Data Mart),此层一般称为应用层。应用层的数据来源于DW 层,原则上不允许应用层直接访问ODS层。相比DW层,应用层只包含部门或者业务方自己关心的明细层和汇总层数据。
            
            不同于DW层字段和指标的通用性,应用层可以包含自己业务或者部门特殊的指标或者字段,但是如果需要横向和其他部门对比,则必须采用公共层公用的指标和字段。应用层数据表等一般由下游用户自己维护和开发,数据平台团队提供咨询和支持,但是拥有者应该为下游数据用户。
            
             采用上述"ODS 层-> DW 层 -> 应用层 " 的数据仓库逻辑架构如图 7-1 所示。
             
             
          

            项目实际中,采用上述分层架构有以下好处。
            * 屏蔽源头业务变更、系统变更对于下游用户的影响: 如果源头系统业务发生变更,相关的变更由 DW 层来处理,对下游用户透明,无需改动下游用户的代码和逻辑。
            
            * 屏蔽源头业务的复杂性: 源头系统可能极为繁杂,而且表命名、字段命名、字段含义等可能五花八门,通过DW层来规范和屏蔽所有这些复杂性,保证下游数据用户使用数据的便捷和规范。
            
            *避免重复计算和存储: 通过汇总层的引入,避免了下游用户逻辑的重复计算,节省了用户的开发时间和精力,同时也节省了计算和存储。
            
            *数据仓库的可维护性: 分层的设计使得某一层的问题只在该层得到解决,无需更改下一层的代码和逻辑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值