它不是「很多数据」这么简单,而是指一类传统工具处理起来很吃力的数据,以及处理它们所需的技术和方法。
从 GB、TB 一路到 PB 级。数据量大到一块硬盘装不下,必须靠集群分着存、分着算。
数据像水流一样持续产生,很多场景要求秒级、分钟级就看到结果,不能等第二天再跑。
表格类结构化数据、日志 JSON 这类半结构化数据、文本图片视频等非结构化数据,五花八门。
海量数据里真正有用的往往只是很小一部分,必须靠清洗和加工把金子淘出来。
订单、支付、用户、商品等线上交易库里的数据,是最核心的来源。
用户点了什么、看了多久、从哪来,靠埋点采集下来的行为日志。
系统运行中自动产生的访问日志、错误日志、调用链数据。
IoT 设备、车机、监控探头上报的时序数据,量大且连续。
合作方接口、公开数据集、行业报告等外部补充数据。
Excel、CSV、日志包等人工整理或定期落地的文件。
大数据的地基:分布式存储 HDFS + 分布式计算 MapReduce,让一堆普通机器合起来当一台超级机器用。
批量计算的主力,比传统方式快很多,同一套代码能干活离线批处理。
实时流计算代表,数据一来就处理,适合监控告警、实时看板。
数据管道与缓冲队列,负责把上游源源不断的数据稳定地送到下游。
让人可以用 SQL 查海量数据的引擎,是很多数据仓库的底座。
如 Airflow、DolphinScheduler,负责让成千上万个数据处理任务按时、按顺序跑起来。
如果说业务数据库是「收银台」,数据仓库就是「后方的中央仓库 + 加工车间」。
按「用户」「订单」「商品」这类业务主题组织数据,而不是按某个系统的表结构堆放。
把不同系统的数据拉到一起,统一编码和口径,比如「金额」到底含不含税,全公司只有一个定义。
以查询为主,数据写入后基本不改,主要做新增,不像业务库那样频繁增删改。
按时间留存快照,能回答「去年同期的数字是多少」,而不是只看到当下状态。
不同公司分层命名略有差异(有的会多一层 DIM 公共维度层),但思路一致:越往下越接近原始,越往上越接近业务答案。
从业务库、日志、接口等来源把数据取出来,增量为主,避免全量硬拉。
清洗、去重、关联、计算指标、统一口径——加工的核心环节,也最耗精力。
把处理好的结果写入数仓各层表中,供后续按计划或按需读取。
这三个词最容易混。用「一家餐厅」来类比:数据库是收银台,数据仓库是备好的中央厨房,数据湖是还没分拣的食材冷库。
| 对比项 | 业务数据库(OLTP) | 数据仓库(OLAP) | 数据湖 |
|---|---|---|---|
| 主要用途 | 支撑线上业务运转 | 支撑分析、报表与决策 | 存放各种原始形态数据 |
| 典型操作 | 高频的增删改查,每次动几条 | 大范围读取、聚合、统计 | 写入与按需读取,结构灵活 |
| 数据特征 | 只存当前状态,结构严格 | 保留历史,口径统一,分层组织 | 结构化、半结构化、非结构化全都放 |
| 谁在用 | 业务系统与开发同学 | 分析师、运营、管理层 | 数据开发、算法工程师 |
| 代表技术 | MySQL、PostgreSQL、Oracle | Hive、ClickHouse、StarRocks、Doris | HDFS、对象存储、Iceberg、Hudi |
| 一句话记住 | 把生意跑起来 | 把生意看明白 | 把原料先囤下来 |
不是二选一,也不是同一层的东西——一个偏「能力」,一个偏「成果」。
它回答的是:数据这么大、这么快、这么杂,用什么办法存得下、算得完。它是一整套引擎、框架和工程手段。
它回答的是:数据放在哪、口径是什么、怎么查最快。它是被组织好的、可以直接支撑分析和决策的结果。
所以在真实项目里,两者通常是一起出现的:数据仓库往往就建在大数据平台之上,用大数据技术完成采集、存储和计算,最终沉淀成数仓的分层表,再对外提供报表、看板、接口和模型训练用的数据。
听到这些词不再发懵。