数据架构
从数据存储模式、时效性和分布模式三个架构设计和数据建模视角描述做什么,怎么做。
数据架构的本质,是在数据量、时效性、成本、安全与维护性之间找到平衡。
一个典型的大数据系统从目标、取舍到分层,都体现出对这些因素的系统性思考。
设计目标与架构哲学
设计数据系统前,需要先明确目标:
- **数据类型**:系统需支持结构化数据(数据库、日志)与非结构化数据(视频、图片、文本等)。
- **数据量**:应具备 TB~PB 级水平扩展能力,能够以分布式架构应对增长。
- **时效性**:既能支持离线分析,也能支持实时或准实时处理(秒级甚至毫秒级)。
- **成本控制**:优先采用开源方案,兼顾性能与硬件成本。
- **安全与隐私**:从系统设计阶段就内嵌安全机制,遵循 GDPR、个保法等法规。
- **可维护性**:强化元数据、血缘、监控与调度,确保系统长期可持续运行。
这些目标决定了系统的整体取舍方向:
业务需求决定产品设计,产品设计决定技术选型,而技术选型的约束会反过来影响业务实现。
技术取舍与系统平衡
任何大数据架构的设计,都是在以下几方面的平衡中达成的:
**一致性 vs 可用性 vs 分区容错性(CAP)** 大数据系统通常优先保证可用性与分区容错性(AP 系统),采用最终一致性策略。
**批处理 vs 流处理** 批处理高吞吐、流处理低延迟。 现代系统通常采用**流批一体**架构,在一套逻辑下同时兼顾实时与离线计算。
**OLTP vs OLAP** 大数据系统以 OLAP 为主,使用列式存储(如 ClickHouse、Doris)提升分析性能。
**数据质量 vs 处理速度** 主干流程优先保证处理速度,旁路进行高质量校验与治理。
**性能 vs 成本** 在 SSD、对象存储、弹性计算等资源配置中动态权衡。
数据架构逻辑分层
现代数据系统通常采用分层架构设计,从数据采集到应用形成完整链路:
**数据源层**: 包括各类结构化、半结构化与非结构化外部数据。
**数据采集层**: 负责接入与采集数据,可通过日志代理、API 抓取、消息队列等方式实现。
**接入与传输层**: 对原始数据进行初步清洗与转换,并通过 Kafka、Pulsar 等实现高效传输。
**数据存储层**: 离线数据存储于 HDFS、对象存储;实时数据存储于 KV/内存系统。 采用冷热分离、读写分离等设计以兼顾多种应用场景。
**数据计算层**: 包括批处理、流处理与流批一体架构,是数据加工与聚合的核心。 在这里需要权衡时效性、成本与计算模型。
**数据应用层**: 对外提供三类接口:
- **人机界面**(报表、BI、可视化);
- **系统接口**(OpenAPI);
- **智能接口**(MCP 协议,服务 AI 系统)。
**支撑系统层(隐含层)**: 包含元数据、调度、监控、告警、安全审计等模块。
数据存储
存储是整个数据架构的基石。
不同的数据类型、访问模式与成本约束,会影响具体的存储选型与分层设计:
- **冷热数据分层存储**:高频数据在列式或内存存储中,低频数据转移至对象存储。
- **读写分离**:分析查询与数据写入分离,提升整体并发性能。
- **多模态数据支持**:为结构化与非结构化数据提供不同的索引和存储机制。
数据计算
数据计算层是整个系统的“心脏”,承担从原始数据到结构化知识的加工。
根据不同的业务目标,可分为批处理、流处理与流批一体三种形态。
简单来说:
- **批处理**:吞吐量大、时效性低、准确性高。
- **流处理**:实时性强,但为保证延迟可能牺牲部分一致性。
- **流批一体**:兼顾吞吐与延迟,实现统一的计算逻辑与数据存储。
批处理
用于历史数据的离线分析与聚合,常用技术包括 Spark、Hive、Presto 等。
流处理
用于实时数据流分析,如 Flink、Kafka Streams、Dstream 等,适合低延迟业务。
流批一体
- **计算一体**:同一套逻辑同时适用于流与批,保证一致结果。
- **存储一体**:数据在统一介质中流转,支持实时与离线混合读写。
数据应用
数据架构的最终目的,是将数据转化为业务洞察与智能决策能力。
在向下游提供数据服务时,首要目标是建立信任——让使用者相信数据的真实性与可解释性。
同时,需要明确:
- 谁在使用这些数据;
- 数据如何定义(口径、一致性);
- 如何提供数据服务(自助、API、定制报表)。
BI
通过收集、分析和呈现数据来提供商业洞察的技术和工具。
功能包括:
- 数据可视化(仪表盘、图表、报表);
- 数据分析(查询、聚合、筛选);
- 自定义报告与仪表盘;
- 数据挖掘(模式发现与预测);
- 实时监控与告警。
报表
相比 BI,报表更静态、更聚焦,通常是固定模板的定期输出。
而 BI 则提供交互式分析和实时查询能力。
数据分析
数据可视化
机器学习
安全与隐私
在现代大数据系统中,安全与隐私不再是附加项,而是架构设计的核心原则。
数据权限
- 访问权限:控制用户能否访问数据。
- 操作权限:控制用户是否能写入或修改数据。
- 范围权限:限定可访问的数据集范围。
- 行级权限:基于行的细粒度数据控制。
- 字段权限:控制敏感字段的可见性与脱敏处理。
总结
构建数据架构的关键步骤是:
- 明确目标与约束;
- 做出取舍与平衡;
- 按逻辑分层设计;
- 选用可持续的开源技术;
- 持续优化与演进。
一个好的数据架构,既是技术系统,也是业务智能的基础设施。