购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 项目业务概述

2.3.1 采集模块业务描述

采集模块主要分为两部分:用户行为日志的采集和业务数据的采集,如图2-3所示为采集模块数据流程图。

图2-3 采集模块数据流程图

用户行为日志数据是指用户在使用产品的过程中,与客户端交互产生的数据,比如页面浏览、点击、停留、评论、点赞、收藏等。这类数据通常存储在服务器的日志文件中,而且是随着用户对产品的使用不停生成的,所以对此类数据的采集需要考虑对多个服务器的落盘文件的监控,以及避免采集系统宕机,造成数据丢失。采集到的日志行为数据可能有很多类型,在采集过程中需要对数据进行初步分类,可能还需要对数据进行初步清洗,将不能用于分析的非法数据剔除。针对这些问题,就要求监控多个日志产生文件夹并能够做到断点续传,实现数据消费at least once语义,以及能够根据采集到的日志内容对日志进行分类采集落盘,发往不同的Kafka topic。Kafka作为一个消息中间件起到日志缓冲的作用,避免同时发生的大量读/写请求造成HDFS性能下降,能对Kafka的日志生产采集过程进行实时监控,避免消费层Flume在落盘HDFS过程中产生大量的小数据文件,从而降低HDFS运行性能,并对落盘数据采取适当压缩措施,尽量节省存储空间,降低网络I/O。

业务数据就是各企业在处理业务过程中产生的数据,如用户在网站中注册、下单、支付等过程中产生的数据。业务数据通常存储在MySQL、Oracle、SQL Server等关系型数据库中,并且此类数据毫无疑问是结构化的。那么,为什么不能直接对业务数据库中的数据进行操作,而要采集到数据仓库呢?实际上,在数据仓库技术出现之前,对业务数据的分析采用的就是简单的“直接访问”方式,但是这种方式的访问产生了很多问题,如某些业务数据出于安全性考虑不能被直接访问、误用业务数据对系统造成影响、分析工作对业务系统的性能产生影响。

业务数据的采集,需要考虑的问题与日志行为数据的采集截然不同。首先,需要根据现有需求和未来的业务需求,明确需要抽取哪些数据表,以及需要抽取哪些必须字段。其次,确立抽取方式,是从源系统联机抽取或者间接从一个脱机结构抽取数据。最后,需要根据数据表格性质的不同制订不同的数据抽取策略,是全量抽取还是增量抽取。在本数据仓库项目中,全量抽取的业务数据表使用DataX进行采集,直接落盘至HDFS。增量抽取的数据表采用Maxwell监控数据变化并及时采集发送至Kafka中,再通过Flume将Kafka中的数据落盘至HDFS。 e3bBIteOLJekp3GW7P/+tSZPa769swQNnzNB41ZHc7uB/xCO9yrFVs2nZmBsZuDy

点击中间区域
呼出菜单
上一章
目录
下一章
×