随着数据成为现代企业中越来越重要的一部分,组织经常发现自己需要处理大量数据。处理数据的两种常见方法是批处理和事件流。
批处理
- 批处理涉及通常在预定的时间间隔(例如每天或每周)内一次处理数据。
- 常用于不需要实时处理的任务和可以容忍一定延迟的任务。
- 如果您有一组固定的要处理的输入数据,那就太好了。
- 批处理的示例是Apache Spark
事件流
- 事件流涉及在数据发生时对其进行处理。事件流是可以(近)实时收集和处理的连续数据流。
- 通常用于需要实时洞察力的应用程序。这方面的例子可以是欺诈检测或实时推荐。
- 实时处理数据为组织提供了他们可以立即采取行动和分析的信息,正确地完成这可以为您的企业提供竞争优势。
- 事件可以是无限数据(连续数据,或永无止境),因此如果您需要实时处理此类信息,那么流式传输可以提供帮助。
- 流式传输的示例是Apache Kafka
何时使用批处理或事件流?
- 与往常一样,取决于您的用例。您的数据处理能否容忍一些延迟?那么也许批处理可能更合适。您需要立即处理数据吗?您是否有立即处理信息的优势?那么流媒体事件可能更有意义。
- 请记住考虑批处理选项和流选项之间的成本。
- 使用模式来帮助您的下游消费者。请记住,对于流式处理和批处理,您可以在特定阶段应用集成模式。示例是丰富事件/消息,因为它们通过您的流供下游消费者使用。