一句话说清
数据大到单机放不下时,整套做法都得换。
为什么值得懂
《数据库》讲的是单机怎么摆数据。数据一旦超过一台机器的硬盘内存,旧办法整体失效:查一个数跑几小时,机器一坏就全没。大数据不是「数据多」,是被它逼出来的取舍。
零基础讲解
单机放不下后,有三件事是被迫做的。
一、把数据切开,摊给很多台机器。 一张表按键拆成几片分放到不同机器,叫分区;每片再复制几份存到别处,坏一台不影响。代价是跨机器读写比本地慢几个数量级,网络还随时会断。
二、把计算搬到数据旁边。 搬数据比搬程序贵,做法是把程序发到存着数据的机器上就地算,只把结果送回来。MapReduce 论文(迪安、格玛沃特,2004)靠这一条把上万台普通机器拼成一台「大电脑」:只写两个函数,map 把记录变成键值对,reduce 合并同键的值;切分、调度、容错都交给框架。
三、放弃时刻一致,接受最终一致。 单机事务要么全成要么全败;跨机器要让所有副本同时看到同一结果,代价难以承受。主流选择是放宽:允许短时间版本不同,最后收敛即可。
三件事是一笔交易:分区换容量、数据本地性换速度、最终一致换可用性。
有一处要标存疑:「数据多,结论就更对」不成立。 采集方式一旦排除某类人,样本涨到十亿也还是错的。
一个例子
某公司统计「用户最喜欢什么功能」,数据来自只覆盖登录用户的埋点——不登录、装了又卸载的人全部缺席。数据翻十倍,结论仍是「爱登录的人喜欢什么」——这正是《统计基础》里的老问题。
常见误解
- 以为大数据就是数据多:量多只是前提,分水岭是单机装不下。
- 以为机器多就一定快:任务拆不开、网络来回搬,只会更慢。
- 以为数据够大就不用管抽样:偏差来自采集结构,量大也不自愈。
应用场景
- 生活:相册与聊天记录的自动备份就是分区与复制。
- 职场:把「有多少数据」换成「覆盖谁、缺谁」,可信度就不同。
- 写作与创作:写科技稿先追一句样本口径,挡掉注水叙事。
关联知识点
- 数据库(database,先读:单机的摆法决定哪里先撑不住)
- 统计基础(statistics,抽样偏差是第一道闸门)
- 机器学习(machine-learning,数据量对模型帮助有边界)