Zdal使用指南
Zdal使用指南1.?? 分库分表概述1.1分库分表的目的? ? ? ?分库分表的主要目的是将数据进行垂直和水平切分,使同一张表的记录可以分散到不同的物理表乃至数据库上,减少单张表的大小,从而提高增删改查的效率。一般来说都会先分库再分表,数据记录先定位到数据库上,再定位到具体的表上。1.2传统的分库分表方式传统的分库分表方式有两种第一种是通过先对分库分表键进行哈希,然后再取模的方式计算出记录所处的库与表的位置,通常应用于无统一顺序号的表,具有良好的负载均衡能力。但当新增设备做水平扩展时,往往需要对数据进行迁移,带来额外的工作量第二种是通过顺序号分段的方式计算出记录所处的库与表的位置,通常应用于有统一顺序号的流水信息,具有比较好的扩展能力。但负载均衡能力较差,多张表时,只能一张表写满之后再写另一张表.2.?? ZDAL系统整体架构?zdal组件主要有5部分组成:1)??????? Zdal-client:开发编程接口,实现jdbc的Datasource,Connection,Statement,PreparedStatement,ResultSet等接口,实现通用的jdbc-sql访问,内部还实现读库重试,group数据源的选择器,表名替换,sql执行器等功能;2)??????? Zdal-parser:支持oracle/mysql/db2等数据库的sql语句解析,并且缓存;根据规则引擎提供的参数列表,在指定的sql中查找到需要的参数,然后返回拆分字段;3)??????? Zdal-rule:根据zdal-parser解析后的拆分字段值来确定逻辑库和物理表名;4)??????? Zdal-data