开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop框架搭建)第四阶段:数据预处理总结—用例及流程】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/672/detail/11682
数据预处理总结—用例及流程
内容介绍:
一、数据预处理流程
二、模块分类处理流
三、模块分析
一、数据预处理流程
数据的对接就是实际上对接是去学习从代码的后端到前端数据是怎么流过来的整个过程,这个结束以后开始来给我们的数据预处理阶段做个总结。
上述图片中的流程全部结束,
下图是整个数据预处理的阶段的用例,
整个数预处理阶段图数据处理用例:
链路统计、数据清洗、数据脱敏、数据拆分、数据分类、数据解析、历史爬虫判断、数据结构化、数据推送、系统监控十件事情。
下面来具体回顾一下:
1.链路统计,是统计了两个结果一个是用户的访问的量,还有一个是当前活跃用户联系数。写到 Redis 里面,然后在爬虫的界面当中就能够看到这个数据了。
2.数据的清洗,从数据库当中读了一些规则,把规则读过来以后数据里面有一些 HDMIICSGPPGP 这些无效数据过滤掉,清洗工作就是自动过滤。
3.数据脱敏,数据当中有一些手机号,身份证号码这些敏感信息。要做事就是把他进行加密然后把他替换掉,就是脱敏的工作
4.数据的拆分,拆分的目的是因后面要用到这些模块都要用到数据而数据到目前。脱敏以后的阶段,但他是用#CS#拼接起来的一条数据,拆分的工作就是把数据进行拆分,拆分成一个一个的数据,后面数据用的时候,可以随时用随时拿。数据拆分用#cs#拆分。
5.数据的分类,分类分为两个,分类也就是打标签,第一个就是你的这个数据他的业务场景分为四种:国内查询、国际查询、国内预定、国际预定,需要判断是这四个其中的那一个,先从数据库当中,把这四种业务场景的规则读出来。然后再用url匹配这四种规则,匹配上那个就是那个,第2个就是你是单程还是往返,根据我日期类型出现的次数一次就是单程两次就是往返。
6.数据解析:解析分为查询类的和预订类的,解析代码很多业务也很复杂,复杂先把逻辑给理清楚,代码写了一部分,大部分都是给提供好的,比如这里面有解析出出发地和目的地,起飞时间;成人,婴儿这个小朋友把他们长期人数是多少,解析这些数据那这些数据的需要根据一些不同的规则来解析,怎么去从多个规则里面确定出一个,这时候就需要一个判断的逻辑,逻辑判断出来以后才能够自动的解析出数据。解析分为查询和预订,但是预定没有预定数据,所以看不到效果,但是数据还是能解析出来的。
7.历史爬虫判断,功能是判断传送过来的数据这一批当中这里面出现的IP是否在历史的爬虫当中出现过。如果出现过就返回TRUE,没有出现过就返回 FALSE。
8.数据结构化,前面经过数据的拆分然后以及打出来的各种标签这里面,拆分成三个(数据分类,数据解析,爬虫判断),数据分类里面有两个,解析里面有两个,加上爬虫判断就是五个。这五个解析出来的结果和拆分出来的数据,他们现在是零散我要把它结构化成 processed Date,调用 to Kafka Steam ,然后转化成一个用#CS#拼接的字符串,走上然后准备推送到 Kafka 里面。
9.数据的推送需要根据查询的数据推送到查询的 topic 里面。预定的数据推送到预定的 topic 里面,
系统监控:监控整个从链路统计一直到最后的推送,这个过程当中他花费了多少速度是什么样子效率是什么样子,用了多少时间。以及前端中所需要展示的这个数据当中你用的了哪些数据,你用哪个我就给你准备那个然后把它推送到Redis 里面,Redis 自动的就在前端做了个展示。
以上就是用例做的十个模块。当看到模块时要清楚模块的的功能和大致流程。
二、模块分类处理流
下面来看这十个模块的流程图
首先第1个开始任务,开始任务需要前端2第二个阶段结合我们的流程。
第一个阶段采集数据,第2个阶段发送到 Kafka ,3-1读数据,3-2读规则,再把数据推送过来,蓝色的部分就是预处理阶段。预处理阶段开始任务,在 Kafka 中读取数据就是我流程过程中的3-1,读取数据到预处理程序当中。
然后就是实现第1个模块就数据采集,数据的监控叫链路统计功能。这个监控的是服务器的活跃状态兼当前活跃用户联系数,近三天的访问情况。
预处理对数据的操作(数据清洗、数据脱敏、数据拆分、数据分类、数据解析、历史爬虫判断、数据结构化)。
数据的推送模块就是我根据查询的推送的查询里面,预定的推送到预定的里面,这个属于专门做推送,没有对数据进行任何加工操作,就是一个过滤作用。
监控模块就是做整个数据预处理的一个效率和性能的监控,再往后预处理又可以分为预处理前预处理中和预处理后,预处理前做了数据的读取以及链路统计,预处理后是推送和监控。预处理中的操作(数据清洗、数据脱敏、数据拆分、数据分类、数据解析、历史爬虫判断、数据结构化)。
三、模块分析
模块分析,总的流程中分为采集,预处理,实施计算和展现,那这里面采集前面有,数据的预处理现在已经做完了。后面要做的就是爬虫的实时计算,计算爬虫存到 HDFS 里面,存在 HDFS 或者 Mysql,后面来做展现,实际上现在看到的三个是蓝色的预处理和爬虫识别,写到 Redies 里面这个过程。数据采集前面做了,前段展现不属于我们的范围,以上就是大致的流程。
本模块主要基于 SparkStreaming 进行实时流的计算和分析,其中规则配置信息以及统计析结果主要与 Redis 进行交互,因为 Redis 主要是基于内存操作的存储系统,同时可以将存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。从而避免了直接访问 lysql 数据库时不断建立和销毁数据连接而产生的系统损耗。
以上就是数据预处理阶段的总结内容。