首页 > 其他分享 >一文说清楚数据集成中的流处理与批处理的区别

一文说清楚数据集成中的流处理与批处理的区别

时间:2024-09-13 11:25:25浏览次数:10  
标签:集成 一文 批处理 处理 内存 数据处理 数据流 数据

流数据处理和批数据处理之间的区别主要在于数据的处理方式、时间性、架构设计和适用场景。虽然批处理系统和流处理系统都可以处理数据,但它们处理数据的方式和目的不同,以我们来对“流数据处理”和“批数据处理”进行差异分析。

 

1、流数据处理 vs. 批数据处理

流数据处理(Stream Processing)

定义:流数据处理是指实时、连续地处理数据流。数据在被产生或接收后立即处理,并不需要等待所有数据到齐。数据的处理和传输是“逐条”进行的。

特点

实时性:数据一旦进入系统,就会被立即处理,这使得系统能够处理实时的数据流,如来自传感器、点击流日志、金融交易等。

数据流的无限性:流数据通常是无限的,数据持续不断地被生成和处理,系统需要持续运行。

低延迟:由于数据被实时处理,系统响应时间非常短,通常在毫秒或秒级。

架构:流处理系统通常需要处理器、队列、缓存等组件,以支持高吞吐量和低延迟。

 

批数据处理(Batch Processing)

定义:批数据处理是指在一个预定时间内收集一批数据,然后一次性对这批数据进行处理。数据是成批处理的,而不是逐条处理。

特点

处理完整的数据集:批处理通常在所有数据收集完毕后进行,这意味着处理的数据集是固定大小的(如每日、每小时的数据)。

高吞吐量:由于数据可以一次性处理,批处理通常能处理大量数据,但响应时间较长。

架构:批处理系统通常采用调度器、任务队列和数据仓库等组件,可以在处理过程中利用磁盘存储,而不依赖于内存。

延迟:批处理通常不是实时的,处理的延迟可能是分钟、小时甚至更长。

 

2、为什么有流和批之分

图:流处理、批处理区分

 

3、内存数据对象 vs. 流与批的区别

内存中的数据对象:无论是流处理还是批处理,数据在处理过程中可能都会暂时存储在内存中。但是,两者在如何管理和使用这些内存数据对象上有所不同。

流处理的内存使用通常是短暂的,因为数据会迅速流过数据处理节点。

批处理的内存使用可能会更集中,因为需要在内存中处理完整的批次数据,这可能导致需要更大的内存资源或频繁的磁盘 I/O。

 

4、典型流处理与批处理平台

Apache NiFi

数据流从一个处理器流向下一个处理器,可以随时对数据进行处理、过滤、转换、路由等操作。数据可以是不断流入的流数据,如 IoT 传感器数据。

每一条数据进入系统后都会被立即处理,处理完之后数据就会被传递到下一个处理节点,整个流程是实时进行的。

图:流处理流程图

ETLCloud

数据通常是在任务开始时从源头读取并加载到内存中,然后按照定义的转换步骤进行批量处理。比如每小时从数据库中读取一个表的所有记录,然后对这些记录进行清洗、转换,最后加载到目标数据库。

数据处理是在任务执行时才能进行的,所有的转换操作是在所有数据都准备好之后一次性完成的。

虽然也可以对实时数据流处理,但是在框架上不是专门为流处理设计的,更适合于进行实时流的微批处理。

图:ETL批处理流程示例

5、总结

流处理: 强调实时性和持续性,适合处理无边界的、连续产生的数据流。Apache NiFi 通过“逐条处理”的方式,实现了流数据的实时处理。

批处理: 强调对固定批次数据的集中处理,适合处理边界明确的数据集。ETLCloud通过“批量处理”的方式,一次性对一批数据进行处理。

流处理和批处理虽然都可以在内存中处理数据对象,但它们的处理逻辑和设计理念不同,适用于不同的应用场景

标签:集成,一文,批处理,处理,内存,数据处理,数据流,数据
From: https://www.cnblogs.com/restcloud/p/18411893

相关文章

  • 10 Windows批处理之调用例程和bat文件
    在前文中,我介绍了标签和非顺序执行,这两者在本文中也起着重要作用。我将很快介绍一个已经讨论过的命令的新变化,允许您创建和调用由标签定义的例程。不是简单地在标签之后将控制权交给代码,而是在例程执行后将控制权返回到调用它的位置。在编写更复杂、更有趣的bat文件时,您需要完全理......
  • 10 Windows批处理之调用例程和bat文件
    在前文中,我介绍了标签和非顺序执行,这两者在本文中也起着重要作用。我将很快介绍一个已经讨论过的命令的新变化,允许您创建和调用由标签定义的例程。不是简单地在标签之后将控制权交给代码,而是在例程执行后将控制权返回到调用它的位置。在编写更复杂、更有趣的bat文件时,您需要完全理......
  • 一文搞定高并发编程:CompletableFuture的supplyAsync与runAsync
    CompletableFuture是Java8中引入的一个类,用于简化异步编程和并发操作。它提供了一种方便的方式来处理异步任务的结果,以及将多个异步任务组合在一起执行。CompletableFuture支持链式操作,使得异步编程更加直观和灵活。在引入CompletableFuture之前,Java已经有了Future接口来......
  • 【智能终端】HBuilder X 与微信开发者工具集成与调试实战
    目录1.需求和理解库、框架、平台1.1需求1.2理解2.3库、框架、平台2.3.1库(Library)2.3.2框架(Framework)2.3.3平台(Platform)2.3.4总结2.使用HBuilderX创建第一个uni-app应用步骤1:进入DCloud 官网,下载并安装HBuilderX。步骤2:打开HBuilderX,选择新......
  • 一文带你看懂状态管理库Redux原理
    Redux目录1.对Redux的理解,主要解决什么问题2.Redux原理及工作流程3.Redux中异步的请求怎么处理4.Redux怎么实现属性传递,介绍下原理5.Redux中间件是什么?接受几个参数?柯里化函数两端的参数具体是什么?6.Redux请求中间件如何处理并发7.Redux状态管理器和变量......
  • Java小白一文讲清Java中集合相关的知识点(九)
    Map和Set常用的APIMap常用APIput(Kkey,Vvalue):将指定的键值对插入到映射中。get(Objectkey):返回与指定键关联的值,如果键不存在则返回null。remove(Objectkey):移除指定键及其对应的值。containsKey(Objectkey):判断是否包含指定的键。containsValue(Object......
  • 一文总览 CES 升级新特性,全面了解云上的资源使用
    1.简介云监控服务(CES)为用户提供一个针对弹性云服务器、带宽等资源的立体化监控平台,涵盖云基础设施、高阶服务、外网网络质量监控,是基于主机监控、云服务监控、事件监控、日志监控、站点监控于一体的全面、高效的监控服务。使用云监控服务使您全面了解云上的资源使用情况、业务的......
  • 一文看懂Prometheus告警原理及过程
    本文详细介绍了如何在Prometheus中自定义告警规则,包括规则构成、Prometheus配置、告警流程以及告警解除的处理方法,特别关注了告警解除后的通知策略。摘要由CSDN通过智能技术生成目录1.自定义告警规则2.告警规则编写3.prometheus配置4.告警过程5.告警解除5.1对startsA......
  • Chainlit集成Langchain并使用通义千问和智谱AI实现AI知识库检索网页对话应用
    LangChain简介LangChain是一个开源框架,设计用于开发和部署与语言模型(如大型语言模型LLM)交互的应用程序。它提供了一种简便的方法来构建基于自然语言处理(NLP)的系统,这些系统可以执行各种任务,例如问答、文本生成、文档检索等。LangChain的主要目标是简化开发过程,使开发者能......
  • KPaaS 业务集成扩展平台:微服务下的流程引擎
    随着科技的飞速发展和市场竞争的日益加剧,企业对于高效的业务集成和扩展平台的需求变得愈发迫切。在当今这个数字化时代,数字化转型已成为企业生存和发展的必由之路,在这个过程中,先进的技术架构和工具起着至关重要的作用。微服务架构作为一种新兴的架构模式,正逐渐在企业中广泛普及......