关系型数据的分布式处理系统MyCAT材料.pptx
文本预览下载声明
关系型数据的分布式处理系统MyCAT
1
优购科技有限公司
目录:
2
优购科技有限公司
一、MyCAT概述
二、简单使用
一、背景
3
优购科技有限公司
Mycat概述
集中式处理,势必造成性能瓶颈。
应用程序集中在一台计算机上运行,一旦该计算机发生故障,则整个系统受到影响,可靠性不高。
集中式处理引起系统的规模和配置都不够灵活,系统的可扩充性差。
关系型数据库技术日趋成熟,互联网的飞速发展,数据迅速膨胀,故集中式数据库系统则表示它的不足:
在这种趋势下,集中式数据库将向分布式数据库发展,陆续产生一些分布式数据库系统,如: Amoeba、 Cobar
发展历程
4
优购科技有限公司
Mycat概述
Amoeba(变形虫)项目,该项目框架于2008年开源,当时叫“Amodba for Mysql”。这个软件主要解决mysql的分布式数据的前端代理,它主要是应用访问mysql的时候充当sql路由功能。专注于分布式数据库代理层(Database Proxy)开发,目前Amoeba已在很多企业的生产线上面使用。
之阿里巴巴于2012年6月份对外开源一个产品,名叫Cobar,前身就是Amoeba,Cobar 是由 Alibaba 开源的 MySQL 分布式处理中间件,它可以在分布式的环境下看上去像传统数据库一样提供海量数据服务。
Cobar出来之后,火。。。。,但是2013年之后,就几乎没有更新。所以mycat慢慢的发展起来,它集成了cobar一切优点,进行优化。“站在巨人的肩膀上,MyCAT能看到更远。”
Mycat概述
MyCat特性
支持 SQL 92标准;
支持MySQL集群,可以作为Proxy使用。
支持JDBC连接ORACLE、DB2、SQL Server,将其模拟为MySQL Server使用
自动故障切换,高可用性;
支持读写分离,支持MySQL双主多从,以及一主多从的模式;
支持全局表,数据自动分片到多个节点,用于高效表关联查询;
支持独有的基于E-R 关系的分片策略,实现了高效的表关联查询;
多平台支持,部署和实施简单。
总体架构
6
优购科技有限公司
Mycat概述
Mycat其实就是模拟成mysql服务器,并和mysql一样有Schema(数据库)、Table (数据表)、User(用户)的逻辑模型,并把它映射到物理数据库中。
当mycat收到sql请求,会对sql解析、语法检测,分析结果用于sql 路由。Sql路由支持字段方式进行分片,也支持独有的基于数据库E-R关系的分片策略。对于路由到多个数据节点(DataNode)的SQL,则会把收到的数据集合归并,之后显示到客服端。
SQL执行的过程,对应mysql来说,是通过mysql网络协议发送报文,解析返回结果,发送到socket流中,并且这个过程是非阻塞模式(NIO)
DataNode是MyCAT的逻辑数据节点,映射到后端的某一个物理数据库的一个Database
MyCAT 配置项
7
优购科技有限公司
Mycat概述
MYCAT_HOME/conf/schema.xml中定义逻辑库,表、分片节点等内容;
MYCAT_HOME/conf/rule.xml中定义分片规则。
MYCAT_HOME/conf/server.xml中定义用户以及系统相关变量,如端口等;
搭建
8
优购科技有限公司
Mycat简单实用
安装JDK1.7
下载mycat地址:/svn/openclouddb/downloads/old/MyCat-Sever-1.2/
安装目录:
9
优购科技有限公司
Mycat简单实用
数据的垂直切分,也可以称为纵向切分。将数据库想象成由很多个一大块一大块的“数据块”(表)组成,垂直地将这些“数据块”切开,然后把它们分散到多台数据库主机上面。这样的切分方法就是垂直(纵向)的数据切分。
优点:
(1)数据库的拆分简单明了,拆分规则明确;
(2)应用程序模块清晰明确,整合容易;
(3)数据维护方便易行,容易定位。
缺点:
(1)部分表关联无法在数据库级别完成,要在程序中完成;
(2)对于访问极其频繁且数据量超大的表仍然存在性能瓶颈,不一定能满足要求;
(3)事务处理相对复杂;
(4)切分达到一定程度之后,扩展性会受到限制;
(5)过度切分可能会带来系统过于复杂而难以维护。
实例1: 垂直切分
实例2: 水平分库
10
优购科技有限公司
Mycat简单实用
水平切分所指的是通过一系列的切分规则将数据水平分布到不同的DB或table中,在通过相应的DB路由 或者table路由规则找到需要查询的具体的DB或者table以进行Query操作,比如根据用户ID将用户表切分到多台数据库上。
优点:
(1)表关联基本能够在数据库端全部
显示全部