远方的灯塔 - 专注于服务端技术分享 远方的灯塔 - 专注于服务端技术分享
首页
  • Java SE
  • Struts2
  • Hibernate
  • MyBatis
  • JAX-WS
  • 并发
  • 分布式
  • Git
  • 《C程序设计语言》
心情随笔
  • 文章分类
  • 文章标签
  • 文章归档
友情链接
关于我
GitHub (opens new window)

Terwer Green

一个后端老菜鸟
首页
  • Java SE
  • Struts2
  • Hibernate
  • MyBatis
  • JAX-WS
  • 并发
  • 分布式
  • Git
  • 《C程序设计语言》
心情随笔
  • 文章分类
  • 文章标签
  • 文章归档
友情链接
关于我
GitHub (opens new window)
  • Java SE

  • MyBatis

  • 大数据&分布式

    • Flink

      • 「精华」Flink 技术体系与学习路线
      • 「精华」Flink 入门第一步-从环境准备到运行 WordCount
      • 「精华」从有界与无界之辨到流批一体之合:现代数据架构的范式演进
    • 《设计模式》

    • 后端开发
    • 大数据&分布式
    • Flink
    terwer
    2025-10-09
    目录

    「精华」从有界与无界之辨到流批一体之合:现代数据架构的范式演进

    本文从有界与无界数据的本质区别入手,探讨了数据处理范式从传统批流分立到流批一体的演进。有界数据是静态、有限的集合,适合批处理;无界数据是动态、无限的流,适合流处理。传统架构中二者分立导致复杂性与不一致,而流批一体通过统一引擎(如Flink)将批处理视为有界流的特例,实现了API、逻辑和运行时的一致性。


    摘要:在数据处理的本质中,有界与无界是描述数据形态的一对核心哲学概念。理解它们的差异是数据领域的入门基石,而洞见它们的统一,则是构建下一代实时化数据架构的关键。本文将从这两个概念出发,深入探讨其如何驱动数据处理范式从批流分立走向流批一体,并分享其在海量数据场景下的最佳实践与思考。


    # ​一、 缘起:数据的两种基本形态——有界与无界

    任何数据架构的设计,都始于对数据本身形态的认知。

    • ​有界数据流​:可被理解为一种​已知、有限、静态​的数据集合。它如同一个已经蓄满水的水库,边界清晰,总量明确。处理此类数据的典型范式是​批处理,例如在凌晨对昨日全天的日志进行分析,生成 T+1 的报表。Hadoop MapReduce 是这一范式的经典代表,其核心思想是“移动数据到计算”,待所有数据就绪后,进行全量计算并产出最终结果。
    • ​无界数据流​:则代表了​持续生成、无限、动态​的数据序列。它更像一条奔流不息的江河,没有尽头。处理此类数据必须采用​流处理,例如实时风控、实时监控。Apache Storm 等早期流引擎的理念是“移动计算到数据”,对每个到达的事件进行即时处理,追求极致的低延迟。

    ​技术选型的根本矛盾:在过去很长一段时间里,上述认知导致了技术栈的“分立”:批处理系统与流处理系统各自为政。这带来了巨大的架构复杂性:业务逻辑需要编写两套(一套用于批,一套用于流),研发运维成本高昂,且难以保证最终数据一致性。

    # ​二、 破局:范式的升维——流批一体

    当我们在“如何区分二者”的层面思考时,我们仍是架构师。而当我们开始思考“​能否统一二者”时,便迈向了更高阶的领域。

    在多年海量实时数据和离线数据处理的锤炼中,我们深刻认识到:批(有界数据)是流(无界数据)的一个特例。

    这个由 Apache Flink 等新一代计算引擎所倡导的“流优先”思想,是破局的关键:

    • ​将批看作有界的流:处理一份静态数据(如一天的日志),完全可以被视作处理一个“已知何时会结束”的特殊数据流。当这个“流”的所有数据被处理完毕后,引擎自然触发计算并结束任务。
    • ​统一的计算引擎​:基于此理念,一个设计优良的流处理引擎(如 Flink)天然就能同时处理无界流和有界流。这意味着,无论是实时告警还是天级报表,你都可以用​同一套 API​、​同一套业务逻辑​、​同一个运行时引擎来完成。

    ​这就是“流批一体”的核心内涵。它并非简单地用一个引擎去模拟另一种处理模式,而是从更本质的维度上统一了数据处理的抽象。

    # 三、 实践场景下的价值与落地

    对于高级开发及以上同学而言,理解理论价值固然重要,但更关键的是将其与实际的业务价值和技术战略相结合。

    ​1. 核心价值:

    • ​降低架构复杂度与成本:告别两套系统,一套引擎搞定,极大降低了开发、调试、运维和资源调度的成本。
    • ​保证数据语义一致性:这是最具业务价值的点。用同一套代码处理实时和离线数据,从根本上保证了业务逻辑的完全一致,使得“实时数据与离线数据对不上”这一经典难题得到根治。
    • ​加速数据价值转化:流批一体为“实时数仓”铺平了道路。数据从产生到产生洞察的延迟从天级缩短到分钟甚至秒级,极大地提升了业务的敏捷性和决策的及时性。

    2. 内部演进与实践:

    数据处理架构正是这一理念的成功典范。从早期的“锤子(MaxCompute 用于批)和锯子(Blink 用于流)并存”,演进到现在的 Flink 为中心的流批一体数据处理体系。

    • 实时计算 Flink 版:作为实时计算的核心引擎,支撑了几乎所有核心业务的实时化需求。
    • ​实时数仓 Hologres: 与 Flink 深度集成的实时分析引擎,实现了“高并发点查”与“复杂分析”的统一,是流批一体在存储和服务层的体现。
    • ​MaxCompute 3.0: 新一代的离线计算引擎也在不断增强与实时链路的融合,支持增量处理等流式特性,体现了“批流融合”的趋势。

    # ​四、 展望:未来已来,全链路实时化

    流批一体不是终点,而是通往“全链路实时化”的必经之路。未来的数据架构将不再以“T+1”为默认选项,而是以“实时”为基准。数据湖仓一体、HTAP 等趋势,其底层逻辑都与流批一体一脉相承——即追求数据的即时价值与简化架构的复杂性。

    作为数据架构的决策者,我们的思维需要完成从“​根据数据形态选择技术​”到“​用统一的技术范式驾驭不同形态的数据”的根本性转变。

    # ​结语

    有界与无界,是数据世界的阴阳两面。识其别,是基本功;知其合,方为大成。流批一体不仅仅是技术的演进,更是一种架构哲学的胜利。它让我们能够用更简洁、更优雅的方式应对日益复杂的业务需求,最终将数据技术的核心价值——​从数据中获取洞见的速度与准确性——提升到一个全新的高度。


    作者简介:某一线互联网公司数据技术专家,致力于大规模分布式计算与实时数据架构。P7 及以上级别的专家不仅需要理解技术概念,更需要有架构的格局、演进的视野和商业价值的思考。

    ‍

    编辑 (opens new window)
    上次更新: 2025/10/27, 10:39:32
    「精华」Flink 入门第一步-从环境准备到运行 WordCount
    设计模式概览

    ← 「精华」Flink 入门第一步-从环境准备到运行 WordCount 设计模式概览→

    最近更新
    01
    「精华」Flink 入门第一步-从环境准备到运行 WordCount
    10-09
    02
    「精华」Flink 技术体系与学习路线
    10-09
    03
    深入剖析MyBatis的架构原理
    12-04
    更多文章>
    Theme by Vdoing | Copyright © 2011-2025 Terwer Green | MIT License | 粤ICP备2022020721号-1 | 百度统计
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式