一台不够时,分着装
信息不断堆积会怎样? 再大的一座仓库总有一天会装满。于是把仓库扩成好几座,把货分着装。再加上,为了一座仓库塌了也不丢货,还会把同样的货复制到另一座仓库。数据也一样。一台扛不住,就分到好几台装,并复制到好几台,免得出事。
一台开始不够用
前面我们学过数据库
是一座巨大的仓库。
安全地存、快速地找。
可信息不停地堆积。
人变多、记录变多,
照片和视频也涌进来。
再大的一座仓库,
总有一天会装满,再也装不下。
会有一刻,一台变得不够用。
点一下不断增加数据。一旦超过一台的容量,就再也装不下。
一台彻底装满了。
想再放也没地方。
换成更大的电脑,
那台也总有一天又装满。
把一台无止境地养大,
有明显的极限。
那就该换个办法了。
与其养大一台,
扩成好几台怎么样?
分到好几台装
办法比想的简单。
把数据切成块,
撒到好几台上装。
不让一台抱着全部硬撑,
每台只接一部分。
比如名字 A 到 M 放 1 号台,
N 到 Z 放 2 号台,就这么分。
这样把货切开分摊,
叫做分布(分散)。
也叫分片。
点一块,分到好几台装。每台只持有整体的一部分。
货撒到好几台上了。
一台原本扛的负担轻了。
数据再变多,
只要再加一台就行。
那新块就交给新台。
这样能不断扩,
所以很大的数据也装得下。
不过冒出一个担忧。
那一台要是突然坏了怎么办?
把同样的复制一份
分着装有一个弱点。
持有某块的台坏了,
那一块就整个没了。
所以把同样的数据
复制到好几台上。
就算一台坏了,
有副本的另一台接过去。
所以数据不会出事。
这样把同样的东西复制到好几台,
叫做复制。
点复制,把同样的数据放到好几台上。关掉一台,另一台还活着,所以不出事。
关掉一台也没事。
多亏副本守在旁边。
这里一定要区分两件事。
分着装的分布是把块切开,
分到不同的台上;
复制保存的复制是把同样的东西
一模一样地放到好几台上。
分布是分开,复制是复制。
两个看着像,却是完全不同的事。
更松的容器,NoSQL
可当数据多到惊人,
又要极快地进进出出时,
严格的表格反而碍事。
把列对齐的规矩,
会拖住速度。
所以用规矩放松的容器。
不用表格,把一个值挂在一个键上,
直接放、直接取。
相当于把前面看的哈希养大。
这种松的容器叫做 NoSQL。
点一下比较严格的表格和松的键-值容器。松的那边更适合巨大又快速的处理。
松的容器,
规矩少,所以自由又快。
不用像表格那样把列对得整整齐齐,
只要有键就能直接放和取值。
代价是把列对齐的整洁,
稍微放下一点。
得到什么、放下什么,
按用途来挑就行。
对巨大又快速的数据,
这种松的容器很合适。
来理一理数据这块
走到这里,路已经很长了。
我们从装值的容器开始,
看了把这些容器聚起来的数据库,
学会了在巨大的表里
快速找到想要的那一行。
造捷径的索引,
把表连起来的关系,
还有中途断了也安全的处理。
今天又看了一台不够时,
怎么分着装、怎么留副本。
依次点数据这块的大脉络,把它收尾。(容器 → 数据库 → 快速查找 → 索引 → 关系 → 安全处理 → 分着装与复制)
归成一句话,是这样。
数据一台扛不住时,
就切成块分到好几台装(分布),
并复制到好几台免得出事(复制)。
分开和复制是不同的事。
为了巨大又快速的处理,
用把表格放松的容器 NoSQL。
它是把哈希养大的容器,
所以是通向下一个要遇见的
人工智能那海量数据的桥。
现在处理数据的大图景
一眼就看明白了。
从一个小容器开始,
一路走到把数据分到
好几台又复制的庞大经营。
把信息安全地存、
快速地找、大大地养,
这种本事成了支撑
下一个领域人工智能的地基。
数据汇聚的地方,
会长出会思考的机器。