zhangdell 2019-06-28
大数据时代,数据计算已经渗透到了各行各业。业务沉淀数据,数据计算产生新的业务价值,数据计算正不断地用这种方式推动业务向前发展。
大数据的计算模式主要分为批量计算(batch computing)、流式计算(stream computing)等,分别适用于不同的大数据应用场景。对于先存储后计算,实时性要求不高,同时数据规模大、计算模型复杂的应用场景,更适合使用批量计算。对于无需先存储,可以直接进行数据计算,实时性要求严格,但单次计算涉及数据量相对较小的应用场景,流式计算具有明显优势。
与传统批量计算相比,流式计算的特点主要有以下几方面:
无边界:数据到达、处理和向后传递均是持续不断的。
瞬时性和有限持久性:通常情况下,原始数据单遍扫描,只有计算结果和部分中间数据在有限时间内被保存和向后传递。
价值的时间偏倚性:随着时间的流逝,数据中所蕴含的知识价值往往也在衰减,即流中数据项的重要程度是不同的,最近到达的数据往往比早先到达的数据更有价值。
金融行业是一种典型的流式计算应用领域,涵盖了包括用户行为分析、实时营销、个性化推荐、实时风控、实时反欺诈等多个计算场景。以实时金融风控场景为例,需要流式计算系统实时分析海量的用户行为数据,根据既定的规则计算出相应的指标,并与风险模型进行匹配,第一时间判断风险等级、发现异常事件,并作出相应的风险控制措施,自动告警通知、改变业务流程。
流式计算框架的技术选型
目前主流的流式计算框架有Storm、Spark Streaming、Flink三种,其基本原理如下:
Apache Storm:以单事件来处理数据流(所有记录一个接一个处理),延迟性低(毫秒级),但消息保障能力弱,消息传输可能重复但不会丢失;
Storm在运行中可分为spout与bolt两个组件,Spout是Stream的消息产生源,Bolt类接收由Spout或者其他上游Bolt类发来的消息,对其进行处理,以实现业务逻辑。Storm运行的应用程序叫做拓扑(Topology),拓扑中定义了Spout和Bolt的组合关系。
Apache Spark Streaming:属于Spark API的扩展,以设定的时间间隔(如几秒种)处理一段段的批处理作业(即“微批处理”)。这种框架的延迟性较高(秒级),但能够保证消息传输既不会丢失也不会重复;
spark程序是使用一个spark应用实例一次性对一批历史数据进行处理,spark streaming是将持续不断输入的数据流转换成多个batch分片,使用一批spark应用实例进行处理。
Apache Flink:针对流数据+批数据的计算框架。把批数据看作流数据的一种特例,延迟性较低(毫秒级),且能够保证消息传输不丢失不重复。
Flink创造性的统一了流处理和批处理,作为流处理看待时输入数据流是无界的,而批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。Flink程序由Stream和Transformation这两个基本构建块组成,其中Stream是一个中间结果数据,而Transformation是一个操作,它对一个或多个输入Stream进行计算处理,输出一个或多个结果Stream。
三种实时计算框架的对比如下:
从上述指标对比可以看出,Flink作为流式处理框架中的新兴之秀,兼具了storm的低延迟和spark的高吞吐、高消息保障特性。随着框架成熟度和社区活跃度越来越高,目前Flink已在国内外各大企业中有很多成功应用,很多企业纷纷将原有基于storm、spark streaming框架的流式计算系统转投为基于Flink,Flink成为当下流式计算框架的首选。
][6]
(深度使用Flink的部分企业)
流式计算在金融行业的应用架构
顶象技术目前已为多个银行及互联网金融客户设计并搭建了基于Flink流式计算框架的一站式实时计算平台,满足金融客户实时风控、实时反欺诈等多个场景下的计算需求。
金融行业的数据具有来源广泛、实时性要求高、吞吐量大、计算模型复杂等特性,顶象技术基于Flink引擎,进行了大量的功能及可用性设计,设计了一套可支持风控、反欺诈,流式计算和同步计算的一站式实时计算平台,满足金融行业实时风控、实时反欺诈等多个场景下的计算需求。
顶象一站式实时计算平台的概要架构和特点:
多数据源支持:支持从多种类型的消息中间件中获取消息流,以及从关系数据库或NoSql数据库中抽取全量/增量数据,并提供服务接口供其他系统实时推送数据。保证了计算数据的完整性和多样性。
统一的异步/同步计算服务:基于Flink的流式计算仅能满足客户的实时异步计算需求,而无法满足需要实时返回计算结果的计算场景。因此,顶象一站式实时计算平台包含了高性能的同步计算框架,可满足同步返回计算结果的应用场景。该框架与异步流式计算框架结合,提供统一的计算服务,完美覆盖所有实时计算需求。
可视化的计算配置和实时分析:为提高系统的易用性,使没有编程经验的业务人员也可通过流式计算快速实现业务目标,平台提供了可视化计算规则配置引擎,可针对各类应用场景,定义相应的计算规则。如针对风控场景,可定义各类风控事件的指标计算规则。同时,平台提供实时在线分析功能,业务人员在线选择数据源,设置报表统计规则,自动生成并实时刷新各种维度的图表,达到了数据的实时可视化分析。
目前,顶象技术的一站式实时计算平台已在多个知名银行及互联网金融企业中部署上线,结合顶象实时决策引擎,实现了毫秒级风控指标计算与风控预警,同时为行内其他系统提供了统一实时数据计算服务,达到了很好的应用效果。
金融机构在应用大数据的过程中,不仅需要看到其对于海量数据的存储、查询和分析类场景的需要,更需要探索如何运用多种大数据技术范式为业务提供解决方案。在应用较多的领域如用户画像、精准营销、实时反欺诈等领域,实时流计算的运用已经成为事实标准,未来在量化交易、风险检测、实时机器学习、实时决策引擎、设备异常分析等领域,相信还有更多用武之地。