第三方引擎应用场景分析--Tokudb,infobright

TokuDB
TokuDB的特色:
• Fractal Tree而不是B-Tree
• 内部结点不仅有指向父子的指针还有Buffer区,数据写入先写buffer区,FIFO结构,写入只需要顺序添加到Buffer区就可返回,后续满时一次性刷新到下面的子树中,
插入数据基本上是一个顺序添加的过程。可轻松应对随机IO,减少空间碎片。
• 出色的压缩性能
• 块大小默认是4MB
• 在线DDL
TokuDB特别适合像 Zabbix 这种高 INSERT,少 UPDATE 的应用场景
TokuDB的Log
•log manager来管理log文件,InnoDB的rotate log效果
•为了并发性能,log在实现上,分: in buffer和out buffer
•支持group commit
•只有redo log ,不压缩,顺序写文件

infobright是开源的MySQL数据仓库解决方案,引入了列存储方案,高强度的数据压缩,优化的统计计算(类似sum/avg/group by之类)。
infobright优点:
1、高压缩比率,平均压缩比可达10:1,甚至可以达到40:1,我用infobright把3.1G的数据存成不足300M。
2、列存储,即使数据量十分巨大,查询速度也很快。用于数据仓库,处理海量数据没一套可不行。
3、不需要建索引,就避免了维护索引及索引随着数据膨胀的问题。把每列数据分块压缩存放,每块有知识网格节点记录块内
的统计信息,代替索引,加速搜索。
4、单一台服务器可以高效地读写30T数据。具有可扩展性,这里是指对于同样的查询,当数据量是10T时,它耗费的时间不应该比
1T数据量时慢太 多,基本是一个数量级内

缺点、限制:--企业版支持dml,在线热备
1.不支持DML
2.不支持多核
3.不支持分布式
loader与unloader是infobright的数据导入导出模块,也即处理SQL语句里LOAD DATA INFILE … 与SELECT … INTO FILE任务
逻辑层的infobright优化器包在mysql查询优化器的外面,因为它的存储层有一些特殊结构,所以查询优化方式也跟 mysql有很大差异
存储层最底层是一个个的Data Pack(数据块)。每一个Pack装着某一列的64K个元素,所有数据按照这样的形式打包存储,
每一个数据块进行类型相关的压缩(即根据不同数据类型采 用不同的压缩算法),压缩比很高。它上层的压缩器与解压缩器就做了这个事情。
Knowledge Grid(知识网格)中包含两类结点
• 每个Data Pack Node(数据包节点)对应于一个Data Pack,存储该Data Pack的一些统计信息,如min, max, avg, null个数、
单元总数count、sum总数等,甚至不同值的量等等;
• KN(Knowledge Node,知识节点)则存储了一些更高级的统计信息,以及与其它表的连接信息,这里面的信息有些是数据载入时已
经算好的,有些是随着查询进行而计算的,所以说是具备一定的“智能”的。

infinidb--列式
一个实际的例子:
tar -zxf <srcfile&get;
cd mysql
./configure --prefix=/usr/local/Calpont/mysql
make
make install

cd ../infinidb
./configure --prefix=/usr/local/Calpont
make
make install
预安装:
/usr/local/Calpont/bin/ post-install
配置:
/usr/local/Calpont/bin/postConfigure
设置别名
. /usr/local/Calpont/bin/calpontAlias
/etc/init.d/infinidb 脚本来启停infinidb
create table caltest (col1 int, col2 int) engine=infinidb
执行cpimport导入数据
/usr/local/Calpont/bin/cpimport calpont caltest caltest.tbl

cpimport 导入的速度非常快,应该是绕过MySQL层,直接通过API写入数据,千万行级数据,一般只需要1分钟左右
语法特性:
1、不支持的语法:insert into .... select ....
ERROR 138 (HY000): The syntax is not supported.
2、不支持的语法:1.05及以前版本不支持子查询
3、infinidb支持事务日志:
InfiniDB事务日志记录了DDL/DML语句和bulk load marker,使用syslog实现
事务日志默认名称是/var/log/Calpont/data/data_mods.log

posted @ 2019-03-20 17:44  春困秋乏夏打盹  阅读(308)  评论(0编辑  收藏  举报