前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >为什么会有流处理?

为什么会有流处理?

作者头像
JavaEdge
发布于 2022-10-04 00:38:00
发布于 2022-10-04 00:38:00
4000
举报
文章被收录于专栏:JavaEdgeJavaEdge

批处理技术,它读取一组文件作为输入,并生成一组新的文件作为输出。输出是 衍生数据(derived data) 的一种形式;即若需要,可通过再次运行批处理过程来重新创建数据集。我们看到了如何使用这个简单而强大的想法来建立搜索索引、推荐系统、做分析等。

但这有很大的假设:输入有界,即已知和有限的大小,所以批处理知道它何时能完成输入的读取。如MapReduce核心的排序操作须读全部输入,才能开始生成输出。这就可能发生case:最后一条输入记录具有最小的键,因此需第一个被输出,所以提早开始输出是不可行的。

而很多数据无界,因为它随着时间推移而逐渐到达:你的用户在昨天和今天产生数据,明天他们将继续产生数据。除非你停业,否则该过程永不结束,所以数据集从来就不会以任何有意义的方式而 “完成”。因此,批处理程序必须将数据人为分成固定时间段的数据块,如每天结束时处理一天的数据或每h结束时处理一小时的数据。

批处理的问题是,输入的变更只会在一天之后的输出中反映,对急躁的用户来说太慢。为减少延迟,可更频繁运行处理,如每s的末尾或更连续一些,完全抛开固定时间切片,当事件发生时就立即处理,这就是流处理(stream processing)的想法。

一般来说,“流” 是指随着时间的推移逐渐可用的数据。这个概念出现在很多地方:Unix 的 stdin 和 stdout,编程语言(惰性列表)【2】,文件系统 API(如 JavaFileInputStream),TCP 连接,通过互联网传送音频和视频等等。

本文将把 事件流(event stream) 视为一种数据管理机制:无界限,增量处理,与上一章中的批量数据相对应。我们将首先讨论怎样表示、存储、通过网络传输流。在 “数据库与流” 中,我们将研究流和数据库之间的关系。最后在 “流处理” ,研究连续处理这些流的方法和工具,以及它们用于应用构建的方式。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/09/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Streaming 102:批处理之外的流式世界第二部分
欢迎回来!如果你错过了我之前的博文:Streaming 101:批处理之外的流式世界第一部分,我强烈建议你先花时间阅读这篇文章。在这篇文章介绍的内容是下面介绍内容的基础,并且当你阅读这篇文章时,我假设你已经熟悉第一篇文章中介绍的术语和概念了(有些东西在这篇文章不会详细介绍)。现在我们进入正题。先简要回顾一下,上篇文章我主要关注的三个方面:
smartsi
2022/01/31
1.4K0
Streaming 102:批处理之外的流式世界第二部分
11 Confluent_Kafka权威指南 第十一章:流计算
kafka 传统上被视为一个强大的消息总线,能够处理事件流,但是不具备对数据的处理和转换能力。kafka可靠的流处理能力,使其成为流处理系统的完美数据源,Apache Storm,Apache Spark streams,Apache Flink,Apache samza 的流处理系统都是基于kafka构建的,而kafka通常是它们唯一可靠的数据源。 行业分析师有时候声称,所有这些流处理系统就像已存在了近20年的复杂事件处理系统一样。我们认为流处理变得更加流行是因为它是在kafka之后创建的,因此可以使用kafka做为一个可靠的事件流处理源。日益流行的apache kafka,首先做为一个简单的消息总线,后来做为一个数据集成系统,许多公司都有一个系统包含许多有趣的流数据,存储了大量的具有时间和具有时许性的等待流处理框架处理的数据。换句话说,在数据库发明之前,数据处理明显更加困难,流处理由于缺乏流处理平台而受到阻碍。 从版本0.10.0开始,kafka不仅仅为每个流行的流处理框架提供了更可靠的数据来源。现在kafka包含了一个强大的流处理数据库作为其客户端集合的一部分。这允许开发者在自己的应用程序中消费,处理和生成事件,而不以来于外部处理框架。 在本章开始,我们将解释流处理的含义,因为这个术语经常被误解,然后讨论流处理的一些基本概念和所有流处理系统所共有的设计模式。然后我们将深入讨论Apache kafka的流处理库,它的目标和架构。我们将给出一个如何使用kafka流计算股票价格移动平均值的小例子。然后我们将讨论其他好的流处理的例子,并通过提供一些标准来结束本章。当你选择在apache中使用哪个流处理框架时可以根据这些标准进行权衡。本章简要介绍流处理,不会涉及kafka中流的每一个特性。也不会尝试讨论和比较现有的每一个流处理框架,这些主题值得写成整本书,或者几本书。
冬天里的懒猫
2020/08/12
1.7K0
11 Confluent_Kafka权威指南 第十一章:流计算
Apache Flink实战(一) - 简介
Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。 Flink设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算。
JavaEdge
2019/04/26
2.4K0
Apache Flink实战(一) - 简介
主流实时流处理计算框架Flink初体验
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。百度百科
百思不得小赵
2022/12/01
1.1K0
主流实时流处理计算框架Flink初体验
1w+ 字深入解读 Flink SQL 实现流处理的核心技术!
本文摘编于《Flink SQL 与 DataStream 入门、进阶与实战》,作者羊艺超,经出版方授权发布,转载请标明文章出处。
公众号:大数据羊说
2024/01/08
1.4K0
1w+ 字深入解读 Flink SQL 实现流处理的核心技术!
常常听到的流处理是什么?
流处理是一种允许用户在接收到的数据后的短时间内快速查询连续数据流和检测条件的技术。检测时间从几毫秒到几分钟不等。
后端技术探索
2018/12/24
1.6K0
流表相对论
《Streaming Systems》第二部分讨论的是Stream and Table Relativity,翻译过来就是流表相对论。从Stream and Table Relativity角度看待流(Stream)和表(Table),就会发现它们只不过是一枚硬币的正反两面;正如在爱因斯坦还没有提出相对论时,我们会认为牛顿的理论就是正确的,随着相对论的诞生使我们从更高的维度去思考现实,发现牛顿物理学只不过是相对论的特例而已。
哒呵呵
2019/04/26
7930
数据系统的未来------《Designing Data-Intensive Applications》读书笔记17
对于任何给定的数据问题,总会有多种解决方案。所有这些解决方案都会有不同的优缺点和权衡。因此,最合适的软件工具选择也要视情况而定。每一个软件,甚至一个所谓的“通用”数据库,都是为特定的使用模式而设计的。所以,在复杂的应用程序中,数据工具通常会串联起来共同工作。不存在有一个软件适合于使用数据的所有不同环境,因此不可避免地要将几个不同的软件串联在一起,以便更好帮助应用程序工作。
HappenLee
2018/09/05
1K0
数据系统的未来------《Designing Data-Intensive Applications》读书笔记17
Flink 如何现实新的流处理应用第一部分:事件时间与无序处理
流数据处理正处于蓬勃发展中,可以提供更实时的数据以实现更好的数据洞察,同时从数据中进行分析的流程更加简化。在现实世界中数据生产是一个连续不断的过程(例如,Web服务器日志,移动应用程序中的用户活跃,数据库事务或者传感器读取的数据)。正如其他人所指出的,到目前为止,大部分数据架构都是建立在数据是有限的、静态的这样的基本假设之上。为了缩减连续数据生产和旧”批处理”系统局限性之间的这一根本差距,引入了复杂而脆弱(fragile)的端到端管道。现代流处理技术通过以现实世界事件产生的形式对数据进行建模和处理,从而减轻了对复杂解决方案的依赖。
smartsi
2022/01/18
9840
Flink 如何现实新的流处理应用第一部分:事件时间与无序处理
凭什么说流处理是未来?
本文整理自 Flink 创始公司 dataArtisans(现在为Ververica)联合创始人兼 CTO Stephan Ewen 在 Flink Forward China 2018 上的演讲《Stream Processing takes on Everything》。
养码场
2019/04/25
5180
凭什么说流处理是未来?
Flink 极简教程: 架构及原理 Apache Flink® — Stateful Computations over Data Streams
Apache Flink 是一个分布式流计算引擎,用于在无边界和有边界数据流上进行有状态的计算。
一个会写诗的程序员
2022/01/04
3.5K0
Flink 极简教程: 架构及原理 Apache Flink® — Stateful Computations over Data Streams
穿梭时空的实时计算框架——Flink对时间的处理
Flink对于流处理架构的意义十分重要,Kafka让消息具有了持久化的能力,而处理数据,甚至穿越时间的能力都要靠Flink来完成。
用户6070864
2019/09/04
8190
穿梭时空的实时计算框架——Flink对时间的处理
Stream 对于流处理技术的谬见
我们在思考流处理问题上花了很多时间,更酷的是,我们也花了很多时间帮助其他人认识流处理,以及如何在他们的组织里应用流处理来解决数据问题。
smartsi
2019/08/07
5740
DDIA:消息系统——生产者和消费者的游戏?
在第十章的时候,我们讨论了批处理——它总是读取一些文件作为输入,产生一些新文件作为输出。这里的输出就是一种“衍生数据”:即,如果有需要,我们可以通过再跑一遍批处理任务获取相同的结果集。从之前章节的讨论我们可以看出,这种思想简单却强大:像搜索引擎、推荐系统、分析系统等很多现代常见的数据系统都是基于这种思想构建的。
木鸟杂记
2024/03/22
2020
DDIA:消息系统——生产者和消费者的游戏?
一篇文章带你深入了解Flink SQL流处理中的特殊概念
Table API 和 SQL,本质上还是基于关系型表的操作方式;而关系型表、关系代数,以及SQL 本身,一般是有界的,更适合批处理的场景。这就导致在进行流处理的过程中,理解会稍微复杂一些,需要引入一些特殊概念。接下来就分别讲一下这几种概念。
大数据老哥
2021/02/04
1.6K0
一篇文章带你深入了解Flink SQL流处理中的特殊概念
【Flink】 WaterMark 详解
在设计上 Flink 认为数据是流式的,批处理只是流处理的特例。同时对数据分为有界数据和无界数据。
857技术社区
2022/05/17
1.3K0
【Flink】 WaterMark 详解
FlinkSQL | 流处理中的特殊概念
上一篇文章,为大家介绍了关于 FlinkSQL 的背景,常见使用以及一些小技巧。学完之后,对于FlinkSQL只能算是简单入了个门。不过不用担心,本篇文章,博主将为大家带来关于 FlinkSQL中流处理的特殊概念,喜欢的话,记得看完点个赞|ू・ω・` )
大数据梦想家
2021/10/22
2K0
流处理与消息队列------《Designing Data-Intensive Applications》读书笔记16
在流处理之中,当输入是文件时,第一个处理步骤通常是将其解析为一连串的记录。在流处理之中,记录通常被称为事件,每个事件都是一个小的、独立的、不可变的对象,通常每个事件包含一个时间戳,表明事件产生的时间。 在流处理之中,事件由生产者产生,然后可能由多个对应消费者,相关的事件通常被分组到同一个主题之中。
HappenLee
2018/09/05
1.1K0
流处理与消息队列------《Designing Data-Intensive Applications》读书笔记16
一文说清楚大数据平台中的流处理与批处理的区别
流数据处理和批数据处理之间的区别主要在于数据的处理方式、时间性、架构设计和适用场景。虽然批处理系统和流处理系统都可以处理数据,但它们处理数据的方式和目的不同,以下我将“流数据处理”和“批数据处理”进行差异分析。
用户7966476
2024/08/19
5410
LinkedIn前数据专家解读日志与实时流处理
编者注:本内容来自Jay Kreps所著的《我喜爱日志:事件数据、流计算处理和数据集成》一书的第三章。Jay Kreps是Confluent的联合创始人和CEO。在此之前,Jay是领英的主要架构师之一,专注于数据基础架构和数据驱动的产品。他是多个可扩展的数据系统空间的开源项目的作者之一,包括Voldemort、Azkaban、Kafka和Samza。 以下是原文: 到目前为止,我还仅仅只是描述了一些把数据从一个地方拷贝到其他地方的多种的方法。然而,在存储系统间挪动字节并不是故事的结尾。实际上我们发现,“日
大数据文摘
2018/05/24
7520
推荐阅读
相关推荐
Streaming 102:批处理之外的流式世界第二部分
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档