编者按:这几年大数据很火,相关文章铺天盖地。但追根溯源,数据是怎么从小打小闹发展到今天这个体量的?丁当一直对这个问题很感兴趣,最近读了不少书和资料,干脆把思路捋了捋,用四张逻辑图串了串——从小数据到大数据,中间到底经历了什么,又该用哪些工具。
一、先搭个最简单的技术架子
假设你要做个小网站或SaaS,不借助现成平台,最精简的架构只需要两块:客户端和服务端。

客户端就是用户看得见摸得着的东西,App、小程序、网页都行,负责把人引进来。服务端则藏在后面,分应用服务器和数据库。应用服务器跑程序、处理请求,数据库存数据,两边通过SQL之类的语言打交道。
这里有个常见场景:张三打开你的网站,看到登录页,输入账号密码。客户端把请求发到服务端,服务端去数据库里查有没有这号人。有,登录成功;没有,引导注册。注册完,张三的信息写进用户表,下次再来就能直接用了。整个过程,用户只点了点屏幕,背后其实是客户端、服务器、数据库三方在协作。
二、小数据阶段:一切还很轻
早期产品数据量不大,一台数据库服务器基本够用。查询、写入都很快,开发也不用想太复杂。这时候选型很务实——MySQL、PostgreSQL这类关系型数据库是主流,结构清晰,事务支持好,适合业务逻辑明确的场景。
但麻烦会随着用户增长慢慢浮现。某天你发现查询越来越慢,高峰期甚至卡住。一开始加加索引、优化SQL还能应付,后来就不行了。

三、扛不住的时候,架构开始拆分
首先是读写分离。读多写少的场景下,把查询请求拆到从库,主库专心处理写入,压力瞬间分担。再后来,单表数据膨胀到千万级别,得分库分表——按用户ID哈希、按时间切片,把一张大表拆成若干小表散到不同库。
与此同时,业务类型也在变复杂。除了交易、账户这类结构化数据,日志、图片、用户行为轨迹这些半结构化甚至非结构化的东西开始冒头。传统数据库吃不下了,NoSQL顺势登场:Redis扛缓存,MongoDB存文档,Elasticsearch做搜索,HBase和Cassandra应对超大规模列式存储。
四、大数据的真正面貌:不只是"大"
数据量飙到PB级别,单靠"更大更强的数据库"已经无解。这时候需要一整套生态:Hadoop用分布式文件系统(HDFS)把数据散到成百上千台机器,MapReduce把计算任务拆碎并行处理;Spark用内存计算提速;Flink专攻实时流处理,让数据刚产生就能被分析。
工具链也在膨胀。数据采集用Flume、Logstash、Kafka;存储除了HDFS还有对象存储;计算引擎Hive把SQL翻译成MapReduce,降低使用门槛;调度系统Airflow、Azkaban管理流水线任务。数据仓库分层建模,ODS贴源层、DWD明细层、DWS汇总层、ADS应用层,层层递进,让原始数据变成可直接决策的信息。
五、再回头看,变化到底在哪
小数据时代,问题是"这个数据能不能查到";大数据阶段,问题变成"这么多数据怎么快速算完、怎么挖掘价值"。技术架构从单体走向分布式,从集中存储走向分层治理,从事后分析走向实时计算。

丁当整理到这儿有个感受:大数据不是突然冒出来的,而是业务倒逼、技术演进的自然结果。今天动辄谈论的算法推荐、精准营销、智能决策,底层依赖的正是这套从小长大的数据基础设施。理解这个演变过程,比记住一堆工具名称更重要——毕竟工具会迭代,但"数据怎么产生、怎么流动、怎么创造价值"的逻辑,相对稳定得多。

立即登录