Appearance
大数据技术概览
大数据专题关注从业务系统产生数据,到数据被采集、存储、计算、建模、调度和对外服务的完整链路。它不是单个组件的集合,而是一套围绕数据规模、延迟、质量、成本和治理建立的工程体系。
如果当前系统只是单库报表慢,优先检查索引、归档、读写分离或分析型副本;只有当数据来自多个系统、任务链路复杂、计算量超过业务库承载范围,或者需要批流一体和统一治理时,才需要引入大数据体系。
阅读路径
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 和幂等写入。
- 能从延迟、成本、口径、质量和权限几个维度评估一条数据链路是否可上线。
