存储与数据库 | 青训营笔记

52 阅读3分钟
《存储与数据库》
研究生是大数据实验室的,学了两年基础数据的知识,主要集中在物理查询优化部分,对于分布式数据库有所了解,本篇记录一下学习的笔记(仅适用于个人),记录下知识点。

1.数据

数据流动: 用户创建数据 -> 后端服务器接受数据 -> 数据库存储数据 -> 其他系统应用 数据持久化: 数据库判断数据是否合法 -> 内存 -> 物理性存储介质(硬盘)

2.存储数据库

什么是存储系统? 一个提供了读写、控制类接口,能够有效的把数据持久化的软件,就可以称之为存储系统。 数据从应用到存储介质:

image.png

存储系统技术:RAID技术 单机存储系统的高性能、高性价比、高可靠性。 Redundant Array of Inexpensive Disks

RAID0 RAID1 RAID0+1(写入带宽和容错都兼顾了) image.png

2.2 数据库

关系型数据库:Oracle、SQL server、PostgreSQL等。其中表即为所谓的关系relation,关系包含属性即列。利用关系语言:SQL,用来检索数据库。事务,用来并发控制等。 很形象的例子:

image.png 非关系型数据库:即存储是不以表形式存储,例如Redis,是一种key-value数据库

3. 主流产品

3.1 单机存储

单个计算机节点上的存储软件系统,不涉及网络交互。 本地文件系统: Linux文件系统,文件繁多,但都遵循vfs统一抽象接口 key-value存储,存储数据结构LSM-Tree

image.png

3.2 分布式存储

在单机存储基础上实现分布式协议,涉及大量网络交互。 HDFS是分布式数据库的基石。主要是有两种节点:namenode 和 datanode。 后续有谷歌开发的map-reduce,好像是map节点分发,reduce操作,再合并,再让分布式数据库更进一步。 再后面有Hadoop、spark等等基于上述的分布式数据库。

3.3 单机数据库

单个计算机节点上的数据库系统,事务在单机内执行,也可以通过网络交互式实现分布式事务 对于单机数据库的关系型数据库:Oracle、SQL server、MySQL、PostgreSQL

image.png 存储:cmu15445课程中说明:关系型数据库存储都是以文件类型存储,每个数据库都有自己独特的文件类型,操作系统对文件内容一概不知,仅有对应数据库可以访问。 对于单机数据库的非关系型数据库:MongoDB、Redis、elasticsearch

image.png

image.png

3.5 从单机数据库到分布式数据库

分布式数据库解决了单机数据库的问题:容量、弹性?、性价比 对于容量:将存储节点化,动态扩展了存储库。 弹性:意思是扩容会导致CPU资源浪费,但是采用分布式就可以充分利用CPU资源? 性价比:只需要扩容disk即可。

4. 技术演进

软件架构的变更,AI技术的增强,硬件革命。

课后作业

实现一个key-value的存储系统