一句话说清

数据大到单机放不下时,整套做法都得换。

为什么值得懂

《数据库》讲的是单机怎么摆数据。数据一旦超过一台机器的硬盘内存,旧办法整体失效:查一个数跑几小时,机器一坏就全没。大数据不是「数据多」,是被它逼出来的取舍。

零基础讲解

单机放不下后,有三件事是被迫做的。

一、把数据切开,摊给很多台机器。 一张表按键拆成几片分放到不同机器,叫分区;每片再复制几份存到别处,坏一台不影响。代价是跨机器读写比本地慢几个数量级,网络还随时会断。

二、把计算搬到数据旁边。 搬数据比搬程序贵,做法是把程序发到存着数据的机器上就地算,只把结果送回来。MapReduce 论文(迪安、格玛沃特,2004)靠这一条把上万台普通机器拼成一台「大电脑」:只写两个函数,map 把记录变成键值对,reduce 合并同键的值;切分、调度、容错都交给框架。

三、放弃时刻一致,接受最终一致。 单机事务要么全成要么全败;跨机器要让所有副本同时看到同一结果,代价难以承受。主流选择是放宽:允许短时间版本不同,最后收敛即可。

三件事是一笔交易:分区换容量、数据本地性换速度、最终一致换可用性。

有一处要标存疑:「数据多,结论就更对」不成立。 采集方式一旦排除某类人,样本涨到十亿也还是错的。

单机装不下之后被迫做的三件事:分区与复制换容量、把计算搬到数据旁边换速度、接受最终一致换可用性
大数据的三个动作不是三个技术名词,而是一笔交易:拿什么换什么,说清楚了才谈得上规模。

一个例子

某公司统计「用户最喜欢什么功能」,数据来自只覆盖登录用户的埋点——不登录、装了又卸载的人全部缺席。数据翻十倍,结论仍是「爱登录的人喜欢什么」——这正是《统计基础》里的老问题。

常见误解

  • 以为大数据就是数据多:量多只是前提,分水岭是单机装不下。
  • 以为机器多就一定快:任务拆不开、网络来回搬,只会更慢。
  • 以为数据够大就不用管抽样:偏差来自采集结构,量大也不自愈。

应用场景

  • 生活:相册与聊天记录的自动备份就是分区与复制。
  • 职场:把「有多少数据」换成「覆盖谁、缺谁」,可信度就不同。
  • 写作与创作:写科技稿先追一句样本口径,挡掉注水叙事。

关联知识点

  • 数据库(database,先读:单机的摆法决定哪里先撑不住)
  • 统计基础(statistics,抽样偏差是第一道闸门)
  • 机器学习(machine-learning,数据量对模型帮助有边界)