Flink系列之流式
本文仅是自己看书、学习过程中的个人总结,刚接触流式,视野面比较窄,不喜勿喷,欢迎评论交流。
1、为什么是流式?
为什么是流式而不是流式系统这样的词语?流式系统在我的印象中是相对批处理系统而言的,用来处理流数据,实现数据处理功能的一个系统,而流式一词提醒我要以数据产生的方式去看待数据和以及处理过程,即在现实生活中,数据是以流的形式不断产生的,处理的过程应贴近数据产生的方式。
2、流与批
在处理数据时,对数据而言有:无界和有界之分。无界可以理解为不知道数据产生的停止时间,在数学上可以用前闭后开( [ ) )的一个区间表示;有界则可以对应的理解为一个闭区间,即知道数据产生的起、止时间。其实这里的有界和无界也只是一个相对概念,某一时间段数据还在产生,则可以认为是无界的。
在过去进行大规模数据分析时,是以批量的形式收集和分析数据的。什么意思了?就是收集一段时间内的数据或者一定量的数据了拿去分析,统一返回一个结果后,然后处理下一批的数据,每次处理的是有界数据,比如每天都处理前一天的数据,对数据进行分析后应用到各种场景中。在这个过程涉及到了数据的抽取、转换、加载(ETL)了,且该过程中需要人为的干预,才能连续的执行。从之前的描述其实就可以了解到,在批处理中,当我们面临立马得到数据处理结果的场景时,是有点束手无策的。与批处理相对应的是流处理,流处理可以理解是拿到数据后立马处理然后返回一个结果,当然也可以返回一个结果集。目前流处理主要应用在有实时需求的场景中,比如数据的实时监控、天猫的双十一不停刷新成交金额等等。
关于流过程和批过程的区别,在《流式架构》一书中有这样的一段话,比较好理解:
将数据比作水,批过程和流过程分别相当于用桶装水后交付给用户以及用水管让水流向用户。可以在水管上加个阀门,关闭水龙头的时候水流被周期性截断。有了水管和阀门,用户就可以选择截断水还是让水继续流--能够同时应对两种交付方式。反之,即使使用桶运水的速度足够快,这种桶(批)的交付也永远不可能是连续的。 |
3、流处理工具简介
那既然以流的方式处理数据更贴合数据的产生本质,那为什么要需要批处理?其实对于这个问题我目前也不是很清楚,据了解,在技术的发展过程,流处理的难度更大,更多原因后期会以专门的一小节补上,借用一句名言对付此刻的自己:存在即合理。哈哈!(换句话说,我就是不懂)
目前用于流处理的工具,我了解的右storm、sparkstreaming、flink,关于三者的区别,大伙都是可以百度得到的。此外,虽然都是用于流处理,sparkstreaming,是用桶装水给用户,Flink则感觉是修水管。
Flink号称是目前唯一实现高并发、高性能、低延时的开源组件,也想解决目前Lambada架构带来的一些维护、开发困难等问题,其具有很多优点也是该系列博客的主角,在这里我就不提了,后面会重点的分析。
最后需要说一点的是,流处理工具功能的实现,其实离不开消息系统的如kafka、MapR Stream所具备的持久性、容错性、生产消费解耦等诸多优点。
Flink系列之流式的更多相关文章
- 「Flink」理解流式处理重要概念
什么是流式处理呢? 这个问题其实我们大部分时候是没有考虑过的,大多数,我们是把流式处理和实时计算放在一起来说的.我们先来了解下,什么是数据流. 数据流(事件流) 数据流是无边界数据集的抽象 我们之前接 ...
- Demo:基于 Flink SQL 构建流式应用
Flink 1.10.0 于近期刚发布,释放了许多令人激动的新特性.尤其是 Flink SQL 模块,发展速度非常快,因此本文特意从实践的角度出发,带领大家一起探索使用 Flink SQL 如何快速构 ...
- 奇点云数据中台技术汇(四)| DataSimba系列之流式计算
你是否有过这样的念头:如果能立刻马上看到我想要的数据,我就能更好地决策? 市场变化越来越快,企业对于数据及时性的需求,也越来越大,另一方面,当下数据容量呈几何倍暴增,数据的价值在其产生之后,也将随 ...
- CSS3系列:流式(弹性)布局(flex布局)
我的新伸缩盒子.http://www.cnblogs.com/leee/p/5533436.html
- 流式计算(三)-Flink Stream 篇一
原创文章,谢绝任何形式转载,否则追究法律责任! 流的世界,有点乱,群雄逐鹿,流实在太多,看完这个马上又冒出一个,也不知哪个才是真正的牛,据说Flink是位重量级选手,能流计算,还能批处理, 和其他伙 ...
- Flink系列之1.10版流式SQL应用
随着Flink 1.10的发布,对SQL的支持也非常强大.Flink 还提供了 MySql, Hive,ES, Kafka等连接器Connector,所以使用起来非常方便. 接下来咱们针对构建流式SQ ...
- Flink系列(0)——准备篇(流处理基础)
Apache Flink is a framework and distributed processing engine for stateful computations over unbound ...
- Flink 另外一个分布式流式和批量数据处理的开源平台
Apache Flink是一个分布式流式和批量数据处理的开源平台. Flink的核心是一个流式数据流动引擎,它为数据流上面的分布式计算提供数据分发.通讯.容错.Flink包括几个使用 Flink引擎创 ...
- 流式处理新秀Flink原理与实践
随着大数据技术在各行各业的广泛应用,要求能对海量数据进行实时处理的需求越来越多,同时数据处理的业务逻辑也越来越复杂,传统的批处理方式和早期的流式处理框架也越来越难以在延迟性.吞吐量.容错能力以及使用便 ...
随机推荐
- [转载] HashMap的工作原理-hashcode和equals的区别
目录 前言 为什么需要使用Hashcode,可以从Java集合的常用需求来描述: 更深入的介绍 先来些简单的问题 HashMap的0.75负载因子 总结 我在网上看到的这篇文章,介绍的很不错,但是我看 ...
- Swift4.0复习函数
1.函数的定义与调用: 一个函数定义的基本语法如以下代码所示: func function_name (param1: Int, param2: Float, param3: Double) -> ...
- idea中报Can't start Git: git.exe The path to Git executable is probably not valid. Fix it
解决办法,点解Fix it,或者File ----setting------version control-------git,设置git的可执行文件路径就可以了 设置好了git的安装路径的可运行文件 ...
- 【Leetcode_easy】1137. N-th Tribonacci Number
problem 1137. N-th Tribonacci Number solution: class Solution { public: int tribonacci(int n) { ) ; ...
- php+memcache高速缓存
原文地址:https://blog.csdn.net/qq_33571752/article/details/86494667 #在lnmp基础上修改 依赖libevent程序库 cd lnmp/ta ...
- Flask 数据库连接
Flask拥有丰富的扩展组件,数据库管理方面Flask-SQLAlchemy简化了数据库管理的操作.SQLAlchemy是一个很强大的关系型数据库框架,支持多种数据库后台.其不但提供了高层ORM,而且 ...
- [学习笔记] 下载、安装、启动 Eclipse(OEPE)
OEPE 的全称是: Oracle Enterprise Pack for Eclipse 截止目前的最新版本是:(12.2.1.9) 下载地址:(需要在甲骨文官网注册一个账户才能下载) https: ...
- Java多线程概念及优缺点,多线程的地位|乐字节
大家好,乐字节小乐有来咯,上次说完了Java网络编程探究|乐字节,这次我们来看看线程相关的吧. Java线程主要讲述的内容有: 1.线程概念 多线程,说白了就是多条执行路径,原来是一条路径,就主路径( ...
- PAT甲级题分类汇编——排序
本文为PAT甲级分类汇编系列文章. 排序题,就是以排序算法为主的题.纯排序,用 std::sort 就能解决的那种,20分都算不上,只能放在乙级,甲级的排序题要么是排序的规则复杂,要么是排完序还要做点 ...
- Scala 面向对象编程之对象
此对象非彼java bean对象 是scala object的对象 Object // object,相当于class的单个实例,通常在里面放一些静态的field或者method // 第一次调用ob ...