Mycat入门(三)

在这里插入图片描述

ER表:Entity-Relationship 实体关系

  子表的记录与所关 联的父表记录存放在同一个数据分片上,即子表依赖于父表,通过表分组(Table Group)保证数据 Join 不会跨 库操作.表分组(Table Group)是解决跨分片数据 join 的一种很好的思路,也是数据切分规划的重要一条规则

全局表:一个真实的业务系统中,往往存在大量的类似字典表的表,这些表基本上很少变动

字典表具有以下几个特性:
                • 变动不频繁
                • 数据量总体变化不大                
                • 数据规模不大,很少有超过数十万条记录。
对于这类的表,在分片的情况下,当业务表因为规模而进行分片以后,业务表与这些附属的字典表之间的关联,就成了比较棘手的问题,所以 Mycat 中通过数据冗余来解决这类表的 join,即所有的分片都有一份数据的拷 贝,所有将字典表或者符合字典表特性的一些表定义为全局表.
        
数据冗余是解决跨分片数据 join 的一种很好的思路,也是数据切分规划的另外一条重要规则

分片节点(dataNode):

节点主机(dataHost):

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

全局序列号:

多租户: RDS,阿里云服务器等

        多租户在数据存储上存在三中方案:
                1.独立数据库:即一个用户一个数据库,用户数据隔离级别最高,安全性最好,成本也高
                        -优点:有助于简化数据模型的扩展设计,满足不同租户的不同需求,如果出现故障,恢复数据比较简单
                        -缺点:增大了数据库的安装数量,增加了维护成本和购置成本
                        适合:银行,医院等非常高数据隔离级别的租户,提高租用定价
                
                2.共享数据库,隔离数据架构:多个或所有租户共享 Database,但是每个租户一个 Schema
                        -优点:为安全性要求高的租户提供了一定程度的逻辑数据隔离,并不是完全隔离,每个数据库可以支持更多的租户数量.
                        -缺点:如果出现故障,数据恢复比较困难,因为恢复数据库将牵扯到其他租户的数据
                                    如果需要跨租户统计数据,存在一定困难

                3.共享数据库,共享数据架构:即租户共享同一个DataBase,同一个Schema,但在表中通过TenantID区分租户的数据,这事共享程度最高,隔离级别最低的模式.
                        -优点:维护和购置成本最低,允许每个数据库支持的租户数量最多,
                        -缺点:隔离级别最低,安全性最低,需要在设计开发时加大对安全的开发量
                                数据备份和恢复最困难,需要逐表逐条备份和还原
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
它是一个开源的分布式数据库系统,是一个实现了 MySQL 协议的的 Server,前端用户可以把它看作是一个数据库代理,用 MySQL 客户端工具和命令行访问,而其后端可以用 MySQL 原生(Native)协议与多个 MySQL 服务器通信,也可以用 JDBC 协议与大多数主流数据库服务器通信, 其核心功能是分表分库,即将一个大表水平分割为 N 个小表,存储在后端 MySQL 服务器里或者其他数据库里。 Mycat 发展到目前的版本,已经不是一个单纯的 MySQL 代理了,它的后端可以支持 MySQL、SQL Server、 Oracle、DB2、PostgreSQL 等主流数据库,也支持 MongoDB 这种新型 NoSQL 方式的存储,未来还会支持更 多类型的存储。而在最终用户看来,无论是那种存储方式,在 Mycat 里,都是一个传统的数据库表,支持标准的 SQL 语句进行数据的操作,这样一来,对前端业务系统来说,可以大幅降低开发难度,提升开发速度,在测试阶 段,可以将一个表定义为任何一种 Mycat 支持的存储方式,比如 MySQL 的 MyASIM 表、内存表、或者 MongoDB、LevelDB 以及号称是世界上最快的内存数据库 MemSQL 上。试想一下,用户表存放在 MemSQL 上, 32 大量读频率远超过写频率的数据如订单的快照数据存放于 InnoDB 中,一些日志数据存放于 MongoDB 中,而且 还能把 Oracle 的表跟 MySQL 的表做关联查询,你是否有一种不能呼吸的感觉?而未来,还能通过 Mycat 自动 将一些计算分析后的数据灌入到 Hadoop 中,并能用 Mycat+Storm/Spark Stream 引擎做大规模数据分析,看 到这里,你大概明白了,Mycat 是什么?Mycat 就是 BigSQL,Big Data On SQL Database。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值