IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 分布式数据库核心原理 -> 正文阅读

[大数据]分布式数据库核心原理

随着互联网时代,特别是移动互联网时代的到来,形形色色的企业都在将自己的系统平台快速升级迭代,以此作为向互联网转型的一个部分。
在这样的背景下,这类应用平台所依赖的数据库系统就需要支持突然增加的巨量的交易数据,但是在这种情况下,单体的数据库往往会很快的过载。而用于扩展数据库最常用的技术手段就是数据分片。

那么
1.什么是分片?
2.如何将它应用于扩展数据库?

3.常见分片架构的优缺点

分片是将大数据表分解为较小的数据表的过程,这些分片分布在多个数据库集群节点上。分片本质上可以被看作传统数据库中的分区表,是一种水平扩展手段。每个分片上包括原有的总数据集的一个小的子集,从而可以将总负载分散在各个的分区之上。

数据分片的方式一般包括两种:
1.水平分片
在不同数据库节点中存储同一表的不同行
2.垂直分片
在不同数据库节点中存储表不同的表列
在这里插入图片描述
分片理论其实来源于经济学边际收益的相关理论:如果投资持续增加,但收益的增幅开始下降时,被称为边际收益递减状态,而刚好要开始下降的点被称为边际平衡点。该理论应用到数据库计算能力上,往往是这样被表述的:如果数据库处理能力遇到瓶颈,最简单的方式是持续提高系统性能,比如说更换更强劲的CPU、更大的内存等,这种模式被称为垂直扩展。
当持续增加资源以提升数据库能力时,垂直扩展因为自身的限制最终会达到边际平衡,收益就开始逐步递减了。那么此时对表进行水平分片意味着可以引入更多的计算能力,来处理数据与交易,从而将边际递减再次扭转为边际递增的状态,同时通过持续水平的扩展,使所有节点上的处理和负载都比较均匀。分片模式可以获得一种1+1>2的效果,这就是集群平均处理能力大于单节点处理能力的原因。这样就使规模较小、价格便宜的服务器组成的水平扩展集群可能比维护一台大型商用服务器更具有成本的效益。

分片算法
一般代指水平分片所需要的算法
1.哈希分片
首先需要获取分片键,然后根据特定的哈希算法计算哈希值,最后使用哈希值确定数据应被放置在哪个分片中。
数据库一般对所有的数据使用统一的哈希算法,以促成哈希函数在服务器之间进行均匀的分配,从而降低数据不均衡带来的热点的风险。使用这种方法,数据不太可能放在同一个分片上,从而使数据被随机的分散开。这种算法非常适合随机读写的场景,能够很好地分散系统负载,但弊端是不利于范围扫描、查询这样的操作。
在这里插入图片描述
2.范围分片
根据数据值或键空间的范围对数据进行划分,相邻的分片键更有可能落入相同的分片上。每行数据不需要像哈希分片那样,需要进行转换,实际上它们只是被简单分类到不同的分片上。
在这里插入图片描述
范围分片需要选择合适的分片键,这些分片键应该尽可能选择不包含重复的数值,几个候选值应该尽可能离散,同时数据不要单调递增或单调递减,否则数据不能很好地分散在集群里,从而造成集群热点。
范围分片非常适合范围查找,但是其随机读写能力偏弱。

以上,我们应该注意到,哈希分片和范围分片并不是非此即彼,二选一的,我们可以更灵活地组合它们。例如,我们可以建立一个多级的分片策略,该策略上层可能会使用哈希分片,而在每个基于哈希分片的单元里面,数据将按顺序进行存储,进一步分片

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:25:14  更:2022-05-05 11:29:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:23:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码