2019独角兽企业重金招聘Python工程师标准>>>

从原有的一个库,被切分为多个分片数据库,所有的分片数据库集群构成了整个完整的数据库存储。面对分片集群,数据源切换,事务处理,数据聚合等,是否需要应用程序直接处理这些呢?答案肯定是否定的,这就是数据库中间件存在的原因,把这些统统都交给中间件,应用只专注于业务就行了。

那么应用程序怎么访问数据库中间件呢?和直接访问数据库有什么区别?
        通常应用程序不需要知道中间件的存在,业务开发人员只需要知道数据库的概念,所以数据库中间件可以被看做是一个或多个数据库集群构成的逻辑库。对应用来说,逻辑库中读写数据的表就是逻辑表。逻辑表,可以是数据切分后,分布在一个或多个分片库中,也可以不做数据切分,不分片,只有一个表构成。

分片表:

是指那些原有的很大数据的表,需要切分到多个数据库的表,这样,每个分片都有一部分数据,所有分片构成了完整的数据。

非分片表:

是对应于分片表而言的,某些表示可以不用进行切分的。

ER表:

关系型数据库是基于实体关系模型之上,通过其描述了真实世界中事物与关系,Mycat中ER表即使来源于此。根据这一思路,提出了基于ER关系的数据分片策略,子表的记录与所关联的父表记录存放在同一个数据分片上,即子表依赖于父表,通过表分组(Table Group)保证数据Join不会跨库操作。

表分组(Table Group)是解决跨分片数据join的一种很好的思路,也是数据切分规则的重要一条规则。

全局表:

在真实业务系统中,往往存在大量的类似字典表的表,这些表基本上很少变动,字典表具有以下几个特性:
               变动不频繁。
               数据量总体变化不大。
               数据规模不大,很少有超过数十万条记录。
        对于这类表,在分片的情况下,当业务表因为规模而进行分片以后,业务表与这些附属的字典表之间的关联,就成了比较棘手的问题,所以Mycat中通过冗余来解决这类表的join,即所有的分片都有一份数据的拷贝,所有将字典表或者符合字典表的特性的一些表定义为全局表。

数据冗余是解决跨分片数据join的一种很好的思路,也是数据切分规划的另外一条重要规则。

###########################

分片节点(dataNode):
        数据切分,一个大表被分到不同的分片数据库上面,每个表分片所在的数据库就是分片节点(dataNode)。

节点主机(dataHost):
        数据切分后,每个分片节点(dataNode)不一定都会独占一台机器,同一机器上面可以有多个分片数据库,这样一个或多个分片节点(dataNode)所在的机器就是节点主机(dataHost),为了规避单节点主机并发数限制,尽量将读写压力高的分片节点(dataNode)均衡的放在不同的节点主机(dataHost)。

分片规则(rule):
       对于大表的数据切分,切分成若干个分片表,需要一定的规则,这样按照某种业务规则把数据分到某个分片的规则就是分片规则,数据切分选择合适的分片规则非常重要,将极大的避免后续数据处理的难度。

全局序列号(sequence):
       数据切分后,原有的关系数据库中的主键约束在分布式条件下将无法使用,因此需要引入外部机制保证数据唯一性标识,这种保证全局性的数据唯一标识的机制就是全局序列号(sequence)。

转载于:https://my.oschina.net/u/3420885/blog/1942008

分布式数据库中间件概念相关推荐

  1. 开源分布式数据库中间件MyCat架构简介(一)——基于MyCat的分库分表,读写分离,水平切分和垂直切分实现原理

    目录 前言 开源分布式数据库中间件MyCat架构简介--MyCat源起 一.数据库切分概述:OLTP和OLAP 二.关系型数据库和NoSQL数据库 三.关系型数据库和NoSQL数据库的特点及优缺点 1 ...

  2. 分布式数据库中间件Sharding-JDBC介绍

    前文中介绍了分布式数据库中间件Mycat的一些特性,作为对比本文简要介绍Sharding-JDBC的一些特性以及分片的实现原理,进行对比分析以了解. 1.ShardingSphere介绍 Shardi ...

  3. 分布式数据库中间件对比总结MyCat Cobar Sharding-jdbc

    分布式数据库中间件对比总结(1) 目前数据库中间件有很多,基本这些中间件在下都有了解和使用,各种中间件优缺点及使用场景也都有些心的.所以总结一个关于中间件比较的系列,希望可以对大家有帮助. 1. 什么 ...

  4. 开源分布式数据库中间件MyCat架构简介(二)——基于MyCat的分库分表,读写分离,水平切分和垂直切分实现原理

    目录 前言 基于MyCat的分库分表,读写分离,水平切分和垂直切分实现原理 一.关于Mycat 二.Mycat 实现原理 三.MyCat 应用场景 四.MyCat 未来展望 五.Mycat 中相关概念 ...

  5. 开源分布式数据库中间件

    转自:https://www.csdn.net/article/2015-07-16/2825228 MyCat:开源分布式数据库中间件 为什么需要MyCat? 虽然云计算时代,传统数据库存在着先天性 ...

  6. (转载)MyCat:开源分布式数据库中间件

    发现MyCat这个东西,觉得还是有很多应用场合,之前为了mysql读写分离.分布等伤透脑筋,没想到有现成的中间件工具,看来很多有经验的公司是受到过折磨,才整出好工具.方法和工具的发明,总是因为问题的存 ...

  7. 【干货】浅谈分布式数据库中间件之分库分表

    分库分表,顾名思义就是把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上.那么关于分库分表,你了解多少呢?接下来,我们将从什么是数据分片及如何进行分片两方面对DDM ...

  8. java中间件_Java技术分享:一致性更强的分布式数据库中间件

    分布式数据库中间件 ShardingSphere 将 Sea t a 分布式事务能力进行整合,旨在打造一致性更强的分布式 数据库中间件 . 背景 数据库领域,分布式事务的实现主要包含:两阶段的 XA ...

  9. docker安装mycat_分布式数据库中间件 MyCat 搞起来!

    关于 MyCat 的铺垫文章已经写了三篇了: MySQL 只能做小项目?松哥要说几句公道话! 北冥有 Data,其名为鲲,鲲之大,一个 MySQL 放不下! What?Tomcat 竟然也算中间件? ...

最新文章

  1. express登录例子
  2. 1.极限——ε-δ例子_7
  3. input子系统分析二
  4. 里程碑式突破!我国量子计算原型机“九章”问世
  5. 【java】ssh the connection is not authenticated
  6. mysql 字符串用省略号_CSS截取字符串自动补充省略号
  7. Vue学习笔记(七)
  8. Visual studio code清除终端数据
  9. 代码行数统计工具(SourceCounter附下载链接)
  10. 倾斜摄影——3维建模软件PhotoScan教程(附安装包+教学视频)
  11. 这五款简单又实用自媒体排版工具,你不来试试?
  12. RabbitMQ入门学习笔记
  13. 文件管理android2.3,华为手机文件管理器(com.huawei.hidisk) - 10.11.11.301 - 应用 - 酷安...
  14. GSMA公布2018世界移动大会-上海的最新进展
  15. flash的读写擦除
  16. 1词法分析PaddleNLP / examples / lexical_analysis
  17. 国外那些富有创意的 404 页面
  18. 等保windows server安全策略三权分立设置
  19. 子曰:“吾十有五而志于学.......
  20. 质量总监成长记(前三章)--读书笔记

热门文章

  1. 基于CSS3实现元素宽度向两侧延伸
  2. Python_内置模块2
  3. JS 基础知识点及常考面试题(二)
  4. 机器学习实战15-自动编码器
  5. Iphone如何应对华为鸿蒙系统,鸿蒙2.0向iOS看齐 系统解决了 芯片怎么办?
  6. php页面价格排序代码,php 数组动态添加实现代码(最土团购系统的价格排序)
  7. python 怎么判断文件存在哪里_Python判断文件和文件夹是否存在的方法
  8. mysql数据库内置函数大全_(MariaDB)MySQL内置函数大全
  9. sql:MySQL 6.7 表,视图,存储过程结构查询
  10. SQL Server CTE 递归查询全解