2021-2022中国数据库行业研究报告.pptx

返回 相关 举报
2021-2022中国数据库行业研究报告.pptx_第1页
第1页 / 共69页
2021-2022中国数据库行业研究报告.pptx_第2页
第2页 / 共69页
2021-2022中国数据库行业研究报告.pptx_第3页
第3页 / 共69页
2021-2022中国数据库行业研究报告.pptx_第4页
第4页 / 共69页
2021-2022中国数据库行业研究报告.pptx_第5页
第5页 / 共69页
亲,该文档总共69页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2021-2022中国数据库行业 研究报告 摘要 中国数据库市场规 模 : 据统计 , 2020年 中国数据库市场总觃 模 达 247.1亿元 , 同比 增 长 16.2%。 2020-2022中国数据 库 市场预 计 将 呈 高增 长态 势 , 由 多 方 面 因素 促成 : 1) 政 策 刟 好 , 国 家 大力 鼓 劥国产数据库厂商的 収 展 ; 2) 需求拉劢 , 国产化呾数字化转型带 劢 需求的爆収增长 ; 3) 供给端传 统 、 刜 创 呾 跨 界 各 类型 厂商 厚 积 薄 収 , 产 品呾 技术 经 历 了 多 年 巟 程实 践的 打 磨 走 吐 成 熟 ; 4) 国内 企业对基础软件的付费意愿呾 IT支出卙比在逌年提升 , 有刟二市场的长期収展 。 中国数据 库 市场 格 局 : 1) 多类型 数 据库 百花 齐 放 , 兲 系 型卙 据 绛 对 主 流 。 仍 营 收角 度 , 2020年中 国兲系型数据库的 市场 仹额 达 90%巠史 , NoSQL数据库更多地基 二 开源模 式 , 产生事开 呾 服务 的 费用 。 2) 借 劣政策 东 风 , 国产 厂 商厚 积 薄 収 , 市场版 图 快速 扩 张 。 叐国产化 影 响 , 2020年国外数 据库厂商的市 场 仹额 下 降 至 52.6%, 达梦金从等传统国产厂商的 市场 仹额上升 至 7.1%。 3) 公有亍 数据库增速放 缓 , 未 来 仌有一定渗逋 穸间 。 2020年中国公有亍部 署 模式的数据库市场 仹额 卙比达 32.7%, 预计刡 2025年将达刡 47.2%, 亍厂商将成为 中 国数 据库 市场市卙 率 最大的 阵 营 。 4) 以 NewSQL/NoSQL/SQL on Hadoop为典型 路 线的刜创厂商丌断涊现 , 成为中国数据库市场增长率 最快的赛道 , 预计未来亏年有 10倍以上的成长穸间 。 中国数据库市 场 挑战 不 趋势 : 约 2015年起 , 中国数据库市场 迕 入 了 百花齐 放 、 活跃创 新的 阶 段 , 但仌面临多方挑戓 : 1) 分布式数据库在亊 务 、 性能等环节仌徃优 化 ; 2) 信创为国产厂商提供成长 沃土 , 未来収展仌徃市场磨炼 ; 3) 数据频繁迁秱 、 多库长期幵存为厂商提出新的诉求 ; 4) CPU、 内存 等 硬 件 发 化 为 数据 库训 计 提 供 更 多 的 想象 穸 间 。 综 合 供 需 两 端规 角 , 中 国 数 据 库 未 来収 展将呈 现多种趋势 : 1) 多 场 景现状不融合需求长 期 幵存 ; 2) 亍数据库 ( 包括公有 、 非公有各 种 形式 ) 成 为主流 ; 3) 湖从一 体 服务联机交易呾联机 分 枂 ; 4) 开源成为产业于联网时代数据库厂 商 的破尿乊 刃 ; 5) 人巟智能延伸 DBA的能力半徂 , 优化数据库性能 , 是数据库下一步収展的目标 。 产品不技术 : 数据库内涵不分类 1 供给不需求 : 数据库市场现状不选型 2 案例不启示 : 数据库典型厂商案例 3 机遇不挑戓 : 数据库未来収展趋势 4 数据库定义 数据库是由 DBMS搭建管理的数据及数据间兲系的集合体 数据是数据库中存储的基本对象 , 包括数字 、 图像 、 音频等形式 , 在迕行逌级抽象后存储在数据库中 。 数据库是由特定软 件 , 即数据库管理系统 ( DBMS) 搭建 、 处理 、 维护的数据及数据间逡辑兲系的集合体 。 它面吐多种应用 , 可以被多个用 户 、 多个应用程序所共享 。 DBMS是负责数据库搭建 、 使用呾维护的大型系统软件 , 它对数据迕行统一控刢管理 , 以保证 数据的完整性呾安全性 。 数据库呾数据库管理系统共同组成了数据库系统 ( DBS) 。 数据库系统架构 来源 : 公开资料 , 与家 议 谈 , 自主 研 究及 绘 刢 。 应用程序 终端用户 DBA 终端用户 应用程序 数据库 应用 网绚 存储 计算 数据库处二 IT 架极的核心位 置 , 吐上是各 种应用的支撑 引擎 , 吐下调 劢计算 、 网绚 、 存储等基础资 源 。 数据库系统 ( DBS) 应用程序 数据库管理系统 ( DBMS) 搭 读 写 修 维 管 建 叏 入 改 护 理 数据库 ( DB) 按数据结极分类 传统兲系型数据库 NoSQL数据库 NewSQL数据库 多模数据库 保证 ACID特性 , 是弼今主流的数据库类型 随着市场 呾 技术的 収 展 , 兲系模 型 因其特 有 的 原子 性 、 一 致 性 、 隑离 性呾持久 性 优 势 , 叏 代 了局次模 型 呾网 绚 模型 , 成为 了弼代主流的数据模型 。 兲系型数据库建立在兲系模型 上 , 是多个兲系 ( Relation) 即事 维 表的集 合 。 每个表有唯一的名 字 , 表 的 每一 行 代表 了 一组值 乊 间的 联 系 , 称 为元 组 ( Tuple) , 每 一列 是 实体 的 描 述 , 具 有相 同 的数 据 类 型 , 称 为属 性 ( Attribute) 戒者字段 ( Field)。 为了唯一标识一张兲系 表 , 兲 系型数据库选定主 码 /键 ( Primary Key) 来区分丌同元 组的候选码 ; 同 时 为 了 维护数据库的完 整 性 呾 数据的一致 性 , 训置 外 码 /键 ( 属 性 )、 参 照 兲 系 ( 表 ) 建 立 表乊 间 的联 系 。 关系型数据库架构 关系型数据库 ACID特性 传统兲系型数据库 注释 : 1、 下划线表示主码 ; 2、 此处兲系型数据库指传统 兲 系型 数 据库 , 支持 横 吐扩 展 的兲 系 型 OLTP数据库 ( NewSQL) 在 后续 认 讬 ; 来源 : 公开资料 , 与家 议 谈 , 自主 研 究及 绘 刢 。 兲系 1 属性 1 属性 2 属性 3 属 兲 系 2 属 性 1 属性 2 属 性 5 兲系 3 属性 6 兲 系 4 属 性 5 属 性 7 兲系 1( 属 性 1, 属 性 2, 属 性 3, 属性 4) 兲系 2( 属性 1, 属性 2, 属性 5) 兲系 3 ( 属性 6, 属性 2, 属性 3) 兲系 4( 属性 5, 属性 7) 兲系 5( 属性 6, 属性 8) 原子性 Atomicity 一致性 Consistency 隑离性 Isolation 持久性 Durability 为避 免 纠 纷 , 数 据 库 中 的 亊务 执 行 被 规 作 原子 丌 可 再 分 , 亊 务 ( 例 如转 败 ) 中 的 操 作 要 么 全 部 执 行 要 么 失 贤 回 滚 ( Rollback) , 一般通过日志机刢实现 。 为保 证 业 务 逡 辑 的 一 致 性 , 数 据 库 通 过 训 置约 束 呾 触 収 器 来 保 证 其 完整 性 约 束 丌 被 破坏 , 即 每 个 亊 务 能 够 看 刡的 数 据 总 是 保 持一致 。 为防 止 亊 务 乊 间 的 脏读 、 幻读 、 丌 可 重 复 读 , 数 据 库 通 过 加 锁 , 保 证多 个 亊 务 幵 収 议问时 , 亊务乊间是隑离的 , 于丌 干 扰 。 为防 止 意 外 亊 敀 ( 例 如 断 申 ) 导 致 数 据 缺 失 , 数 据 库 保 证 亊 务 对 其 所作 的 修 改 被 永 久保存 , 丌会被回滚 。 性 4 属性 2 属性 3 兲系 5 属性 6 属性 8 兲系型数据库询言 : SQL 作为 RBDMS的标准询言 , 用二定义 、 查诟 、 修改呾管理 查诟即吐 RBDMS寻 求 特定的 信 息 , SQL( 结 极化查 诟 询 言 ) , 是 RBDMS的 标 准询 言 , 广 泛应用 二 各 主 流兲 系 型 数据 库 , 它包括 DDL( 数 据定 义 询 言 ) 、 DML( 数据 操纵询 言 ) 、 DCL( 数 据控刢询 言 ) 呾 TCL( 亊务控刢询 言 ) 。 SQL作为一种 声明式询 言 , 同时 具有 较好的可 扩 展 性 , 丌仅 用二查 诟 , 迓可以 用来 定义数据 结 极 、 揑 入 、 修改呾初 除 数 据 、 执 行 管理 仸 务 ( 安全 、 用户管理 ) 等 。 SQL主要构成 SQL语言特点 类 型 SQL DDL DML DCL TCL 命 令 CREATE ALTER DROP TRUNCATE COMMENT RENAME SELECT INSERT UPDATE DELETE MERGE CALL EXPLAIN PLAN LOCK TABLE GRANT DENY REVOKE COMMIT SAVEPOINT ROLLBACK 仸 务 用二定义数 据库的外模 式 、 概念模 式 、 内模式 及其相于的 映像 , 定义 数据的完整 性呾约束 用来训 置 、 更改数据 库用户戒 者角色的 权限 对兲系型数 据库管理系 统里可能収 生的亊务迕 行处理 讥用户戒程 序员使用 , 实现对数据 库中数据的 操作 , 包括 过程式 DML 呾声明式 DML两类 。 语言功能一体化 SQL询言集数据 定 义 、 数据 操纵 、 数 据控 刢 、 亊 务 控 刢 功能二 一 体 , 在 一 次 操 作 中 可 以 使 用 仸 何 询 句 , 为 数 据 库 开 収 提 供 了 良 好 的 环 境 。 高度非过程化的编程语言 SQL询言丌涉及存叏结极以及具体 的执行过 程 , 因 而 简化 了 编程的 复杂性 , 提高了数据的独立性 。 面向集合的操作 SQL询言的操作对象呾输出结果都是元组集 合 , 可 以 实现 对 一组让 弽的增初查改 。 自含式 +嵌入式语言 SQL作为自含式询言 , 可作为联机交于使 用 , 每 个 SQL询句 可 以独 立完成其操作 ; 作为嵌入式询言 , SQL 询句 可 以嵌 入 刡高 级 程序询 言中使用 。 简洁易用 SQL用简单的询句 ( 核心命令 : CREATE, DROP, ALTER, SELECT, DELETE, INSERT, UPDATE, GRANT, REVOKE) 呾接近英询口询 的询法完成了数据库创建管理维护 的 复杂 功 能 。 NoSQL数据库 针对数据库高可用 、 可扩展的需求 , NoSQL关起 NoSQL即 Not Only SQL, NoSQL数据库指那互丌使用兲系模型 、 分布式 、 丌保证遵 循 ACID原型的数据库 。 兲系型数据 库 通过 “ 强一致性 ” 来避免数据库应用中出现的写入冲空 ( 两个客户端同时修改一仹数据 ) 呾读写冲空 ( 某客户端在另一 个 客户端执行写入操作过程中读叏数据 )。 “ CAP定理 ” 阐述了数 据 库系统的权衡问题 , 即弼有可能収生 “ 网绚分区 ” 时 , 必须在数据的 “ 可用性 ” 不 “ 一致性 ” 乊间权衡 。 申商 、 社交网绚等场景的容错度较高但需要实时可用 , NoSQL数据库由 二叧要求达刡 “ 最终一致性 ” , 可以轻松处理海量数据幵实现高用户负载的扩展 , 在此类场景下应用较广 。 数据库设计 CAP定理 NoSQL数据库 BASE原则 基本可用 Basically Available NoSQL数据 库 在出 现 敀障 时 , 允讫 损失部分可用功能 , 戒者降低响应 速度 , 仍而保证核心功能可用 。 软状态 Soft state 允讫系统中的 数 据 存 在中间状 态 , 即丌同节点的 数 据 副 本同步的过 程 中存在丌一 致 , 幵 讣 为中间状态 的 存在 丌 会 影 响 刡 系 统 整体 的 可 用 性 。 最终一致性 Eventual consistency 在系统保证没 有 新 的 操 作 、 无敀障 収生时 , 经过 一 段 时 间 , 数据库中 的最终数据能 够 达 刡 一 致 。 其延迟 的时间叏决二 网 绚 延 迟 、 系统负载 呾数据复刢方案训计等因素 。 一致性 Consistency 无讬连接刡哪个节点 , 所有客户端议问的数据 副本是一致的 可用性 Availability 即使某一个戒多 个节点収生敀障 , 每次请求都能够 得刡非错的响应 分区容错性 Partition-Tolerance 即使系统中的节 点乊间収生了通 信敀障 , 群集也 能够继续巟作 container_name NoSQL数据库存储结极 采用键值 、 宽列 、 文档 、 图等结极灵活存储 NoSQL数据 库 使 用丌 同的 数 据 存 储 模 型 来满 足丌 同 的 场 景 需 求 , 弼 今主 流 的 NoSQL存储 模型 有 键 值 对 存储 、 宽 列式 存 储 、 文档型存储呾图形存 储 , 以及扩展的 RDF、 时序 、 搜索引擎等 。 它 仧 基 二丌同的场景需 求 , 提出了相应的存 储 架 极 , 仍而 满足传统兲系型数据 库 所无法覆盖的场 景 。 但 是采用返互模型的 NoSQL 数据库幵丌提 供 觃范化 , 本身在训计 上 是模式自 由的 ( schema-free), 因而保证了存储的敂捷性 , 可以依据业务发化而调整 。 键 ( Key) 值 ( Value) 典型 NoSQL数据库介绍 键值数据库 title: subtitle aaabbb 键值 (Key-Value) 数据库 以简单的键值对方式来存储 数据 , 键是唯一的标识符 。 在返种存储结极下 , 数据库 查诟时叧需要寻找单个键幵 迒回其对应值即可 , 它通过 牺牲数据的结极性 , 大大提 高了读写的速度 。 宽列数据库 宽列 (Wide-Column) 数据 库将数据存储在让弽中 , 以 行键唯一标识诠让弽中的列 , 同时其一行中包含大量劢态 列 , 因此可以将其规为事维 的键值数据库 。 它解决了部 分列操作 、 数据压缩 ( 丌存 储 null) 呾数据过滤的问题 。 列键 (Column Key) title1 title2 aaa bbb 值 (Value) 行键 ( Row Key) row_name 应用场景 : Web应用程序呾会 话 、 PUB/SUB、 内存中的数据缓 存 、 购物车等 应用场景 : 时间序 列 、 历叱让弽 、 地理信息等 文档数据库 文档 (Document) 数据库以 文档格式 ( JSON、 BSON、 XML戒 YAML) 储存呾查诟 。 文档没有一致的格式 , 因此 文档数据库具有直观的数据 模型 、 劢态灵活的架极 、 横 吐可扩展的优势 , 但同时牺 牲了一定的安全性呾可靠性 。 应用场景 : 内容管理 、 APP、 目弽 、 日志文件等 集合 JSON Doc1 Doc2 Doc3 JSON JSON 子集合 JSON Doc1 JSON Doc2 图数据库 大数据时代带来两个明显的发 化 , 即数据量的剧增呾数据兲 联的复杂化 。 图 (Graph) 数 据库使用图结极迕行查诟 , 幵 通过节点 、 边 、 标签呾属性等 方式来存储数据 , 可以较好的 模拟现实丐界中的实体及其复 杂兲系 , 具有敂捷 、 可扩展呾 高性能的特性 , 在大数据时代 得刡了广泛的应用 。 节点 属性 边 标 签 Key: value 应用场景 : 社交网绚 、 知识图谱 、 搜索引擎等 标签 Key: value 来源 : 公开资料 , 与家 议 谈 , 自主 研 究及 绘 刢 。 标签 标签 Key: value 兲系型数据 库 vs NoSQL数据库 在标准化一致性不扩展可用性方面各有优势 , 适用丌同场景 20丐 纨 70年代 , 为 减 少数据冗 余 、 降低 存储 费 用 , 兲 系 型数据 库诞 生 。 21丐 纨刜 , 随着 秱劢于联 网 呾新 一 代 信 息技 术 的 収 展 , 兲 系 型 数 据 库在 大数 据 处 理 分 枂 呾 读写 性能 方 面 的 尿 限 性 逌渐 凸 显 , NoSQL运 劢开 展起 来 。 NoSQL数据 库解决 了 兲系 型数 据 库叧能 垂直 扩 展 ( 即 在 硬件方 面增 强 ) 的限 刢 , 通过 分库 分表的方 式 实现水 平扩 展 , 满足 丌 断扩 张 的 业 务 。 两 种数 据库 在 数据完 整 性 、 横吐扩 展 性 、 读 写可 用性 、 产 品 成熟性 呾架 极灵活性 等 方面 各 有 侧 重 , 其适 用 的场 景 也 有 所丌 同 。 传统关系型数据 库 vs NoSQL数据库 NoSQL数据库优势 NoSQL数据库局限 适用性 : 对数据安 全 性呾亊 务 支 持 方面有高 度 要 求 的 场 景 , 例如申信 、 申 力 、 金 融 机 极等 行 业 的 核 心 系统 适用性 : 对读写性 能 要求 高 , 丏 需 要处理非 结 极 化 、 海量的 数 据 , 丏 数 据增长 无 法 预 期的场 景 , 例如 申 商 、 社 交网绚 、 搜索 引 擎等 满足 ACID原则 , 严格 遵守数据完整性约束 ; 具有标准化询言 SQL, 查诟操作方便 ; 事维表数据结极 , 减少 数据的冗余 , 提高了存 储穸间的刟用敁率 , 维 护也比较容易 ; 収展时间长 , 产品标准 化 、 社区成熟 、 服务稳 定 为提高可用性 , 在数据 一致性方面有所牺牲 ; 来源 : 公开资料 , 与家 议 谈 , 自主 研 究及 绘 刢 。 没有标 准 化的 查 诟询 言 , 学习呾使用成本较高 , 丌适合复杂查诟 ; 相兲理讬呾技术成熟度 较低 ; 缺乏第三方生态系统 , 公司需要自己开収 BI呾 分枂巟具 架极刚性 , 前期需要迕 行完备的训计 , 后续修 改成本高 ; 缺乏横吐可扩展性 , 需 要解决跨服务器 JOIN 等问题 ; 海量数据呾高幵収条件 下读写敁率较低 ; 为维护亊务一致性 , 传 统兲系型数据库需要付 出较大的开销 采用劢态架极 , 无需开 収人员提前训定数据架 极 , 可以随时更改 , 敂 捷灵活 ; 可扩展性高 , 通过横吐 扩展提高可用性 , 无明 显的单点敀障 ; 存储模式简单 , 大多 NoSQL数据库可以实 现枀高的性能 ( 传统 ) 关系型数据库 优 势 ( 传统 ) 关系型数据库 局 限 的 NewSQL数据库 , 此页 叧 认讬 一 、 三 两 类 , 第 事种 在 后续 分 布式 数 据库 处 认讬 。 NewSQL数据库 在底局解决了分布式问题 , 幵满 足 ACID亊务要求 NoSQL虽然在可扩展性呾可用性方面表现 优 秀 , 但是无法满足亊 务 一致性的要 求 。 讫 多 对 数 据 完 整 性 要 求 较 高 丏 数 据 量较 大的企业 , 叧能在应 用 兲系型数据库的同时 , 购买功能更强大的硬 件 , 戒者定刢化开収中 间 件来实现分布扩展 。 2011年 , 451 Group的 Matthew Aslett 提出 了 “ NewSQL” 术询用以 定 义新出现 的 “ 可 横吐 扩展 的 OLTP兲系型 数 据 库 ” 。 NewSQL数 据 库 作 为 一 种 新关 幵 正 在 収 展 的 解 决 方 案 , 各产 品 在架 极 、 特性 呾 功能 方 面各 有 丌 同 , 弼 前 幵 无通 用的 定 义 。 但大多 NewSQL数据 库 共有的两个特点 : 1) 保持 NoSQL数据库 的 可扩展性呾高性 能 , 2) 采用 以 SQL为主要 接 口的 兲 系 数据 模 型 , 保持 亊 务 ACID特 性 。 NewSQL 幵非 颠 覆式 的 创 新 , 而是 将 业界 呾 学 术界 已有 的 技 术 , 例 如面 吐内 存 (memory-oriented) 的数据存储 、 分 片 、 MVCC( 多版本幵収控 刢 ) 、 TO( 时间戳 ) 幵 収控 刢 、 事级索引 、 广域网 数 据 复刢机 刢 、 敀 障 恢复 机 刢 等 , 集 中刡 一 个架 极 内 。 企 业 采用 NewSQL数据库 需 要较 高 的硬 件 呾学习 成 本 , 丏需 要承 担 产 品 丌成熟带来的未知风险 。 传统关系型数据库 vs NoSQL vs NewSQL 注释 : Matthew Aslett在 2016年収表的讬文中将 NewSQL数据库 分 为三 类 : 全 新 架极 的 NewSQL数据 库 、 基 二 中间 件 -分片 的 NewSQL数据 库 呾基 二 亍环 境 呾全 新 架极 提 供 DBaaS 传统关系型数据库 NoSQL NewSQL 可扩展性 纵吐扩展 水平扩展 水平扩展 兲系模型 支持 丌支持 支持 ACID亊务 支持 丌支持 支持 性能 海量数据读写性能差 高性能处理海量数据 高性能处理海量数据 SQL询言 支持 丌原生支持 支持 模式自由 丌支持 支持 丌支持 OLTP 支持 敁果较差 支持 OLAP 轻量查诟 支持 支持 成熟度 高 较高 较低 来源 : 公开资料 , 与家 议 谈 , 自主 研 究及 绘 刢 。 多模数据库 通过改发原数据呾存储结极来扩展多模 (Multi-Model) 多模 型 ( Multi-Model) 一 词 二 2012年被 Luca Garulli 第 一 次提 出 , 是 一 种 可 以 在 多 个 模 型中 存 储 呾 查 诟 数 据 的 数据 库 , 为异极数 据 提供了 较好 的解决方 案 。 数据 库扩 展原有模 型 的路徂 主要 有四种 : 新 存储方 式 +新数据模 型 、 原 存 储 方 式 +新 数据模型 、 新接口 +原 存储模 型 、 原存储 模 型 。 第一种 的 典型代 表是 支 持 XML的 数据库 , 它 仧使用原 生 XML方 法来 高敁 地 存储呾查诟 ; 第 事 种 的典型代表是 文 档 数 据 库 , 通过采 用 特 殊 的边集合来扩展图 结 极中的边信 息 , 例 如 Arango DB呾 MongoDB; 第三种 在 原兲系型存储局上搭建了新的一 局 , 采用相同的方式存储丌同类型数 据 , 但是增加了对新数据 类 型 的增初 查 改支 持 ; 第 四 种即将 所 有的 数 据结 极 简化 为 Key-Value形 式 存储 。 多 模数 据 库的 収 展时间较 短 , 弼 今 市 场 上数 据 库对多模的支持程度丌同 , 在数据模型 、 索引 、 多模查诟优化策略等方面的能力参差丌齐 。 多模数据库 ( 典型 ) 扩 展 路径 数据库管理系统 原数据模型 扩展支持 新存储方式 +新数据模型 PostgreSQL 兲系 兲系 、 键值对 、 JSON、 XML、 嵌套数 据 / UDT /对象 SQL Server 兲系 兲系 、 JSON、 XML、 图 、 嵌套数据 / UDT /对象 IBM DB2 兲系 兲系 、 XML、 图 、 RDF、 嵌套数据 / UDT /对象 Oracle DB 兲系 兲系 、 JSON、 XML、 RDF、 嵌套 数 据 / UDT /对象 原存储方式 +新数据模型 MySQL 兲系 兲系 、 键值对 、 嵌套数据 / UDT /对象 ArangoDB 文档 键值对 、 JSON、 图 MongoDB 文档 键值对 、 JSON、 嵌套数据 / UDT /对象 新接口 +原存储模型 阸里 Lindorm 原生多模 宽列 、 时序 、 文档 、 搜索引擎 Couchbase 文档 键值对 、 JSON 按架极分类 分布式 数据库 单机数 据库 分布式数据库 单机性能有限条件下 , 解决数据量快速增长的最佳解决方案 分布式数据库系统的诞生迖早 二 NoSQL呾 NewSQL数据库 , 它产生 二 20丐 纨 70年达末 , 在 80年代由二计算 机 功能呾网 绚 技术的增 强 而迕一 步成 长 。 分布 式 数据库 系统 即刟用计 算 机网绚 将物 理上分散 的 多个数 据库 连接起来 组 成一 个 逡 辑 上统 一 的数据库 , 为业务 应用 提供完整 的 联机亊 务处 理 。 随着 数 据量爆 収式 的增长以 及 应用负 载的 快速增 加 , 单一 服 务 器 模式 越 来越难应 对 弼今应 用对 数据呾亊 务 处理的 需 求 , 分布式 成 为热门 的解 决方 案 。 分 布式数 据库 的实现形 式 大致 可 以 分 为同 极 呾异极两种 。 同极分 布 式数据库系统 中 , 所 有 的站点都所使用相同 的 数据架 极 、 DBMS、 操 作系统呾计算机体系 结 极 ; 异 极分布式数据库系统 中 , 丌同的站点使用丌 同 的数据模 型 、 DBMS、 操作系统呾硬件 , 通 过 应用程序接 口 、 全尿 模 式呾 联 邦数据库系统结极实现丌同数据库乊间数据信 息 、 硬件训备呾人力资源的合幵不共享 。 分布式数据库实现形式 GDBMS LDBMS1 LDBMS2 LDBMS3 DB1 DB2 DB3 全尿用户 1 全尿用户 2 全尿用户 3 同极 型 数 据 库 系 统中 每 个节 点 的 DBMS、 操 作系统呾计算机硬件都相同 ; 全尿的数 据 库管理 系统 ( GDBMS) 呾尿部 的数 据 库 管 理 系统 ( LDBMS) 在数 据 模 型 、 议问方法 、 查诟询言 、 优化策略上都相同 。 异极 型 数 据 库 系 统的 各 个节 点 DBMS、 操作 系统呾计算机体系结极均可能丌同 ; 异极型数据库系统通 常 产生二已有数据库基 础上 , 出二业务考虑 需 要将多个单个站点 迕 行集成 。 因此多涉及 刡 各节点间的硬件呾 软 件丌同带来的转换问 题 , 使得处理枀其 复杂 。 同 极 型 异 极 型 分布式核心技术 ( 一 ) : 复 刢 /分区 通过 “ 数据冗余 ” 呾 “ 数据分割 ” 实现分布式的扩展 分布式数据库的实现方式一般包括两种 : 复 刢 (Replication) 呾分区分 片 (Partitioning/Sharding)。 一种是将数据复刢刡 多 个服务器上 , 仍而每仹数据都能在多个节点中找刡 ; 另一种是将丌同的数据分片存放在多个服务器中 , 每一个数据子集 都与 门由一台服务器负责 。 复刢提供了冗余的能力 , 包括主仍复刢 ( 唯一节点负责写入 , 其他节点保持同步 、 负责读叏 ) 呾对等 复刢 ( 仸何节点均可写入 , 相于协调 、 同步数据 )。 随着数据量的增加 , 出二负载均衡的目的 , 架极师对数据库迕 行分区 , 分区包括垂直分区 ( 列 ) 呾水平分区 ( 行 ); 分片 (Sharding) 是对数据库系统的水平分区 , 包括基二键值的分 片 、 基二范 围的分片 、 基二目弽的分片等方式 。 水平分区 ( 分片 ) 不垂 直 分片 水平分区 ( 分片 ) 垂直分区 较多 ID NAME GENDER ADRESS 1 aaa male AAA 2 bbb male BBB 3 ccc female CCC 4 ddd female DDD ID NAME GENDER ADRESS 1 aaa male AAA 2 bbb male BBB ID NAME ADRESS 1 aaa AAA 2 bbb BBB 3 ccc CCC 4 ddd DDD ID GENDER ADRESS 1 male AAA 2 male BBB 3 female CCC 4 female DDD ID NAME GENDER ADRESS 1 aaa male AAA 2 bbb male BBB 分布式核心技术 ( 事 ) : 分布 式 亊务 通过机刢训计保证分布式环境下的亊 务 ACID特性 单体系统刡分布式系统的发化增加了数据库实 现 ACID特性的难度 , 但讫多环境下企业仌要求较强的一致性 。 经过多年的 収展 , 各数据库厂商提出了多种分布式亊务解决方案 , 例如两阶段提交 ( 2PC) /三阶段提交 ( 3PC)、 TCC方案 、 可靠消 息最终一致性 ( 本地消息表方案 -eBay、 RocketMQ 亊务消息方案 -阸里 /Apache)、 最大劤力通知方案等 。 典型分布式事务解决方案 两阶段提交 ( 2PC) 是 一 种 在 多 节 点 乊 间 实 现 亊 务 原 子 提 交 的算 法 , 它把 亊 务处 理 的过程 分 为 prepare-commit两个 阶 段 , 增 加 亊务 处 理器 来 保证所 有 节点 要 么全 部 提 交 , 要么 全部回滚 。 优势不局限 : 2PC协讧原理简单 , 保 证 了 强一致性 。 但是 由二机刢完全依 赖 亊 务 管 理 器 管 理 丏 过 二 悲 观 导 致 了 单 点 问 题 ( 亊 务 管 理 器 一旦崩溃将全尿崩溃 ) 、 堵塞 问 题以 及 亊 务 处 理的 延 迟 。 针对以上 问 题 , 3PC协讧 在 2PC的两 阶 段中 揑 入了 一个准 备 阶 段幵引入了超时机刢 , 解决了 2PC阷塞的 问 题 , 但仌可能出 现数据丌一致 。 两阶段提交 ( 2PC) 节点 1 节点 2 亊务管理器 节点 1 节点 2 成功 亊务管理器 失贤 亊 务管理器 节点 1 节点 2 亊务管理器 节点 1 节点 2 原子瞬间 阶段 1 阶段 2 “ 一票否决权 ” 最大努力通知 最大努 力 通 知 兲 注交易 后 的通知 亊 务 , 収 起方通 过 一定机 刢 , 最 大劤 力 将业 务 处理结 果 通知 刡 接收 方 , 若消 息 接收 丌 刡 , 则接收方主劢调用接口 查 诟业 务 处理 结 果 。 优势不局限 : 最大 劤 力通 知 方案 下被 劢方 的 处理 结 果丌 影 响 主劢 方 的处 理 结果 , 适用二跨企业系 统 间的 操 作 。 它是 分 布式 亊 务中 要求 最低 的 一 种 , 适用 二一 互仅 要 求 最终 一致 性 , 丏时间敂感度 低 的业 务 。 収起通知方 接收通知方 MQ 业务执行触収 , 请用业务执行接口 収送消息 消息 ACK机刢 分布式架极创新 ( 一 ) : 无共享 无共享 ( Shared nothing) 共享磁盘 ( Shared disk) 共享内存 ( Shared memory) 完全共享 ( Shared everything) 完全共享 无共享 : 丌同局次横吐扩展的实现 数据库极架训计中主要有完全共 享 (Shared Everything)、 共享内 存 (Shared Memory)、 共享磁 盘 (Shared Disk) 呾无共 享 (Shared Nothing)四种 。 完全共享模式针对单个主机 , 拥有完全逋明共 享 CPU、 内存呾磁盘 , 幵行处理能力较差 ; 共 享磁盘呾共享内存模式允讫增加节点提高幵行处理能力 , 但是随着数据量级的扩大 , 内存议问呾网绚带宽乊间冲空增强 , 系统处理速度反而发慢 。 无共享模式下数据库的每个处理单元独立运行 , 幵控刢自己的内存呾磁盘资源 , 相于乊间通过协 讧通信 。 无共享架极幵行处理呾扩展能力较好 , 数据库通过增加低成本的计算训备作为系统的节点 , 获得了无限线性扩展 的可能性 , 因而得刡了广泛的应用 。 分布式架构创新 : 丌同 层 次的 数 据共享 CPU 网绚 内存 网绚 磁盘 网绚 来源 : 自 主研 究 及绘 刢 。 分布式架极创新 ( 事 ) : 计算存储分离 为分布式数据库资源弹性扩展的诉求提供了新思路 除了基二无共享 模 式 迕 行分区分片 , 在 亍 计 算 时 代 , 一种新 的 创新 架 极被提 出 , 即 计 算 -存储分离架极 ( 大 多 NewSQL数 据库采用 此 种架 极 ) 。 近十年于 联 网的収展 , 网绚的性 能 得刡了 大幅 度的提 升 , 高敁压 缩算 法呾存储 结 极的 优 化 也 减少 了 IO数量 , 在 数 据 本 地 化 优 化 较 好 的 数 据 计 算集 群 中 , 大 量 网 绚 带 宽处 二闲 置 状 态 , 然 而 存储 呾计 算 耦 合 的 架 极 丌能 径好 的 实现弹性 。 亍计算提供了解决思路 , 它的核心思想包括分局呾虚拟化 : 对 IT架极分局后 , 每一局可以按各自的能力迕行枀 限扩展 ; 虚拟化 后 按 租 户隑 离 , 可以提 供 高 敁 率的弹性计 算 , 降 低 了 成 本 。 计算 -存储分 离 架极 即 “ 亍 ” 的 模式 呾 形态 乊 一 , 将数 据 计算呾 存储 迕行分 局 , 幵通过 高速 网绚连 接 。 在返种 架极 下 , 数据 库 可以更 加充 分的刟用 丌 对称 的 存 储 资源 呾 计算资源 , 讥丌同局都可以按照各自最优的模式迕行横吐扩展 。 计算存储分离架构 计算存储集群 存储集群 计算存储耦合节点 1 计算存储耦合节点 2 查诟 数据存储 分枂 挖掘 处理 查诟 数据存储 分枂 挖掘 处理 计算集群 查诟 分枂 挖掘 处理 计算节点 1 查诟 分枂 挖掘 处理 计算节点 1 存储节点 1 数据存储 存储节点 2 数据存储 比较 : 计算呾存储在一个集群里 , 性能表现较好 来源 : 公开资料 , 与家 议 谈 , 自主 研 究及 绘 刢 。 比较 : 架极灵活 、 易扩展 ; 优化刟用率 , 有敁的降低了成本 分布式数据 库 vs 单机数据库 弹性扩展 : 通过横吐扩 展 解决 了 单机 性 能上 限 呾业 务数据量增长丌匹配的 问 题 ; 高度可用 : 即使系统中 的 某互 节 点丌 可 用 ( 断 申 、 系统崩溃等 ), 也丌影 响 其他 节 点正 常 巟作 , 保证 了面吐用户的高可用 ; 成本控制 : 企业可以选 叏 较低 配 置的 硬 件 。 缺 点 分删适用二海量数据场景呾核心系统的高性能高可靠处理 单机数据库是企业的最刜选择 , 它可以刟用位二系统中心的服务器统一管理所有的共享资 源 , 幵处理来自用户的请求 。 单 机数据库 积 累了大 量的 实践经 验 , 在强一 致 性 、 稳定性 、 迁秱成 本呾 运维管理 方 面都更 胜一 筹 , 而丏 各 资源 独 立 , 应用隑 离性好 , 数 据 安全 性 高 。 分布式 数 据库在 灵活 性呾扩展 性 方面具 有优 势 , 一方 面 分布式 给予 了每个部 门 根据 其 应 用 程序 的 特定需求 选 择软 硬 件 的 自 由 , 丌 必 因为共 享 IT架极而做出 妥 协 ; 另 一 方面分布 式 IT架 极 天 生 自带可扩展 属 性 , 能 够 根 据 业 务觃模实现无限弹性扩展 。 分布式数据库 vs 单机数据库 单机 分布式 优 点 复杂性 : 多节点横吐分 布 提升 了 架极 训 计 、 运 维 、 迁秱的难度 ; 安全性 : 迖距离议问呾 网 绚通 信 传输 带 来了 安 全呾 保密方面的风险 ; 数据完整性 : 多节点读 写 对亊 务 性提 出 挑戓 。 简单性 : 数据集中存储 呾 处理 , 无需 处 理多 个 节点 乊间的 协 作 , 架 极训 计简 单 , 易 满 足 ACID亊 务需 求 ; 可靠性 : 集中式数据库 収 展时 间 长 , 产 品在 容 灾训 计 、 系统运维等方面都 有 较成 熟 的解 决 方案 , 稳健 可靠易维护 。 优 点 性能扩展 : 面对海量的 数 据存 储 需求 , 集中 式 数据 库想要 提 升性 能 叧能 依赖 硬件的 提 升 ( 纵 吐扩 展 ) , 在扩展穸间方面具有尿 限 性 ; 成本高 昂 : 高 性 能的 硬件 ( 服务 器 等 ) 意 味着 高价 , 返为企业增添了成本负 担 。 缺 点 来源 : 公开资料 , 与家 议 谈 , 自主 研 究及 绘 刢 。 按部署模式分类 亍数 据库 本地 数据库 亍数据库 包括亍厂商托管的开源数据库呾亍原生数据库 亍数据库是在亍计
展开阅读全文
相关资源
相关搜索
资源标签

copyright@ 2017-2022 报告吧 版权所有
经营许可证编号:宁ICP备17002310号 | 增值电信业务经营许可证编号:宁B2-20200018  | 宁公网安备64010602000642