Flink如何支持数据分析类应用最新动态

/ / 2015-10-25
Flink 最大的特点是它内置了一个符合ANSI标准的SQL接口,可以将批量和流式的语义统一起来。无论是在记录事件的静态数据集上,还是实时事件流上,相同SQL查询都会得到一致...

Flink 最大的特点是它内置了一个符合ANSI标准的SQL接口,可以将批量和流式的语义统一起来。无论是在记录事件的静态数据集上,还是实时事件流上,相同SQL查询都会得到一致的结果。这套系统是阿里云贡献给整个社区的,也是从2015年开始就承接了每年双11实时大屏的工作。历经考验,它是一套非常成熟稳定的系统。

Flink内置的符合ANSI标准的SQL接口,成功地把流式处理的技术平民化,赋能给大量的BI工程师或开发人员。他们只需会写SQLC口或稍微通晓一点 Flink 的流处理语言,就能够做相应的开发。 Flink 所支持的数据分析类应用包括:实时数仓,实时数据中台和实时BI。

Stream Pipelines

如上图,左边是批处理Periodic ETL,右边是实时处理Data Pipeline。从整张图的数据管道来看,流处理相对于批处理来讲,更具有流动性,也就是数据的链路更可以实现实时化。

如上图,对于实时的数据管道,最大的优势是,能够明显降低将数据移动到目的端的延迟,也能够持续消费和发送数据,因此用途更广,支持用例更多。

Flink 如何更好的支持数据管道应用呢? 很多常见的数据转换和增强操作可以利用 Flink 的SQL接口(或Table API)及用户自定义的函数解决。如果数据管道有更高级别的需求,可以选择更通用的DataStream API来实现。

Flink 为多种数据存储系统内置了连接器,如Kafka、Kinesis、Elasticsearch、JDBC数据库等系统。它还提供了文件系统的连续型数据源(Source)及数据汇端(Sink),可用来监控目录变化和以时间分区的方式写入文件。

Stream Pipeline的应用场景有,实时数据清洗、实时搜索构建和实时告警。

Event Driven Application

希望将 Flink打造成流处理界的翘楚,希望达到更加极致的实时化,也就是提供一些更加定制化或个性化的数据处理。达成这样的效果需要围绕Application做到快速的读取和写入等。从坐标来看,希望把 Flink推向另外一个对处理时间要求更极致化的Event-Driven的Application。所以Event-Driven Application满足的是对更极致流的场景需求。

事件驱动型应用的优势是,无需查询远程数据库,本地数据访问使得它具有更高的吞吐和更低的延迟。而由于定期向远程持久化存储的CheckPoint工作可以异步、增量式完成,因此对于正常事件处理的影响甚微。

事件驱动型应用的优势不仅限于本地数据访问,传统分层架构下,通常多个应用会共享同一个数据库,因而任何对数据库自身的更改都需要谨慎协调。而事件驱动型应用,由于只需考虑自身数据,因此在更改数据表示或服务扩容时,所需的协调工作将大大减少。

事件型应用案例包括,反欺诈、异常检测和复杂规则告警,或是其他比较复杂的非二维关系代数模型分析类的应用。

3、应用场景

基于第二部分的技术场景,在上面做叠加和组合,就是以下几个应用场景的介绍。

实时数仓

实时数仓是在当下比较火、综合了Stream Analytics和Pipeline最终形成了实时数仓。它与传统数仓最大的区别是,它能够把前方的业务数据实时进行清洗、汇聚、加工,最后写入实时服务这一层。实时数仓最核心的是把业务的整个链路实时化了,这就极大的满足了一些需要实时看数据等业务需求。

实时风控

实时风控在很多有资损、监察、安全监控等需求的行业应用场景很多。在互联网时代,对于大量的用户访问、数据请求和业务的需求,造就了实时风控系统架构的极致化应用。在互联网初期,大家对时效性没有那么高的要求,很多离线风控系统就可以满足需求,但是现在实时化需求越来越大了。

借助实时风控,当用户在做一些操作的时候,规则引擎在获取数据后会做规则判断,然后反馈结果用户的操作是否合法。

实时机器学习

实时机器学习是一个更宽泛的概念,传统静态的机器学习主要侧重于静态的模型和历史数据进行训练并提供预测。很多时候用户的短期行为,对模型有修正作用,或者说是对业务判断有预测作用。对系统来说,需要采集用户最近的行为并进行特征工程,然后给到实时机器学习系统进行机器学习。如果动态地实施新规则,或是推出新广告,就会有很大的参考价值。

联系电话

粤公网安备 44030502004850号