Flink流批一体计算(1):流批一体和Flink概述

Apache Flink应运而生

数字化经济革命的浪潮正在颠覆性地改变着人类的工作方式和生活方式,数字化经济在全球经济增长中扮演着越来越重要的角色,以互联网、云计算、大数据、物联网、人工智能为代表的数字技术近几年发展迅猛,数字技术与传统产业的深度融合释放出巨大能量,成为引领经济发展的强劲动力。

大数据技术从2008年开始在国内逐渐兴起,到现在已经十几年了,在这段时间里,IT也在飞速发展,而大数据的出现和使用无疑给IT的迅猛发展提供了一臂之力。随着时间的推移,越来越多的公司在实时处理层面要求更高,希望数据从产生到完全被处理之间的时间延迟尽量减小,且能够应对实时处理带来的各种复杂问题,如数据延迟、数据的状态保存、复杂事件的检测机制等。

Apache Flink在这种背景下应运而生,它是一个面向数据流式处理和批量数据处理的可分布式开源计算框架,它基于同一个Flink流式执行模型(Streaming Execution Model),能够支持流式处理和批量处理两种应用类型。

Flink在实现流式处理和批量处理时,与传统方案完全不同,它从另一个视角看待流式处理和批量处理,将二者统一起来:Flink完全支持流式处理,也就是说被看作流式处理时输入数据流是无界的;而批量处理被作为一种特殊的流式处理,只是它的输入数据流被定义为有界。

为什么要搞流批一体

​ 通过批流一体的计算引擎,在数据处理链路上能够得到很多的好处:

  • 减少学习成本,用户不再需要学习两套计算引擎,并且通过统一的引擎,使用相同的计算语义,出错的可能也会大大降低。
  • 减少资源消耗,在原先的lamda架构下,同时存在批和流两个数据处理通道,通过流批一体,将会只存在一个数据处理通道。此外,相比批计算短时间面对大量的数据集,流计算面对的数据集较小,所需要的计算资源会大大降低。
  • 降低架构复杂性,批计算满足完整性,流计算提供实时性,批计算和流计算又分别关联了不同的上下游,导致数据处理架构异常复杂,通过流批一体以及流批一体的上下游,简化的数据处理架构不仅仅带来了架构上的简洁优美,更多的是业务处理上的统一和稳定。
  • 提升价值产出效率,通过使用流计算来替代批计算,原先高延迟的数据产出变得更加实时,能够更有效的支持业务的价值产出。

基于Apache Flink构建流批一体架构

首先,Flink 是一套 Flink SQL 开发,不存在两套开发成本。一个开发团队,一套技术栈,就可以做所有的离线和实时业务统计的问题。

第二,数据链路也不存在冗余,明细层的计算一次即可,不需要离线再算一遍。

第三,数据口径天然一致。无论是离线的流程,还是实时的流程,都是一套引擎,一套 SQL,一套 UDF,一套开发人员,所以它天然是一致的,不存在实时和离线数据口径不一致的问题。

猜你喜欢

转载自blog.csdn.net/victory0508/article/details/131310092