数据仓库概念项目需求及架构设计
项目需求分析项目框架
技术选型系统数据流程设计框架版本选型服务器选型集群资源规划设计 用户行为日志
用户行为日志概述用户行为日志内容
页面浏览记录动作记录曝光记录启动记录错误记录 用户行为日志格式
页面日志启动日志 模拟生成用户行为日志 数据采集模块 数据仓库概念
数据仓库(Data Warehouse )是为企业所有决策制定过程,提供所有系统数据的战略集合
通过对数据仓库中数据的分析,可以帮助企业,改进业务、控制成本、提高产品质量等。
数据仓库,并不是数据的最终目的地,而是为数据最终的目的地做好准备。
这些准备包括对数据的:
清洗转义分类重组合并拆分统计 项目需求及架构设计 项目需求分析
项目需求 :
用户行为数据采集平台搭建业务数据采集平台搭建数据仓库维度建模分析,设备、会员、商品、地区、活动等电商核心主题,统计的报表指标近100个采用即席查询工具,随时进行指标分析对集群性能进行监控,发生异常需要报警元数据管理质量监控 项目框架 技术选型
数据采集传输:Flume,DataX , Maxwell , Kafka , Sqoop
数据存储:MySql ,HDFS,Hbase,Redis , MongoDB
数据计算:Hive,Spark,Flink , Tez , Strom
数据查询:Presto,Kylin,Impala , DataX
数据可视化:Superset , QuickBI , DataV
任务调度:DolphinScheduler、Azkaban、Oozie
集群监控:Zabbix
元数据管理:Atlas
系统数据流程设计业务交互数据:业务流程中产生的登录、订单、用户、商品、支付等相关的数据,通常存储在 DB 中,如 : Mysql、Oracle
埋点用户行为数据 : 用户在使用产品过程中 ,与客户端产品交互程中产生的数据 , 如 : 页面浏览、点击、停留、评论、点赞、收藏
框架版本选型Apache:运维麻烦,组件间兼容性需要自己调研。(一般大厂使用,技术实力雄厚,有专业的运维人员)(建议使用)
CDH::国内使用最多的版本,但CM不开源,今年开始要收费,一个节点1万美金
HDP:开源,可以进行二次开发,但是没有CDH稳定,国内使用较少
服务器选型框架选型尽量不要选择最新的框架 , 选择最新框架半年前左右的稳定版
物理机:
以128G内存,20核物理CPU,40线程,8THDD和2TSSD硬盘,戴尔品牌单台报价4W出头。一般物理机寿命5年左右需要有专业的运维人员,平均一个月1万。电费也是不少的开销
云主机:
以阿里云为例,差不多相同配置,每年5W,主要磁盘贵很多运维工作都由阿里云完成,运维相对较轻松
企业选择 :
金融有钱公司和阿里没有直接冲突的公司选择阿里云中小公司、为了融资上市,选择阿里云,拉倒融资后买物理机有长期打算,资金比较足,选择物理机 集群资源规划设计
(假设:每台服务器 8T 磁盘,128G 内存)
每天日活跃用户 100 万,每人一天平均 100 条:100万 * 100条 = 1亿条每条日志 1K 左右,每天 1 亿条:100000000 / 1024 / 1024 = 约100G半年内不扩容服务器来算:100G * 180天 = 约18T保存 3 副本:18T * 3 = 54T预留20% 30%Buf = 54T / 0.7 = 77T
约 8T * 10 台服务器
集群服务器规划 :
用户行为日志的内容 : 用户的各项行为信息以及行为所处的环境信息
收集信息的目的 : 优化产品和为各项分析统计指标提供数据支撑
收集这些信息的手段 : 埋点
埋点方式 :
有代码埋点(前端/后端)可视化埋点全埋点
代码埋点 : 通过调用埋点SDK函数,在需要埋点的业务逻辑功能位置调用接口,上报埋点数据。如 : 我们对页面中的某个按钮埋点后,当这个按钮被点击时,可以在这个按钮对应的 onClick 函数里面调用SDK提供的数据发送接口,来发送数据
可视化埋点 : 只需要研发人员集成采集 SDK,不需要写埋点代码,业务人员就可以通过访问分析平台的“圈选”功能,来“圈”出需要对用户行为进行捕捉的控件,并对该事件进行命名。圈选完毕后,这些配置会同步到各个用户的终端上,由采集 SDK 按照圈选的配置自动进行用户行为数据的采集和发送
全埋点 : 通过在产品中嵌入SDK,前端自动采集页面上的全部用户行为事件,上报埋点数据,相当于做了一个统一的埋点。然后再通过界面配置哪些数据需要在系统里面进行分析
用户行为日志内容收集和分析的用户行为信息 :
页面浏览记录动作记录曝光记录启动记录错误记录 页面浏览记录
页面浏览记录 : 记录访客对页面的浏览行为
浏览行为的环境信息 :
用户信息时间信息地理位置信息设备信息应用信息渠道信息页面信息 用户信息 包括用户ID、设备ID 时间信息用户跳入页面的时间地理位置信息用户浏览页面时所处的地理位置设备信息包括设备品牌、设备型号、设备系统应用信息指用户访问的应用信息,例如应用版本渠道信息指应用的下载渠道页面信息用户浏览的页面相关信息,包括页面ID,页面对象动作记录
动作记录 : 记录的是用户的业务操作行为
业务操作行为的环境信息 :
用户信息时间信息地理位置信息设备信息应用信息渠道信息动作目标对象信息 用户信息 包括用户ID、设备ID 时间信息动作时间地理位置信息动作发生时所处的地理位置设备信息设备品牌、设备型号、设备系统应用信息用户访问的应用信息,例如应用版本渠道信息应用的下载渠道动作目标信息动作目标对象相关信息,包括对象类型,对象ID曝光记录 启动记录 错误记录
错误记录 : 记录用户在使用应用过程中的报错行为
报错行为的环境信息 :
用户信息时间信息地理位置信息设备信息应用信息渠道信息可能与报错相关的页面信息动作信息曝光信息动作信息 用户行为日志格式
日志结构分为两类 :
页面日志启动日志 页面日志 启动日志 模拟生成用户行为日志 数据采集模块