自动采集推送( KAFKA统一数据推送接口(一)校验处理处理逻辑)
优采云 发布时间: 2022-01-13 02:24自动采集推送(
KAFKA统一数据推送接口(一)校验处理处理逻辑)
(一)KAFKA统一数据推送接口
1)非空检查
处理逻辑:除了标题为空的数据直接存储在异常的MySQL数据库中,其他类型的数据直接流向数据质量验证步骤进行分析;
2)数据质量检查
主要是根据各个字段设置的校验规则,对各个字段进行相应的校验处理。
3)次行再处理:
由于 Bloom Filter 中的元素只能添加,不能删除。另外,由于数据量大(每天5000W左右),时间长了会消耗大量的内存资源,投资也很大。
同时,重新加载库中的历史记录也不必全部保留,例如只保留最近半年或一年的记录,如何自动清除历史记录成为新问题.
因此,我最终决定使用 Redis 的 XX 类型数据,利用 Redis 自身的特性,为主键设置一个自动过期时间,以降低运维的难度和成本。
4)数据清洗
目前主要是清除异常的网站和特殊的关键词。
处理对象:【正常】数据
5)数据校正处理:
由于舆情系统对数据的时效性要求很高,为了保证数据覆盖率,减少人工补录带来的工作量,需要对发现的异常数据进行二次处理,然后推送到kafka。
处理对象:【异常】数据
uTitle 更正
根据数据质量验证中的五项规则,对数据进行两次清洗,然后推送到流程的下一步。如果标题为空,则直接丢弃。
u内容修正
内容校正主要有两种类型:空和非空。它们各自的处理逻辑如下:
1)内容为空
此时执行以下操作:
①使用URL调用body获取接口进行二次获取;
②如果还是空的话,用标题作为内容推送,但是要标记,这样kafka分发的时候就不会向APP客户端发送信息,提升用户体验;
2)内容不为空
此时主要根据数据质量验证中的检测结果进行二次清洗。主要包括:删除html内容、清除特殊关键词、乱码等。
u发布时间修正
主要是根据非空规则和质量规则,根据发布时间的验证结果进行相应的修正。喜欢:
①如果为空则用采集时间填充
②如果大于采集的时间,则填入采集的时间;
③如果格式不符合要求,规范为“yyyy-MM-dd hh:mm:ss”格式等。
uURL修正1)临时参数修正
这在搜索 采集 时很常见。一般情况下,每条链接后面都加一个时间戳参数,每次搜索改变一次,导致大量数据重复。