infobright是一款基于MySQL的数据仓库,它采用列式存储,压缩比高,查询速度快。
infobright提供社区(ICE)和商业(IEE)两个版本,ICE版本不支持DML,无法执行insert、update、delete和alter操作。
在工作中,我们每天会通过hadoop统计出前一天全站每个页面的PV和UV,约有数几千万条记录。我们使用infobright来存储这些数据并提供快速查询。
安装
在Linux 64位系统中,下载infobright-4.0.7-0-x86_64-ice.rpm,执行以下语句进行安装:
rpm -ivh infobright-4.0.7-0-x86_64-ice.rpm
infobright默认安装在/usr/local/infobright-4.0.7-x86_64,执行该目录下的postconfig.sh可以修改相关配置,默认配置如下所示:
Current config file: [/etc/my-ib.cnf]
Current brighthouse.ini file: [/usr/local/infobright-4.0.7-x86_64/data/brighthouse.ini]
Current datadir: [/usr/local/infobright-4.0.7-x86_64/data]
Current CacheFolder in brighthouse.ini file: [/usr/local/infobright-4.0.7-x86_64/cache]
Current socket: [/tmp/mysql-ib.sock]
Current port: [5029]
修改相关配置后,执行以下语句启动服务:
/usr/local/infobright-4.0.7-x86_64/bin/mysqld_safe &
使用
创建表
1 | create table if not exists url_stat_20141117 ( |
infobright的存储引擎为BRIGHTHOUSE。
装载数据
hadoop统计前一天全站每个页面的PV和UV,统计结果存储在文件中,每行包含7列,每列使用“\t”分隔,并且与表字段一一对应。
原始文件大小一般接近10G,使用以下语句加载数据至infobright:1
load data infile '/opt/data/url_stat_20141117.txt' into table url_stat_20141117 fields terminated by '\t' enclosed by 'NULL' lines terminated by '\n';
对于表url_stat_20141117,infobright在data目录下使用文件url_stat_20141117.frm保存schema信息,使用目录url_stat_20141117.bht保存数据。装载数据后,url_stat_20141117.bht中的文件总大小约为1.3G,与原始文件相比,压缩比接近10:1。表中记录约有7000多万条。