##日志采集模块 1:日志来源:web、app埋点日志、收集到日志服务器 2:使用flume的tailDIR监控日志服务器上的日志文件夹,使用Kafka channel接收, (此过程可以对日志进行一次日志预处理,过滤掉json格式不完整和重要字段为空的数据) 3:再使用flume的Kafka source–file channel–HDFS sink,将日志收集到指定文件夹 (在可以增加过滤器,将日志中的时间戳拿到head中,以保证上传到HDFS上的数据时间的准确性) 4:将处理好的数据映射到hive的ODS层 ##数仓分层介绍 tip为什么要分层: 1:(把复杂问题简单化),将复杂的任务分解成多层完成,每一层只处理相对来说简单的任务,方便问题的定位 2:(减少重复的开发),按照业务规范对数仓进行分层,能够减少相当大的重复计算,增加计算结果的复用性 3:(解耦),将真实数据与统计数据解耦开,不能让开发人员接触到敏感数据 1:ODS层(原始数据层):存放原始数据,直接加载日志数据,可以不做处理,保持日志数据原貌(flume导入的日志数据,sqoop导入的业务数据) 2:DWD层(明细数据层):对ODS层数据进行解析(将ODS层的一整条json格式字符串拆分成相应字段),清洗,去除空值,脏数据,不符合业务要求,超出业务范围的数据,脱敏,保存明细数据,一天数据代表一次业务行为 3:DWS层(数据服务层):以DWD层为基础,对数据进行轻度汇总,提供公共的聚合成度 4:DWT层(数据主题层):以DWS为基础,按业务分析主题进行划分并汇总 5:ADS 层(数据应用层):为报表系统或即席查询,数据可视化提供数据
持续更新
|