从数据到数据库

85 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第5篇笔记,今天讲一下数据与数据库。

数据与数据库

数据是系统运行的血液,系统依靠数据进行驱动,大量数据的管理问题催生了数据库这一繁杂的软件生态 数据库需要保证

  • 数据不丢失
  • 多人修改不丢失
  • 结构化与非结构化数据
  • 数据操作方式

存储系统

存储系统是数据库的基础,所谓存储系统是一个提供了读写、控制类接口,能够安全有效地把数据持久化地软件。其作为后端软件的底座,性能敏感,且容易受到硬件影响。 存储系统中有两个重要的概念

  • 拷贝:对数据进行复制,存在传输不对等
  • 缓存:为了解决传输不对等问题设计的缓冲区

数据库

关系OR非关系

  • 关系
    • 关系模型:1970s
    • 关系代数:交并补...
    • SQL: DSL
  • 关系型数据库:
    • 结构化数据友好
    • 支持事务
    • 支持复杂查询
  • 非关系型数据库:
    • 半结构化数据友好
    • 可能支持事务
    • 可能支持复杂查询
  • 存储差异
    • 关系型数据库:以表的关系结构化存储
    • 非关系型数据库:聚合存储,如JSON等

结构化存储

  • 存储格式:表形式管理,由存储引擎确定的自定义数据结构
  • 事务能力:ACID
  • 复杂查询:DSL

数据库产品

单机存储

  • Linux文件系统
  • KV存储:一切都是KV
    • put get
    • 数据结构:LSM-TREE
    • 产品:RocksDB
  • 关系型数据库:
    • Oracle
    • MySQL
    • PostgreSQL
  • 非关系型数据库
    • MongoDB
    • Redis
    • ElasticSearch

分布式存储

  • HDFS:大数据时代基石
    • 海量存储
    • 高容错
    • 弱POSIX语义
    • 性价比高
  • Ceph:开源分布式存储系统
    • 一切都是对象
    • 主备复制模式
    • CRUSH算法

单击到分布式

- 容量问题
- 弹性扩展问题
- 性价比问题
- 多写、内存弹性、分布式事务

新技术

  • SPDK:绕过内核,直接从用户态访问磁盘,无锁
  • AI:行存、列存智能决策
  • 硬件
    • RDMA:直接内存访问
    • 持久化内存
    • 可编程交换机
    • CPU/GPU/DPU