流计算(二):流计算解决的问题

2020-03-03  本文已影响0人  longLiveData

流数据操作

流计算系统是针对数据流的转化或转移处理,所以实现流数据操作更加直观。

流数据操作的内容主要包括了三类:
-对数据进行清洗、规整和结构化
-对不同来源的数据进行关联及合并
-在不同系统之间搬运数据。

这三类操作通过一些常用的流式API就可以实现。

单点特征计算

单点特征是指要么可以通过黑白名单,要么能够通过特定的规则计算而得到答案,同时实现起来相对简单的问题。比如:

-一个事件中包含的用户是否在黑名单中?
-发生事件的设备是否是模拟器?
-温度传感器传来的温度事件是否已经超出正常温度范围?
-发送消息设备的IP是否是代理?
-一次交易的金额是否属于大额交易?

时间维度聚合特征计算

这类特征的特点是它们均需要在时间维度对数据进行聚合运算。此类特征在诸如风控、预警、监控等各种场景都非常广泛的应用。比如:

-相同设备的1小时内注册事件次数
-相同银行卡号的7天交易事件次数
-过去30天内同一IP段上交易金额
-过去1分钟高温事件的次数
-过去5分钟日志告警事件的次数等

关联图谱特征计算

除了时间维度的聚合分析外,还经常进行“空间”维度的聚合分析。这种分析又被称为“关联图谱”分析。

比如在一些风控场景中,我们需要计算用户账户使用IP的个数、同一手机号码发生在不同城市的个数、同一设备上关联用户的数目、同一用户关联设备的数目、同一推荐人推荐的用户数等特征。

以设备关联用户数为例,如果某个设备上注册的用户很多,那么它的风险就比较高,毕竟正常情况下我们都只会用自己的手机注册自己的账号,而不会是帮其他几十、上百人注册账号的。

事件序列分析

数据流中的数据不是单纯在时间上有着先来后到的关系,而是在数据和数据之间也有着联系。

考虑用户在手机上安装新APP的过程,它可能是先点击了某个广告链接,然后下载并安装了APP,最后成功注册了账号。从“点击”到“下载”,再到“安装”和“注册”,这就完成了一次将广告转化为用户的过程。

再比如在网络欺诈识别场景中,如果用户在新建账号后,立马发生大量交易行为。那么这种“新建账号”到“10分钟内5次交易”的行为就是种非常可疑的行为了。

诸如此类从数据流表示的事件流中,检测并筛选出符合特定模式或行为的事件序列的过程,称之为复杂事件处理(Complex Event Processing,简称为CEP)。CEP也是流计算经常被用来解决的问题。

模型学习和预测

随着流计算越来越流行和普及,越来越多的原本主要针对离线批式数据的统计和机器学习模型也被用于流数据。

比如在风控系统中,当我们计算好特征后,还需要把这些特征输入评分模型进行风险评分。根据不同的使用场景,使用的评分模型可能是基于规则的模型,也可能是基于机器学习的模型。传统的机器学习模型主要通过离线训练而来,但现在越来越多的模型会直接基于流数据在线训练和更新。

再比如在异常检测应用中,我们会在线统计并估计变量的分布参数,然后根据训练出的分布模型判断变量之后的取值是否属于异常。这种同时在线更新和预测的做法,在流计算应用中也越来越常见。

上一篇下一篇

猜你喜欢

热点阅读