业务场景:
1、爬虫数据直接入库会出现id自增过大的问题。要么就入库之前做一次查询,确保数据不存在再插入,这样一来就速度就减慢了。而且,爬虫程序运行速度往往较快,查询操作过多对数据库造成压力也不小。
2、一个表的数据分别来自不同地方,需要多个程序对其进行数据补全操作,这样一来,就会出现数据缺失现象。如果直接入业务库会出现数据不全,虽然不是bug,但是影响体验
为了解决以上两个问题,采用了爬虫数据 和业务数据 分层的做法
原始数据层 接收来自爬虫的数据
滤网层 负责对数据进行过滤,对符合条件的数据进行入库操作,按需入库,同时也能减少对业务数据库的操作
业务数据层 保存过滤之后的最终数据
数据经过一系列处理后,业务层拿到的数据就是优质数据了。而且利于数据维护
比如,业务层的数据库莫名出问题了,那么直接从原始数据库导过去就行了,就不需要重新抓取数据。
不过这样做的缺点是工作复杂度升高了,时间紧任务重就不推荐此方法了