青训营X豆包MarsCode 技术训练营第八课02 | 豆包MarsCode AI 刷题

54 阅读7分钟

03. 主流产品剖析

主流的存储&数据库系统架构,经典产品剖析

3.1 单机存储

本地文件系统

Key-value 存储

linux哲学:一切皆文件

文件系统:

本地文件系统

kv存储:

常见数据机构:LSM-TREE,牺牲读性能,追求写入性能-> 内存和磁盘都是遵循有序数据结构,左边黄色满了,就会刷入灰色里面,然后刷入sorted stage table(有序集合),然后不断往下刷level0->1->2

最后要读的话,要读多层的数据合在一起给出答案

建议看levelDB源码,而不是rocksDB

单机kv

3.2 分布式存储

分布式存储 = 单机基础上实现分布式协议,大量网络交互

分布式文件存储的基础:HDFS——大数据时代的基石

hdfs

分布式存储万金油:ceph-》非常好的源码阅读

image-20241128211135240

3.3 单机数据库系统

单机关系型数据库

商业产品oracle称王,开源MySQL & PostgreSQL

单机数据库

单机数据内存

每次page修改会有redo log生成

temp data临时数据是内存不够了的时候将结果线变成临时数据,在后面用到的时候再拼接结果

硬盘中有:page,redo log事务日志,临时文件

单机非关系型数据库

MongoDB, Redis 和 Elasticsearch三足鼎立

非关系数据库

各自优势:

三种非关系型数据库

elsticsearch使用案例:内嵌模糊搜索

elasticsearch

3.5 分布式数据库

容量问题 disk不够用 -》存储节点池化,动态扩缩容

弹性问题-》cpu资源紧张不够用了需要升级数据库,能够扩容cpu,搬迁全量数据,还能缩容cpu和磁盘

性价比问题

性价比问题

问题: 单写vs多写

磁盘弹性到内存弹性

分布式事务优化

04. 新技术演进

老系统结合新技术,如何持续演进走向新生

新架构

新硬件

新理论

人工智能

新技术严谨概览

spdk

ai&storage

高性能硬件

数据库和存储系统新技术:

1. 全闪存储的普及

全闪存储(All-Flash Storage)利用固态硬盘(SSD)提供高性能、低延迟的数据存储解决方案。近年来,随着SSD技术的成熟和成本的降低,全闪存储在企业级存储市场中的占比持续上升。据IDC统计,全闪存储阵列在传统企业级存储市场的份额已上升至39%。全闪存储凭借其高IOPS、低时延和高可靠性,广泛应用于金融、证券等关键行业。

2. 分布式存储的广泛应用

分布式存储通过将数据分散存储在多个节点上,提供高扩展性和可靠性。在互联网、人工智能、大数据和云计算等新兴场景中,分布式存储被广泛采用。据IDC统计,2022年分布式存储的市场份额为23%,预计到2026年将达到28%。分布式存储支持块、文件、HDFS和对象等多种协议,适用于内容资源池、备份归档、视频存储和云平台存储等多个场景。

3. 计算型存储的兴起

计算型存储(Computational Storage)将部分数据处理任务下放到存储层,减少数据迁移,降低时延和能耗。在大规模并行计算场景中,如VR/AR、无人驾驶和车联网,计算型存储展现出高带宽、低时延和低功耗的优势。目前,计算型存储在产业细分领域引发创业浪潮,受到投资界和产业界的高度关注。

4. 智能运维(AIOps)的发展

随着数据量的爆炸式增长,传统的人工运维已难以满足需求。AIOps通过人工智能技术实现存储系统的自我管理、自我修复和自我调优,提高系统性能、稳定性和易用性,降低运维复杂度。Gartner预测,到2025年,30%的企业级存储将使用AIOps进行IT硬件管理和维护,而2022年这一比例还不到3%。

5. 分布式数据库的兴起

随着移动互联网、大数据、人工智能、物联网和5G等技术的发展,数据量和复杂性不断增加。传统关系型数据库在应对某些极端场景时面临挑战,分布式关系型数据库利用分布式技术,突破了传统集中式数据库的容量与性能瓶颈,简化了运维工作,并有效降低了对高性能硬件的依赖。近年来,中国分布式关系型数据库市场呈现百花齐放的态势,新兴数据库厂商、云厂商、大数据厂商等相继推出新产品。

6. 云原生数据库的发展

云原生数据库设计用于在云环境中运行,充分利用云计算的弹性和可扩展性。它们通常采用微服务架构,支持自动扩展和高可用性,满足现代应用对数据存储的需求。例如,阿里云、腾讯云等厂商在2023年上半年推出了多项云数据库产品更新,提升了性能和功能。

7. 向量数据库的应用

随着人工智能和机器学习的发展,向量数据库用于存储和检索高维向量数据,支持快速的相似性搜索。在推荐系统、图像检索和自然语言处理等领域,向量数据库发挥着重要作用。AI大模型的兴起催生了向量数据库的新应用,满足了对高效数据检索的需求。

综上所述,近两年数据库系统和存储系统在全闪存储、分布式存储、计算型存储、智能运维、分布式数据库、云原生数据库和向量数据库等方面取得了显著进展,推动了数据管理和存储技术的持续创新。

hive是什么?

Hive 是一个构建在 Hadoop 之上的开源数据仓库工具,用于处理和分析大规模结构化数据。它提供了一种 SQL 类似的查询语言,称为 HiveQL(Hive Query Language) ,使用户可以通过类 SQL 的方式操作存储在 Hadoop 分布式文件系统(HDFS)或兼容存储系统(如 Amazon S3)中的大规模数据,而不需要直接编写 MapReduce 程序。

Hive 的核心概念

  1. 数据仓库

• Hive 是一个数据仓库工具,用于存储和分析大规模的结构化数据。

• 它为分析型工作负载设计,不适合在线事务处理(OLTP)。

  1. HiveQL

• Hive 提供了一种类似 SQL 的查询语言,称为 HiveQL,支持传统 SQL 的大部分功能。

• 同时扩展了 Hadoop 的能力,例如支持 MapReduce 任务的用户自定义函数(UDF)。

  1. Hadoop 集成

• Hive 的查询会被转换为底层的 MapReduce 作业(或其他执行引擎如 Spark 或 Tez)运行在 Hadoop 集群上,从而利用 Hadoop 的分布式计算能力。

  1. 存储模型

• Hive 的数据以表的形式存在。

• 表数据存储在 HDFS 上,Hive 中的表可以是分区的,也可以是桶(bucketed)的。

  1. 延迟执行

• Hive 的设计是为了处理批处理任务,查询的执行会有较高的延迟,因此不适用于实时分析。

Hive 的架构

  1. 用户界面

• CLI(命令行接口)

• JDBC/ODBC 接口

• Web UI(提供简单的界面供用户提交查询)

  1. 元数据存储

• Hive 使用 Metastore 管理元数据,包括表名、列名、分区信息、数据的存储位置等。

• Metastore 通常基于关系型数据库(如 MySQL 或 PostgreSQL)实现。

  1. 查询引擎

• 查询由 HiveQL 编写,查询引擎将其解析并优化,最终将其转换为 MapReduce 或其他执行框架的任务。

  1. 存储层

• Hive 的底层数据存储在 HDFS 或类似的分布式存储系统中。