数据天生就是流式的

简介: 现在依然很多人使用Azkaban/Oozie等工具衔接各个系统,通过外力让数据进行流转。而随着流式计算慢慢成熟与稳定,数据必然如河水一般,天生就是流式的。

题外话

好久没写文章,发现写长文太辛苦了,所以慢慢往短文开始靠。这次算是第一个实践。

完全由流式计算构建的体系

部门目前核心其实就是流式计算,从根部开始(一个超大的Kafka集群)开始,延伸出一个超级庞大的树形结构。整个过程都是数据自我驱动进行流转,没有使用类似Azkaban/Oozie 等外部工具去让数据从一个系统流转到另外一个系统。 而我之前提出 Transformer架构 本质就是一个流式数据架构。 
这个架构的核心概念是:
你开发的任何一个应用,本质上都是将两个或者多个节点连接起来,从而使得数据可以在不同节点之间流转

数据的流转必然由批量到流式

如果说在大数据领域,批量处理是第一次数据革命,那么流式处理则必然是第二次数据革命。
从某种角度而言,批量是流式处理的一个特例,譬如隔天处理数据,本质就是时间窗口为一天的流式计算。当然我们也可以实现以数量为窗口的计算。
当你需要借助外力的时候,事情往往就变得并不美好了。你需要额外的维护譬如Oozie等系统里的工作流,并且你需要考虑各个系统能够完成的时间,从而协调好组件。
数据流转的理想状态应该就如同河水一样,当源头水量变大后,水压会自动迫使数据自动流转速度加快。当我们需要灌溉新的农田时,我们只要接上某个河道(比如Kafka),通过创建新的支流(由流式引擎比如Spark Streaming完成),就可以很方便的将水引入。整个过程是水压驱动水的流转。

批量与流式的微妙关系

Spark Streaming的实现则让流式和批量之间的关系愈加微妙。批量处理是Spark Streaming流式处理的一个窗口特别大的特例,但是如果细加观察,Spark Streaming 的每个batch 又都是一个批处理,只是因为这个批处理可以足够小,看起来就像数据在真实流动一样,所以我们也称之为流式处理。
而Storm这种流式引擎则能实现最细粒度的流转,但是这种细粒度的流转在很多场景并不足够高效,因为在流转的过程中,往往下游无法接受来一条就处理一条的情况,需要通过小窗口的batch来完成更加高效的入库操作。
所以从某种角度而言,Spark Streaming 这种将批处理和流处理巧妙融合的方式可以保证自己可以充分利用流式和批处理的优势。
从另外一个角度而言,流式不过是一个具有无限数据的批处理过程。
目录
相关文章
|
8月前
|
传感器 网络协议 算法
Java网络编程实时数据流处理
在现代计算机应用程序中,处理实时数据流是一项关键任务。这种数据流可以是来自传感器、网络、文件或其他源头的数据,需要即时处理并做出相应的决策。Java提供了强大的网络编程工具和库,可以用于处理实时数据流。本文将详细介绍如何使用Java进行实时数据流处理。
107 0
|
8月前
|
消息中间件 JSON Java
高性能异步编程与实时流那千丝万缕的联系
在海量并发的场景下,使用异步+NIO的编程方式,最后就 会演变成一个实时流系统,看完你也会觉得很惊讶,万物都是想通的
|
8天前
|
消息中间件 算法 Kafka
流计算引擎数据正确性的挑战
按:去年此时发表了一篇文章 《流计算引擎数据一致性的本质》,主要论述了流计算引擎中的数据一致性问题,事实上,该文章只能算作流计算数据一致性的上篇,如何通过流计算中得到真正准确、符合业务语义的数据,需要作进一步阐述。强迫症接受不了这种半拉子工程,所以今年还是陆陆续续把下篇(流计算引擎数据正确性的挑战) 撰写完成。上下两篇文章的主要论点,分别对应了流计算领域中的两大难题:端到端一致性和完整性推理。
|
3月前
|
监控 安全 Java
利用Python多线程实现实时数据处理系统
利用Python多线程实现实时数据处理系统
|
4月前
|
SQL 数据处理 API
ForwardedFields:流处理中的重要概念
ForwardedFields:流处理中的重要概念
26 4
|
6月前
|
存储 分布式计算 大数据
大数据处理平台的架构演进:从批处理到实时流处理
大数据处理平台的架构演进:从批处理到实时流处理
111 0
|
11月前
|
存储 SQL 数据处理
同步还是异步?ETL架构的选择,为何关系到数据处理速度和系统性能
同步还是异步?ETL架构的选择,为何关系到数据处理速度和系统性能
103 0
|
11月前
|
传感器 消息中间件 缓存
低延迟系统设计:实时数据处理和事件驱动架构
在当今的数字化时代,用户对实时性和低延迟的要求越来越高,特别是对于涉及数据处理和事件响应的系统。无论是金融交易、实时监控、在线游戏还是物联网应用,低延迟系统设计都成为了开发者的重要挑战。本文将介绍一种解决方案:实时数据处理和事件驱动架构,帮助开发者构建高效、快速响应的低延迟系统。
348 0
|
存储 SQL 分布式计算
谈谈如何构建优化的流数据架构(下)
流处理最初是一种“特定群体”技术。但随着 SaaS、物联网和机器学习的快速发展,各行各业的组织现在都在试行或全面实施流分析。
谈谈如何构建优化的流数据架构(下)
|
消息中间件 存储 SQL
谈谈如何构建优化的流数据架构(上)
流处理最初是一种“特定群体”技术。但随着 SaaS、物联网和机器学习的快速发展,各行各业的组织现在都在试行或全面实施流分析。
谈谈如何构建优化的流数据架构(上)