数据无疑是当今数字经济中的新货币,但要跟上企业数据变化和递增的业务信息需求,仍然是非常艰难。这也就解释了公司将数据从传统基础构架中迁移至云中,以衡量数据驱动决策的原因。这可确保公司宝贵资源——数据——受到监管,值得信任,方便管理和访问。
虽然企业也认可:基于云的技术是确保跨企业间的数据管理、数据安全、隐私和流程合规性的关键,但关于如何更快地处理数据仍然存在一个有趣的争论。那就是批处理与流处理之间的PK。
每种处理方法都有其优缺点,但如何选择还是依据具体的业务需求。下面会深入探讨哪些用例需要使用批处理,又有哪些用例需要使用流处理。
批处理和流处理之间有什么区别?
批次是在特定时间间隔内组合在一起的数据点集合。通常用于此的另一个术语是数据窗口。流处理,用于处理连续数据,是将大数据转换为快速数据的关键。这两种模型都很有价值,每种模型都可用于解决不同的用例。他们甚至可以“融合”,可以在数据流中做数据窗口,也就是微批量。
虽然批处理模型需要时间段内收集的一组数据,但流处理需要将数据送入分析工具中,通常以实时微批量方式送入。处理来自传统架构的大量数据或数据源时经常使用批处理,而在流中直接处理数据是不可行的。根据定义,批处理数据还需要将批处理需要的所有数据加载成某种类型的存储、数据库或文件系统,然后才进行处理。有时,在开始分析阶段之前,IT团队可能会无所事事地等待,直至所有数据加载完成。
流处理也可以用于处理大量数据,但是当您不需要实时分析时,批处理工作效果最佳。由于流处理负责处理运动中的数据并快速提供分析结果,因此它可以用Apache Spark和Apache Beam等平台生成近乎即时的结果。
例如,Talend最近发布的Talend Data Streams是一款免费的亚马逊市场应用程序,由Apache Beam提供支持,可简化并加速大量数据,摄取各种实时数据。
批处理一定比流处理好吗?
无论您喜欢批处理还是支持流处理,两者“融合“时会更好。虽然流处理最适合时间很重要的用例,批处理在收集所有数据时运行良好,但这不代表哪一个比另一个好-这实际上取决于您的业务目标。
然而,我们看到试图利用流处理的公司发生了重大转变。最近对超过16,000名数据专员的调查显示,数据科学面临的最常见挑战包括脏数据、整体访问、或数据可用性等各方面。不幸的是,由于数据处于运动状态,流式传输往往会加剧这些挑战。在“跳槽”至实时的流处理之前,解决这些可访问性和数据质量问题是关键。
当我们与企业讨论他们如何收集数据并加速创新时,他们通常回答说:“想要实时的数据”,我们再问:“实时对您意味着什么?”
商业用例可能会有所不同,但实时取决于事件创建或数据创建相对于处理时间的比例,可能是每小时,每五分钟或每毫秒。
公司为何将数据批处理转换为数据流处理?下面我打一个比方。想象一下,你刚刚从你最喜欢的啤酒厂订购了一批啤酒,客人已准备好喝酒了。但在你能喝酒之前,你必须根据啤酒花的味道对啤酒进行评分,并编辑在线评论对每种啤酒进行评分。如果你知道每换一种啤酒喝就要完成相同的、重复的过程,那么从一种啤酒到另一种啤酒需要相当长的时间。对于一个企业来说,啤酒相当于管道数据。不是等到你所有的数据后进行处理,而是你可以在几秒或几毫秒内微批量处理它(这意味着你可以更快地喝啤酒!)。
为什么选流处理?
如果你长时间没使用过流处理,你可能会问:“为什么我们不能像以前一样批处理?”你当然可以,但如果你有大量的数据,何时需要提取数据很简单,但何时需要使用它很难。
公司将实时数据视为游戏规则改变者。但如果没有适当的工具,实现这一目标仍然是一个挑战,特别是因为企业需要处理递增的数量、种类和数据类型,它们来自众多不同数据系统(如社交媒体)的。在Talend,我们看到企业通常希望拥有更灵活的数据处理,以便他们能够加速创新,并更快地应对竞争威胁。
例如,来自风力涡轮机上的传感器始终开启着。因此,数据流不间断地流动。由于没有数据的启动或停止,因此典型摄取或处理此数据的批处理方法已过时。这是一个使用流处理的完美用例。
大数据争论
很明显,企业正在将实时分析/流处理的优先级转移到实时收集可操作的信息。虽然过时的工具无法应对分析数据所涉及的速度或规模,但今天的数据库和流处理应用程序已经准备好应对当今的业务问题。
以下是大数据争论中的重要内容:仅仅因为你有锤子并不意味着这是工作的正确工具。批处理和流处理是两种不同的模型,它不是二选一的游戏,它是关于如何确定哪一种更适合您的用例的判断。