本文仅是自己看书、学习过程中的个人总结,刚接触流式,视野面比较窄,不喜勿喷,欢迎评论交流。


1、为什么是流式?

  为什么是流式而不是流式系统这样的词语?流式系统在我的印象中是相对批处理系统而言的,用来处理流数据,实现数据处理功能的一个系统,而流式一词提醒我要以数据产生的方式去看待数据和以及处理过程,即在现实生活中,数据是以流的形式不断产生的,处理的过程应贴近数据产生的方式。

2、流与批

  在处理数据时,对数据而言有:无界和有界之分。无界可以理解为不知道数据产生的停止时间,在数学上可以用前闭后开( [ ) )的一个区间表示;有界则可以对应的理解为一个闭区间,即知道数据产生的起、止时间。其实这里的有界和无界也只是一个相对概念,某一时间段数据还在产生,则可以认为是无界的。

  在过去进行大规模数据分析时,是以批量的形式收集和分析数据的。什么意思了?就是收集一段时间内的数据或者一定量的数据了拿去分析,统一返回一个结果后,然后处理下一批的数据,每次处理的是有界数据,比如每天都处理前一天的数据,对数据进行分析后应用到各种场景中。在这个过程涉及到了数据的抽取、转换、加载(ETL)了,且该过程中需要人为的干预,才能连续的执行。从之前的描述其实就可以了解到,在批处理中,当我们面临立马得到数据处理结果的场景时,是有点束手无策的。与批处理相对应的是流处理,流处理可以理解是拿到数据后立马处理然后返回一个结果,当然也可以返回一个结果集。目前流处理主要应用在有实时需求的场景中,比如数据的实时监控、天猫的双十一不停刷新成交金额等等。

  关于流过程和批过程的区别,在《流式架构》一书中有这样的一段话,比较好理解:

将数据比作水,批过程和流过程分别相当于用桶装水后交付给用户以及用水管让水流向用户。可以在水管上加个阀门,关闭水龙头的时候水流被周期性截断。有了水管和阀门,用户就可以选择截断水还是让水继续流--能够同时应对两种交付方式。反之,即使使用桶运水的速度足够快,这种桶(批)的交付也永远不可能是连续的。

3、流处理工具简介

  那既然以流的方式处理数据更贴合数据的产生本质,那为什么要需要批处理?其实对于这个问题我目前也不是很清楚,据了解,在技术的发展过程,流处理的难度更大,更多原因后期会以专门的一小节补上,借用一句名言对付此刻的自己:存在即合理。哈哈!(换句话说,我就是不懂)

  目前用于流处理的工具,我了解的右storm、sparkstreaming、flink,关于三者的区别,大伙都是可以百度得到的。此外,虽然都是用于流处理,sparkstreaming,是用桶装水给用户,Flink则感觉是修水管。

  Flink号称是目前唯一实现高并发、高性能、低延时的开源组件,也想解决目前Lambada架构带来的一些维护、开发困难等问题,其具有很多优点也是该系列博客的主角,在这里我就不提了,后面会重点的分析。

  最后需要说一点的是,流处理工具功能的实现,其实离不开消息系统的如kafka、MapR Stream所具备的持久性、容错性、生产消费解耦等诸多优点。

Flink系列之流式的更多相关文章

  1. 「Flink」理解流式处理重要概念

    什么是流式处理呢? 这个问题其实我们大部分时候是没有考虑过的,大多数,我们是把流式处理和实时计算放在一起来说的.我们先来了解下,什么是数据流. 数据流(事件流) 数据流是无边界数据集的抽象 我们之前接 ...

  2. Demo:基于 Flink SQL 构建流式应用

    Flink 1.10.0 于近期刚发布,释放了许多令人激动的新特性.尤其是 Flink SQL 模块,发展速度非常快,因此本文特意从实践的角度出发,带领大家一起探索使用 Flink SQL 如何快速构 ...

  3. 奇点云数据中台技术汇(四)| DataSimba系列之流式计算

    你是否有过这样的念头:如果能立刻马上看到我想要的数据,我就能更好地决策?   市场变化越来越快,企业对于数据及时性的需求,也越来越大,另一方面,当下数据容量呈几何倍暴增,数据的价值在其产生之后,也将随 ...

  4. CSS3系列:流式(弹性)布局(flex布局)

    我的新伸缩盒子.http://www.cnblogs.com/leee/p/5533436.html

  5. 流式计算(三)-Flink Stream 篇一

    原创文章,谢绝任何形式转载,否则追究法律责任! ​流的世界,有点乱,群雄逐鹿,流实在太多,看完这个马上又冒出一个,也不知哪个才是真正的牛,据说Flink是位重量级选手,能流计算,还能批处理, 和其他伙 ...

  6. Flink系列之1.10版流式SQL应用

    随着Flink 1.10的发布,对SQL的支持也非常强大.Flink 还提供了 MySql, Hive,ES, Kafka等连接器Connector,所以使用起来非常方便. 接下来咱们针对构建流式SQ ...

  7. Flink系列(0)——准备篇(流处理基础)

    Apache Flink is a framework and distributed processing engine for stateful computations over unbound ...

  8. Flink 另外一个分布式流式和批量数据处理的开源平台

    Apache Flink是一个分布式流式和批量数据处理的开源平台. Flink的核心是一个流式数据流动引擎,它为数据流上面的分布式计算提供数据分发.通讯.容错.Flink包括几个使用 Flink引擎创 ...

  9. 流式处理新秀Flink原理与实践

    随着大数据技术在各行各业的广泛应用,要求能对海量数据进行实时处理的需求越来越多,同时数据处理的业务逻辑也越来越复杂,传统的批处理方式和早期的流式处理框架也越来越难以在延迟性.吞吐量.容错能力以及使用便 ...

随机推荐

  1. LeetCode_387. First Unique Character in a String

    387. First Unique Character in a String Easy Given a string, find the first non-repeating character ...

  2. 【分布式一致性】etcd

    etcd: https://jimmysong.io/kubernetes-handbook/concepts/etcd.html 什么是 分布式一致性: http://thesecretliveso ...

  3. 【docker 镜像源】解决quay.io和gcr.io国内无法访问的问题

    该问题容易导致image pull back off 错误,应当换源: 微软: https://yeasy.gitbooks.io/docker_practice/install/mirror.htm ...

  4. Pycharm use GUP server

    1.配置远程服务器信息 Tools——Deployment——Configuration 然后,点击加号Add一个远程服务信息. 我这里命名为server1:Type选择SFTP:Host即ip地址, ...

  5. Django中cookie和session的操作

    一.cookie和session cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是 ...

  6. sql 查找入职员工时间排名倒数第三(查找某一列特定排名)

    查找入职员工时间排名倒数第三的员工所有信息CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL, ...

  7. 【Webservice】2 counts of IllegalAnnotationExceptions Two classes have the same XML type name

    在使用客户端调用服务端的时候发生了2 counts of IllegalAnnotationExceptions Two classes have the same XML type name的错误, ...

  8. Python-18-类的内置属性

    1. __getattr__.set__attr__.__delattr__ class Foo: x=1 def __init__(self,y): self.y=y def __getattr__ ...

  9. elk 流程图

    ELK流程图 单纯使用ElK实现分布式日志收集缺点: 1.logstash太多了,扩展不好. 2.读取IO文件,可能会产生日志丢失 3.不是实时性 这时候就需要引入 kafka. kafka基于主题模 ...

  10. C#操作Windows控制面板

    先介绍一下Windows控制面板的一些操作,再介绍如何用C#语言来操作控制面板. 1.如何快速打开控制面板中的项目: 运行输入(大小写不敏感) control system 打开系统信息 contro ...