当前位置:首页 » 数据仓库 » 分布式数据库怎么创建
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

分布式数据库怎么创建

发布时间: 2022-12-27 06:49:38

① 如何编写一个分布式数据库

某种程度上看来,数据库作为整个系统的核心,这句话其实并不夸张,数据库的选型关系到上层业务代码实现的方方面面,现在比较流行的架构方案是上层业务逻辑微服务化,并且结合分布式缓存,这套框架已经基本能做到上层业务的弹性扩展,但是最底层的数据存储还是很难去中心化(除非整个技术栈中去除关系型数据库(RDBMS), 全部采用 NoSQL)。所以,经常是 RDBMS 成为整个系统的瓶颈。
在长期的斗争中,大家总结出了很多方式来扩展最底层的关系型数据库:
1. 主从,一主多从,双写,通过队列暂存请求... 这些方案其实并没有解决问题,写入仍然是单点,而且对于 DBA 的挑战比较大,今天我们暂时就不讨论了。
2. 通过中间件 Sharding,常见的开源方案有: Cobar, TDDL, Vitess, Kingshard, MyCat 等,这些方案的思路是拦截 SQL 的请求通过 sharding key 和一定规则,将请求转发/广播到不同的 MySQL 实例上,从而实现水平扩展的效果,这个方案基本解决了单点写入的问题,对于业务来说整体的吞吐也上来了,看上去不错,这个方案是大多数业务遇到性能瓶颈的解决方案,但是缺点也是有的:
1)大多中间件都没有解决动态扩容的问题,多采用了静态的路由策略,扩容一般还处于人工 x2 的状态,对 DBA 要求比较高。
2)从一定程度上来说都放弃了事务,这是由于一条语句有可能会涉及到多个数据库实例,实现分布式 事务是一个比较难的事情,我们后面会详细的介绍。
3)对业务不透明,需要指定 sharding key, 心智负担较大

② 如何在海量数据环境下,搭建分布式数据库系统

如果做分布式的话,首先需要对数据做个有效的划分, 可以通过地区属性或者其他类似属性做水平扩展,把不同地域的数据放在不同数据库上。 但是这种水平分割应当尽量避免跨区的访问。或者设计一个数据中心,把各个区中和报表相关的汇总数据抽取到仓库里面去,提供报表。
这样的做法在联机游戏中非常常见,比如魔兽世界,fifa on line等



或者做垂直分割,根据时间或者类似属性把数据分割到不同数据库上去,基本架构是一台在用服务器支持读写操作,几台历史服务器提供数据查询,一些转储脚本定期把数据从在用服务器迁移到历史服务器上去...


③ 如何编写一个分布式数据库

基于hadoop的分布式数据库有hbase。安装hbase除了要安装hadoop外,还要安装Zookeeper。
分布式hbase安装和分布式hadoop安装方法差不多,hbase要有master和regionserver,regionserver相当于slave,你可以在maser上面安装好hbase,然后把它拷贝到其它slave服务器,再修改一些配置.

④ 如何编写一个分布式数据库

分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。
体系结构
根据我国制定的《分布式数据库系统标准》,分布式数据库系统抽象为4层的结构模式。这种结构模式得到了国内外的支持和认同。
4层模式划分为全局外层、全局概念层、局部概念层和局部内层,在各层间还有相应的层间映射。这种4层模式适用于同构型分布式数据库系统,也适用于异构型分布式数据库系统。