这是我参与「第五届青训营」笔记创作活动的第 15 天。笔记旨在记录自己的学习过程以及跟更多人分享交流,重点讲干货,不扣细节,从整体认知。废话不多说,上内容!!!
本堂课重点内容
- 经典案例
- 存储 & 数据库简介
- 主流产品剖析
- 新技术演进
详细知识点介绍
经典案例
通过一个模拟案例,描述了数据是怎么产生,在后端系统里怎么流通,最后怎么写入到存储/数据库系统。
存储 & 数据库简介
-
存储系统概览
-
什么是存储系统?
一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统
-
存储系统特点
性能敏感、容易受硬件影响、代码既简单又复杂
-
存储器层级结构
-
单机存储栈
-
RAID技术
-
-
数据库系统概览
-
关系型数据库特点
关系型数据库是存储系统,但是在存储之外,又发展出其他能力
-
非关系型数据库特点
非关系型数据库也是存储系统,但是一般不要求严格的结构化
-
数据库 vs 经典存储
-
数据库使用方式
-
主流产品剖析
-
单机存储产品
- 单机文件系统
- 单机key-value存储
-
分布式存储产品
- HDFS
- Ceph
-
单机数据库产品
- 关系型数据库 —— PG、MySQL
- 非关系型数据库 —— ES、MongoDB、Redis
- Elasticsearch使用案例
-
分布式数据库产品
- 问题与挑战
- 解决方案
新技术演进
-
SPDK
-
人工智能
-
新硬件加速
实践练习例子
无
课后个人总结
- 传统行式数据库的特性如下:
①数据是按行存储的。
②没有索引的查询使用大量I/O。比如一般的数据库表都会建立索引,通过索引加快查询效率。
③建立索引和物化视图需要花费大量的时间和资源。
④面对查询需求,数据库必须被大量膨胀才能满足需求。
- 列式数据库的特性如下:
①数据按列存储,即每一列单独存放。
②数据即索引。
③只访问查询涉及的列,可以大量降低系统I/O。
④每一列由一个线程来处理,即查询的并发处理性能高。
⑤数据类型一致,数据特征相似,可以高效压缩。比如有增量压缩、前缀压缩算法都是基于列存储的类型定制的,所以可以大幅度提高压缩比,有利于存储和网络输出数据带宽的消耗。