Skip to content

大数据技术概览

大数据专题关注从业务系统产生数据,到数据被采集、存储、计算、建模、调度和对外服务的完整链路。它不是单个组件的集合,而是一套围绕数据规模、延迟、质量、成本和治理建立的工程体系。

如果当前系统只是单库报表慢,优先检查索引、归档、读写分离或分析型副本;只有当数据来自多个系统、任务链路复杂、计算量超过业务库承载范围,或者需要批流一体和统一治理时,才需要引入大数据体系。

阅读路径

Apache Kafka 适合先读。它位于数据链路入口,负责承接日志、事件、CDC 和实时消息,是流式处理、异步解耦和数据同步的基础组件。

Apache Flink 适合实时计算场景,重点理解事件时间、窗口、状态、检查点和端到端一致性。实时指标、风控、告警、实时宽表和实时推荐通常会用到 Flink。

Apache Spark 适合批处理、离线 ETL、交互式分析和机器学习前处理。它更常出现在离线数仓、数据湖计算、历史数据回放和大规模批量任务中。

HDFS 用于理解分布式文件系统的基本模型。即使很多新项目转向对象存储或湖仓表格式,理解 HDFS 的块、副本、NameNode、DataNode 和容错机制仍有助于理解大数据存储。

数据分层架构数据仓库与数据湖 用于建立建模和治理视角,重点关注 ODS、DWD、DWS、ADS、主题域、指标口径和湖仓边界。

DolphinScheduler 关注任务编排、依赖管理、补数、告警和失败恢复。只要有多任务、多依赖、跨系统调度,就需要明确调度系统的责任。

数据链路

text
业务系统
  -> 数据采集:日志、CDC、消息、批量同步
  -> 数据存储:HDFS、对象存储、数据湖、消息队列
  -> 数据计算:Spark 批处理、Flink 流处理、SQL 引擎
  -> 数据建模:ODS、DWD、DWS、ADS、指标体系
  -> 数据服务:报表、搜索、推荐、风控、API、机器学习特征
  -> 数据治理:质量、血缘、权限、审计、成本、生命周期

每一层都要有清晰的输入、输出和失败处理方式。数据平台最常见的问题不是组件不会用,而是链路责任不清:业务库是否允许直连查询、消息是否可重放、离线任务是否可补数、指标口径由谁维护、失败后如何判断影响范围。

处理模式

模式延迟典型组件适用场景注意点
批处理分钟到小时Spark、Hive、DolphinScheduler离线数仓、历史回算、日报月报、模型训练数据关注补数、分区、资源队列和任务依赖
流处理毫秒到分钟Kafka、Flink实时指标、实时风控、告警、实时宽表关注事件时间、状态大小、检查点和幂等写入
交互式查询秒到分钟Trino、Presto、ClickHouse、Doris即席分析、数据探索、宽表查询关注并发、权限、缓存和资源隔离
湖仓处理分钟到小时Iceberg、Hudi、Delta Lake、Spark、Flink数据湖表管理、增量处理、批流统一关注表格式、元数据、文件小块和版本管理

典型场景

业务报表

业务库通过 CDC 或定时同步进入 ODS 层,清洗后进入 DWD 明细层,再按主题聚合成 DWS 或 ADS。报表查询不直接压业务库,指标口径在数据仓库侧固化,调度系统负责每日任务依赖、失败重试和补数。

实时风控

订单、登录、支付、设备事件进入 Kafka,Flink 按用户、设备、IP 或银行卡维护状态,计算短时间窗口内的行为频次和关联风险。结果写入 Redis、关系型数据库或风控服务,供在线接口低延迟读取。

日志与观测

应用日志、访问日志和指标数据可以进入 Kafka 或日志采集系统,再分别写入 Elasticsearch、时序数据库或数据湖。日志链路要控制字段规范、索引生命周期、冷热分层和敏感数据脱敏。

数据湖归档

历史订单、事件明细、设备数据和日志可以进入对象存储或 HDFS,并使用表格式管理元数据和增量变更。归档不是简单压缩文件,需要保留分区、字段演进、权限、生命周期和可回放能力。

排查闭环

现象优先检查
Kafka 消费延迟升高分区数、消费者并发、单条消息处理时间、下游写入速度
Flink 任务反压算子耗时、状态大小、Checkpoint 时长、外部存储吞吐
Spark 任务运行过久数据倾斜、分区数、Shuffle 大小、广播表大小、资源队列
报表口径不一致指标定义、数据分层、任务版本、时间分区、补数范围
数据缺失采集端失败、消息位点、任务依赖、分区是否产出、写入幂等
存储成本过高明细保留周期、冷热分层、小文件、索引生命周期、重复表

能力验证清单

  • 能画出从业务库到报表、实时指标或推荐特征的完整数据链路。
  • 能说明 Kafka、Flink、Spark、HDFS、调度系统在链路中的职责边界。
  • 能为离线任务设计分区、补数、失败重试和数据质量校验。
  • 能解释实时任务中的事件时间、乱序、状态、Checkpoint 和幂等写入。
  • 能从延迟、成本、口径、质量和权限几个维度评估一条数据链路是否可上线。
别急,先让缓存热一下。