【infobright介绍】Infobright是一个基于MySQL开发的开源数据仓库(Data Warehouse)软件,可作为MySQL的一个存储引擎来使用,SELECT查询与普通MySQL无区别。
优点:
查询性能高:百万、千万、亿级记录数条件下,同等的SELECT查询语句,速度比MyISAM、InnoDB等普通的MySQL存储引擎快5~60倍
存储数据量大:TB级数据大小,几十亿条记录
高压缩比:在我们的项目中为18:1,极大地节省了数据存储空间
基于列存储:无需建索引,无需分区
适合复杂的分析性SQL查询:SUM, COUNT, AVG, GROUP BY
限制:
不支持数据更新:社区版Infobright只能使用“LOAD DATA INFILE”的方式导入数据,不支持INSERT、UPDATE、DELETE
不支持高并发:只能支持10-18多个并发查询
infobright网站及下载地址
http://www.infobright.org
该软件官方分为社区版ice,和付费企业版iee
本文以3.3.1的linux 64位版本做安装及测试。
【安装infobright】
//新建一个mysql用户,用于运行infobright
]# groupadd mysql
]# useradd -g mysql mysql
]# tar zxvf ./infobright-3.3.1-x86_64-ice.tar.gz
]# cp -R ./infobright-3.3.1-x86_64 /usr/local/infobright
]# cd /usr/local/infobright
]# ./install-infobright.sh --datadir=/usr/local/infobright/mysqldata/ --cachedir=/usr/local/infobright/cache/ --config=/usr/local/infobright/etc/my.cnf --port=33066 --socket=/tmp/mysql33066.sock --user=mysql --group=mysql
install说明:
所以参数目录值不需要新建,因为install会自动创建这些目录;
--datadir,设置数据文件目录
--cachedir,设置缓存文件目录
--config,设置配置文件目录
--port,设置该服务实例的端口
--socket,若不准备使用TCP/IP方式连接MYSQL-INFOBRIGHT服务,则设置该项使用socket连接。socket连接可在my.cnf内设置。
--user,服务运行用户
--group,服务运行用户组
继续安装:
* 提示Press R -Read license agreement, N -Exit the installation [R/N]:
选择R,空格翻页到页尾,看到以下提示时,选择Q继续安装
* 提示Press Y -I agree, Any other key -I do not agree [Y/*]:
选择Y同意
* 再会提示是否在线注册
选择N不注册
安装完成!!
【配置infobright】
编辑datadir目录中的brighthouse.ini
]# vi /usr/local/mysqldata/brighthouse.ini
根据自身的物理内存大小修改ServerMainHeapSize、ServerCompressedHeapSize、LoaderMainHeapSize的值,可看文件内参考
【启动infobright】
socket方式启动:/usr/local/infobright/bin/mysql -u root -p -S /tmp/mysql33066.sock
TCP/IP方式启动:/usr/local/infobright/bin/mysql -u root -p
创建一个新用户,且能本地和远程访问,因为用以测试所以直接配置为全网可访问。但若要全网访问,则不可用socket启动。
本地权限用户
mysql>GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY '12345678';
mysql>GRANT ALL PRIVILEGES ON *.* TO 'admin'@'127.0.0.1' IDENTIFIED BY '12345678';
全网权限用户,便于远程管理测试
mysql>GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY '12345678';
【数据导出导入】
infobright的建表,需要将engine项改为 ENGINE=BRIGHTHOUSE
注意BRIGHTHOUSE存储引擎建表时不能有AUTO_INCREMENT自增、unsigned无符号、unique唯一、主键PRIMARY KEY、索引KEY。
且BRIGHTHOUSE存储引擎建表后无法使用alter功能,因此,建表必须一次性创建好。后面若要修改,则要全表数据导出导入操作。
导出示例:从普通的MYSQL服务器导出数据至CSV,供于infobright服务器导入。假定用户密码为admin,12345678
]# mysql -u admin -p12345678 -D stchnew -e "select * from un_pccount into outfile '/root/un_pccount.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\' LINES TERMINATED BY 'n';"
注:若MYSQL服务器安装在WINDOWS服务器时,需要将“ESCAPED BY '\'”改为“ESCAPED BY '\\'”。
导入示例:从CSV文件导入数据至 infobright服务器。
]# mysql -u admin -p12345678 -D stchnew --skip-column-names -e "LOAD DATA INFILE '/root/un_pccount.csv' INTO TABLE un_pccount FIELDS TERMINATED BY ',' ESCAPED BY '\' LINES TERMINATED BY 'n';"