目录
数据仓库概念
数据仓库(Data Warehouse )可简写为DW或DWH。数据仓库是为企业所有决策制定过程,提供所有系统数据支持的战略集合。
通过对数据仓库中数据的分析,可以帮助企业改进业务流程、控制成本、提高产品质量等。
数据仓库并不是数据的最终目的地,而是为数据最终的目的地做好准备。这些准备包括对数据的清洗、转义、分类、重组、合并、拆分、统计等等。
项目需求
1、实时采集埋点的用户行为数据
2、实现数据仓库的分层搭建
3、每天定时导入业务数据
4、根据数据仓库中的数据进行报表分析
电商中最关心的指标:留转GMV复活
留:用户留存——留存用户数表、留存用户比率表
转:转化率——新增用户占日活跃用户比率表、用户行为漏斗分析表
GMV:GMV成交总额——每日成交总额表
复:品牌复购率——品牌复购率表
活:用户活跃——活跃设备数表
数仓搭建流程
技术选型主要考虑因素:
数据量大小,业务需求,行业内经验,级数成熟度,维护成本,总冲本预算
技术选型框架
数据采集:Flume Kafka Sqoop Logstash DataX
数据存储:Mysql HDFS HBase Redis MongoDB
数据计算:Hive Tez Spark Flink Storm
数据查询:Presto Kylin Impala Druid ClickHouse Doris
数据可视化:Echarts Superset QuickBI DataV
任务调度:Azkaban,Oozie,DolphinScheduler Airflow
集群监控:Zabbix,Prometheus
元数据管理:Atlas
权限管理:Ranger
配套的Apache框架版本
用户数据采集
事件日志
事件日志包括:
商品点击(display)
商品详情页(newsdetail)
商品列表页(loading)
广告(ad)
消息通知(notification)
用户前台活跃(active_foregr ound)
用户后台活跃(active_foregound)
评论( comment )
收藏( favorites)
点赞( praise)
错误日志数据
数据采集
安装 Hadoop、zookeeper、flume、Kafka。
flume采集集群示意图如下,其中有两个自定义拦截器。ETL拦截器过滤掉格式不合格的日志,类型区分拦截器区分启动日志数据和事件日志数据。
用户行为数据仓库
需要安装MySQL和hive。
其中hive可以做出优化,改变引擎,不用原来的MapReduce,改用Tez。Tez减少了中间落地磁盘的过程,可以将多个有依赖的作业转换为一个作业,这样只需写一次HDFS,且中间节点较少,从而大大提升DAG作业的性能。
数仓分层搭建
1.创建数据库
2.ODS层(创建启动日志表和事件日志表,输入格式为LZO,输出格式为TEXT,只有一个String类3.型的json字段和一个日期分区)
4.DWD层(创建基础明细表,自定义UDF函数和UDTF函数,分别解析公共字段和具体事件字段)
5.DWS层(创建 活跃设备明细表、每日新增设备明细表、留存用户明细表 并导入数据)
6.ADS层(创建 活跃设备数表、每日新增设备数表、留存用户数/比率表 并导入数据)
集群启动
这里出现了bug,还在艰难的鼓捣