简介:
Infobright是基于专利技术的列式数据库,一个基于MySQL开发的开源数据仓库(Data Warehouse)软件,可作为MySQL的一个存储引擎来使用,SELECT查询与普通MySQL无区别。
一、几大优点:
1、高压缩比率,平均压缩比可达10:1。(经测试,我们的1500万条697M日志数据压缩比例为6:1,压缩后数据大小仅为114M)
2、列存储,即使数据量十分巨大,查询速度也很快。(经测试,一条在infobright中的复合查询要30秒,在mysql中要一分多)
3、不需要建索引,就避免了维护索引及索引随着数据膨胀的问题。把每列数据分块压缩存放,每块有知识网格节点记录块内的统计信息,代替索引,加速搜索。
4、单一台服务器可以高效地读写30T数据。具有可扩展性,这里是指对于同样的查询,当数据量是10T时,它耗费的时间不应该比1T数据量时慢太多,基本是一个数量级内。
注:实际上infobright取一条记录比mysql要慢很多,但它取100W条记录会比mysql快。所以比较适用于日志、或汇总的大量的数据。
二、infobright限制
1、不支持数据更新:社区版Infobright只能使用“LOAD DATA INFILE”的方式导入数据,不支持INSERT、UPDATE、DELETE
2、不支持高并发:只能支持10-18多个并发查询
安装依赖软件:
1、boost
wget http://ncu.dl.sourceforge.net/project/boost/boost/1.49.0/boost_1_49_0.tar.gz
#tar zxvf boost_1_49_0.tar.gz
#./bootstrap.sh --prefix=/usr/local/boost_1_49_0
#./bjam install
#export BOOST_ROOT=/usr/local/boost_1_49_0
2、ncurses
yum -y install ncurses ncurses-devel
infobright安装:
下载地址 https://www.infobright.org/downloads/ice/infobright-4.0.7-0-src-ice.tar.gz
cd infobright-4.0.7 make PREFIX=/usr/local/infobright EDITION=community release make PREFIX=/usr/local/infobright EDITION=community install-release mkdir /usr/local/infobright/conf /usr/local/infobright/data /usr/local/infobright/logs chown -R mysql.mysql /usr/local/infobright/data /usr/local/infobright/logs cp src/build/pkgmt/my-ib.cnf /usr/local/infobright/conf/my-ib.cnf /usr/local/infobright/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/infobright/data --user=mysql
修改my-ib.cnf
basedir = /usr/local/infobright datadir = /usr/local/infobright/data log-error = /usr/local/infobright/logs/bh.err
启动ib实例
cd /usr/local/infobright bin/mysqld_safe --defaults-file=conf/my-ib.cnf --user=mysql > /dev/null 2>&1 &
初始化ib实例的密码
/usr/local/infobright/bin/mysqladmin -u root password "123456"
因为使用的ICE社区版本,所以只能使用IB loader导入数据(其实就是只支持csv文件手工导入数据)。
注意:create table t () engine=brighthouse xxx;
创建表时,表的引擎要使用【brighthouse】,这样才会使用到ib仓库的特性(因为infobright-4.0.7带得有myisam、memory等mysql存储引擎,如果不指定,有可能使用到其他引擎)
示例如下,假设csv数据文件为data.csv
bin/mysql -u root -p123456 load data infile "/root/data.csv" into table t_data fields terminated by ‘,‘ enclosed by ‘"‘ escaped by ‘\‘ lines terminated by ‘\n‘;
数据导入成功后,就可以在ib中对数据进行sum、avg、group by等数据挖掘操作了。
原文地址:http://smileyouth.blog.51cto.com/7273768/1604842