cobar阿里巴巴开源关系型数据分布式处理系统介绍

      

概述

Cobar是关系型数据的分布式处理系统,它可以在分布式的环境下看上去像传统数据库一样为您提供海量数据服务。

  • 产品在阿里巴巴B2B公司已经稳定运行了3年以上。
  • 目前已经接管了3000+个MySQL数据库的schema,为应用提供数据服务。
  • 据最近统计cobar集群目前平均每天处理近50亿次的SQL执行请求。
    

 

1.产品约束

  • 不支持跨库情况下的join、分页、排序、子查询操作。
  • SET语句执行会被忽略,事务和字符集设置除外。
  • 分库情况下,insert语句必须包含拆分字段列名。
  • 分库情况下,update语句不能更新拆分字段的值。
  • 不支持SAVEPOINT操作。
  • 暂时只支持MySQL数据节点。
  • 使用JDBC时,不支持rewriteBatchedStatements=true参数设置(默认为false)。
  • 使用JDBC时,不支持useServerPrepStmts=true参数设置(默认为false)。
  • 使用JDBC时,BLOB, BINARY, VARBINARY字段不能使用setBlob()或setBinaryStream()方法设置参数。

2.功能概述

Cobar是关系型数据的分布式处理系统,它可以在分布式的环境下看上去像传统数据库一样为您提供海量数据服务。

 

 

  • 支持表级别拆分,假如用户有10张表,可以将5张表放在MySQL实例A上,另外5张表放在MySQL实例B上。
  • 支持行级别拆分,用户可以将一张表按行分成多份放置在不同的MySQL实例上。
  • 支持两种拆分方式混合使用,无论用户使用何种拆分方式,Cobar均能够向用户提供一个完整的schema,使拆分对用户透明。
  • 支持后端数据库schema级别的HA机制,一个schema的主备切换不会影响其他schema,用户可以将多个schema部署在同一台MySQL实例上。

Cobar schema的内部逻辑层次图如下:
 

 

 

  • dataSource:数据源,表示一个具体的数据库连接,与一个物理存在的schema一一对应。
  • dataNode:数据节点,由主、备数据源,数据源的HA以及连接池共同组成,可以将一个dataNode理解为一个分库。
  • table:表,包括拆分表(如tb1,tb2)和非拆分表。
  • tableRule:路由规则,用于判断SQL语句被路由到具体哪些datanode执行。
  • schema:cobar可以定义包含拆分表的schema(如schema1),也可以定义无拆分表的schema(如schema2)。
  • 以上层次关系具有较强的灵活性,用户可以将表自由放置不同的datanode,也可将不同的datasource放置在同一MySQL实例上。

 

     觉得这个项目不错,不少场景都适用,所以收录了下来,感兴趣的朋友可以访问阿里的开源项目网址:http://code.alibabatech.com/wiki/display/cobar/Home

 

你可能感兴趣的:(分布式,cobar)