我们普通人对于数据存储的认识恐怕大多数都是从自己使用的电脑来的。现在几乎人手一台电脑,而我们的电脑存储着各种各样的文件,比如视频文件、音频文件和Word文档等。这些文件从计算机术语的角度都可以称为数据。
如图所示是Windows 10 “我的电脑”的截图。通过该截图我们可以看到两个硬盘盘符,其实每个硬盘盘符对应着硬盘的一个分区。关于“分区”其实是存储领域的一个专业术语,我们可以暂时不深究,可以简单的理解为硬盘的一个区域即可。
直观的认识是,文件等数据是存储在硬盘当中的,就像所示的这样。但是数据在磁盘的存储其实是需要依赖一个非常复杂的软件的,这个软件称为文件系统。如果大家仔细观察就会发现,文件系统系统将文件组织成为了树型的结构,这种组织方式非常方便我们管理和查找数据。
为了方便大家理解我们给出一个文件系统管理数据的简单实例。如图所示,该文件系统由4个子目录构成,分别是文档、电影、mp3和电子书。这恐怕也是大多数人管理自己资料(或者数据)的方式。
这就是文件系统管理数据的特点,它可以实现对数据的分类管理,而且分类可以嵌套,形成一个目录树。比如“电子书”目录中还可以再建立新的子目录,计算机、历史和管理等。通过这种层层嵌套的方式形成的树型目录结构非常方便我们日常管理数据。
除了文件系统外,还有另外一种管理数据的方式,也就是数据库。这种方式程序开发人员比较熟悉,如图所示。数据库维护的是一种表格形式的数据,称为关系型数据。
最近几年还出现了另外一种存储形式,比如常见的网盘、谷歌云盘和iCloud等。这种存储形式通过Web、APP或者桌面程序访问,而数据并不存储在本地,而是存储在云端,称为云存储。
在客户端,无论是Web浏览器、APP还是桌面程序,其中的资源都是通过层级的方式进行管理的。这种管理方式与我们个人电脑中文件系统的方式非常类似。虽然在用户层面呈现的仍然是类似文件系统那样的层级结构,但是在服务端通常并非基于文件系统构建,而是基于一种称为对象存储的分布式存储系统。
前面介绍了个人常见的数据存储的形式,那么对于企业来说,比如银行、电商、券商或者视频App的后端又是如何来存储数据的呢?这就涉及到企业数据存储的问题,我们下节进行介绍。