电商数仓个人简总结

1. 为什么做电商数仓

        数据越来越多,我们把各部门的数据收集到一起,通过分析,计算等转化成对我们公司有价值的数据,为我们公司做决策提供一个数据支持.

2. 技术架构

        (1). 日志数据:我们通过flume采集埋点的日志数据,然后拉取到kafka,再使用flume从kafka中拉取数据存到hdfs上.

        (2). 业务数据:对业务数据,我们使用sqoop进行数据迁移,把业务数据从业务数据库中迁移到我们的大数据平台上,也就是hdfs上.

        (3). 数仓工具:我们选取的是hive,因为hive是基于hdfs存储的,hive可以把数据转成结构化存储为表,还会提供类SQL的查询语句,类SQL完成指标时跟传统数据库mysql的查询语句相识,类SQL的学习相对容易,简单易学,能让我们新的技术人员快速上手,参与到项目开发中.

        (4). 我们采用superset来进行数据可视化展示.

3. 数仓建模

        (1). 我们选择的是维度建模,我们也是通过业务部们选择了这样的几条电商核心业务线,设备,商品,订单,地区,为了后期的指标扩展,我们声明的粒度都是最细的.

        (2). 然后根据我们要做的指标结合我们的数据,确定了维度表和事实表.

4. 数仓分层

        (1). 我们以前实现指标呢,是直接从数据库里进行分析计算,一条SQL直接干到底,就是这样的一个开发模式,我们中间出现了很多的问题,很多的重复开发步骤,所以初步考虑分为天元层,中间层,以及应用层.

        (2). 结合指标我们开发小组讨论最终确定了分为5层.

                ①. ods层 数据原始层 存储我们的原始数据,不用做任何的操作,起到一个隔离原始数据的一个作用.

                ②. dwd层 对原始数据做一个简单的ETL清洗,完成维度建模

                ③. dws层 根据指标来建宽表,进行一个轻度的汇总,如按天汇总

                ④. dwt层 以dws层为基础,累积汇总,如按周按月汇总

                ⑤. ads层 为各种统计报表,可视化展示关联的mysql提供数据

        (3). 分层的好处

                ①. 减少重复开发: 分为多层,可以重复使用我们的指标,重复使用各层的数据,主要体现在中间层.

                ②. 隔离原始数据: 把我们操作的数据和原始数据隔离,就算操作数据是发生问题,我们的原始数据还在,天元层.

                ③. 复杂问题简单化: 把大问题分解成多个小问题来完成,小问题实现起来就比较简单,每一层都处理一些简单的问题.

                提高了开发项目过程中的效率和项目质量.

                 方便后期维护以及扩展

                

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值