当前位置: 首页 > news >正文

大数据争论:批处理与流处理的C位之战

  数据无疑是当今数字经济中的新货币,但要跟上企业数据变化和递增的业务信息需求,仍然是非常艰难。这也就解释了公司将数据从传统基础构架中迁移至云中,以衡量数据驱动决策的原因。这可确保公司宝贵资源——数据——受到监管,值得信任,方便管理和访问。

  虽然企业也认可:基于云的技术是确保跨企业间的数据管理、数据安全、隐私和流程合规性的关键,但关于如何更快地处理数据仍然存在一个有趣的争论。那就是批处理与流处理之间的PK。

  每种处理方法都有其优缺点,但如何选择还是依据具体的业务需求。下面会深入探讨哪些用例需要使用批处理,又有哪些用例需要使用流处理。

  批处理和流处理之间有什么区别?

  批次是在特定时间间隔内组合在一起的数据点集合。通常用于此的另一个术语是数据窗口。流处理,用于处理连续数据,是将大数据转换为快速数据的关键。这两种模型都很有价值,每种模型都可用于解决不同的用例。他们甚至可以“融合”,可以在数据流中做数据窗口,也就是微批量。

  虽然批处理模型需要时间段内收集的一组数据,但流处理需要将数据送入分析工具中,通常以实时微批量方式送入。处理来自传统架构的大量数据或数据源时经常使用批处理,而在流中直接处理数据是不可行的。根据定义,批处理数据还需要将批处理需要的所有数据加载成某种类型的存储、数据库或文件系统,然后才进行处理。有时,在开始分析阶段之前,IT团队可能会无所事事地等待,直至所有数据加载完成。

  

  流处理也可以用于处理大量数据,但是当您不需要实时分析时,批处理工作效果最佳。由于流处理负责处理运动中的数据并快速提供分析结果,因此它可以用Apache Spark和Apache Beam等平台生成近乎即时的结果。

  例如,Talend最近发布的Talend Data Streams是一款免费的亚马逊市场应用程序,由Apache Beam提供支持,可简化并加速大量数据,摄取各种实时数据。

  批处理一定比流处理好吗?

  无论您喜欢批处理还是支持流处理,两者“融合“时会更好。虽然流处理最适合时间很重要的用例,批处理在收集所有数据时运行良好,但这不代表哪一个比另一个好-这实际上取决于您的业务目标。

  然而,我们看到试图利用流处理的公司发生了重大转变。最近对超过16,000名数据专员的调查显示,数据科学面临的最常见挑战包括脏数据、整体访问、或数据可用性等各方面。不幸的是,由于数据处于运动状态,流式传输往往会加剧这些挑战。在“跳槽”至实时的流处理之前,解决这些可访问性和数据质量问题是关键。

  

  当我们与企业讨论他们如何收集数据并加速创新时,他们通常回答说:“想要实时的数据”,我们再问:“实时对您意味着什么?”

  商业用例可能会有所不同,但实时取决于事件创建或数据创建相对于处理时间的比例,可能是每小时,每五分钟或每毫秒。

  公司为何将数据批处理转换为数据流处理?下面我打一个比方。想象一下,你刚刚从你最喜欢的啤酒厂订购了一批啤酒,客人已准备好喝酒了。但在你能喝酒之前,你必须根据啤酒花的味道对啤酒进行评分,并编辑在线评论对每种啤酒进行评分。如果你知道每换一种啤酒喝就要完成相同的、重复的过程,那么从一种啤酒到另一种啤酒需要相当长的时间。对于一个企业来说,啤酒相当于管道数据。不是等到你所有的数据后进行处理,而是你可以在几秒或几毫秒内微批量处理它(这意味着你可以更快地喝啤酒!)。

  为什么选流处理?

  如果你长时间没使用过流处理,你可能会问:“为什么我们不能像以前一样批处理?”你当然可以,但如果你有大量的数据,何时需要提取数据很简单,但何时需要使用它很难。

  公司将实时数据视为游戏规则改变者。但如果没有适当的工具,实现这一目标仍然是一个挑战,特别是因为企业需要处理递增的数量、种类和数据类型,它们来自众多不同数据系统(如社交媒体)的。在Talend,我们看到企业通常希望拥有更灵活的数据处理,以便他们能够加速创新,并更快地应对竞争威胁。

  例如,来自风力涡轮机上的传感器始终开启着。因此,数据流不间断地流动。由于没有数据的启动或停止,因此典型摄取或处理此数据的批处理方法已过时。这是一个使用流处理的完美用例。

  大数据争论

  很明显,企业正在将实时分析/流处理的优先级转移到实时收集可操作的信息。虽然过时的工具无法应对分析数据所涉及的速度或规模,但今天的数据库和流处理应用程序已经准备好应对当今的业务问题。

  以下是大数据争论中的重要内容:仅仅因为你有锤子并不意味着这是工作的正确工具。批处理和流处理是两种不同的模型,它不是二选一的游戏,它是关于如何确定哪一种更适合您的用例的判断。

转载于:https://juejin.im/post/5baef0bbe51d450e6160343d

相关文章:

  • 汉诺(hanio)塔问题
  • docker 系列 - Docker CheatSheet | Docker 配置与实践清单 (转载)
  • CentOS下rpm指令和yum指令详解
  • 微软产品大升级:Surface Pro 6、Studio 2、Laptop 2 重磅来袭
  • mysql8.0 Authentication plugin 'caching_sha2_password' cannot be loaded
  • PostgreSQL 函数式索引使用注意 - 暨非immutable函数不适合索引的原因
  • 零基础兴趣或者转行学习Python,我们应该如何入门呢?
  • bartender 9.4 错误消息6670 无法链接到数据库的解决办法
  • JVM G1笔记
  • Linux下切换用户出现su: Authentication failure的解决办法
  • [MicroPython]TPYBoard v102 CAN总线通信
  • Java多线程——AQS框架源码阅读
  • 超大数据下大批量随机键值的查询优化方案
  • node中的npm的使用
  • 未来五年中国本土机器人制造业将显著提升
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • JS 中的深拷贝与浅拷贝
  • Codepen 每日精选(2018-3-25)
  • CODING 缺陷管理功能正式开始公测
  • iOS 颜色设置看我就够了
  • JavaScript DOM 10 - 滚动
  • JavaScript新鲜事·第5期
  • jquery ajax学习笔记
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • MobX
  • MySQL几个简单SQL的优化
  • Node项目之评分系统(二)- 数据库设计
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • webgl (原生)基础入门指南【一】
  • Webpack 4 学习01(基础配置)
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • ------- 计算机网络基础
  • 力扣(LeetCode)22
  • 你真的知道 == 和 equals 的区别吗?
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 学习笔记TF060:图像语音结合,看图说话
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • #WEB前端(HTML属性)
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (04)odoo视图操作
  • (4.10~4.16)
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (转)ABI是什么
  • ... 是什么 ?... 有什么用处?
  • .bat文件调用java类的main方法
  • .gitattributes 文件
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET Core 和 .NET Framework 中的 MEF2
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .netcore 获取appsettings
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .NET学习教程二——.net基础定义+VS常用设置