infobright 安装与配置详细教程

转自:http://blog.51cto.com/phpqinsir/1030591

Infobright是一个基于独特的专利知识网格技术的列式数据库,能够降低您90%的管理工作量。使用Infobright不需要创建特殊的数据库模式,无需创建和维护索引,无需对数据进行分区,甚至不需要手动调整,知识网格就会在原始数据导入时,自动创建和维护数据,并用以优化每一个查询。在一台PC服务器上,Infobright企业版在对50TB甚至更多数据量进行多并发复杂查询时,能够显示出令人惊叹的速度,相比于MySQL,其查询速度提升了数倍甚至数十倍。在同类产品中,Infobright的单机性能处于领先地位。

Infobright是一个与MySQL集成的开源数据仓库(Data Warehouse)软件,可作为MySQL的一个存储引擎来使用,SELECT查询与普通MySQL无区别。

一、Infobright的基本特征:
优点:
查询性能高:百万、千万、亿级记录数条件下,同等的SELECT查询语句,速度比MyISAM、InnoDB等普通的MySQL存储引擎快5~60倍。
存储数据量大:TB级数据大小,几十亿条记录。
高压缩比:在我们的项目中为18:1,极大地节省了数据存储空间。
基于列存储:无需建索引,无需分区。
适合复杂的分析性SQL查询:SUM, COUNT, AVG, GROUP BY。

限制:
不支持数据更新:社区版Infobright只能使用“LOAD DATA INFILE”的方式导入数据,不支持INSERT、UPDATE、DELETE。
不支持高并发:只能支持10多个并发查询。

二、Infobright 安装与基本用法:
1、以前的版本没有提供rpm包,现在针对red hat 系列产品提供了rpm的安装包。

cd /usr/local/src wget http://www.infobright.org/downloads/ice/infobright-4.0.7-0-x86_64-ice.rpm rpm -i infobright-4.0.7-0-x86_64-ice.rpm
这样就下载安装OK了。

官方下载地址:http://www.infobright.org/Download/ICE/

我的centos 系统是64位的,所以,下载的是64位的infobright社区版本。企业版本是要收费的,而且费用很昂贵。

如果,你不知道自己的centos是否已经安装,可以通过如下命令来检测:

rpm -qa|grep infobright
或者:

rpm -q infobright
通过以上方式是默认的安装。作为学习研究,我们肯定不希望默认安装。希望,能更改软件的安装位置。比如,将infobright安装到/opt/infobrgiht 目录下面。那么可以在安装的时候通过如下命令实现:

rpm -ivh infobright-4.0.7-0-x86_64-ice.rpm --prefix=/opt/infobright
注意:不要把ICE安装在root或者home目录下面,可能会和mysql引起冲突。

2、相关的配置文件路径
默认安装情况下相关配置文件位置如下:

配置文件: [/etc/my-ib.cnf] brighthouse.ini文件: [/usr/local/infobright-4.0.7-x86_64/data/brighthouse.ini] 数据存放目录datadir: [/usr/local/infobright-4.0.7-x86_64/data] 缓存目录CacheFolder: [/usr/local/infobright-4.0.7-x86_64/cache] socket位置: [/tmp/mysql-ib.sock] port端口: [5029]
可以通过执行如下程序来设置以上配置:

/usr/local/infobright/postconfig.sh
然后,根据提示来进行更改配置吧。

注意:这个脚本的运行必须保证infobright没有运行。

3、启动和停止
启动命令:

/etc/init.d/mysqld-ib start
停止命令:

/etc/init.d/mysqld-ib stop
4、卸载
有时候配置出错,又或者学习使用,可能会遇到卸载的情况。命令如下:

rpm -e infobright
5、配置infobright

vi /usr/local/infobright/data/brighthouse.ini
ServerMainHeapSize为IB所使用内存的最大值(不包括bh_loader),如果是专用DB服务器,可适当调大,保证在业务最高峰,系统swap交换不高即可。

LoaderMainHeapSize由于是列式存储,IB需要将多行数据各列数据组合后写入数据块,如果导入表的列数很多,字段很长,将该值调高,加快导入速率(导入前set autocommit=0,完成后commit+复原,可大幅提高导入效率)。

ControlMessages 为IB错误日志记录类型,实验环境设为4有利于排错,成熟的生产环境设为2或3即可。

KNFolder 为知识网格所在目录,通常情况下大小都很小,直接放在data目录下即可。

根据自身的物理内存大小修改ServerMainHeapSize、ServerCompressedHeapSize、LoaderMainHeapSize的值,有参考:

############ Critical Memory Settings ############ # System Memory Server Main Heap Size Server Compressed Heap Size Loader Main Heap Size # 32GB 24000 4000 800 # 16GB 10000 1000 800 # 8GB 4000 500 800 # 4GB 1300 400 400 # 2GB 600 250 320
6、进入infobright
infobright是以MYSQL存储引擎方式运行的。按照以往MYSQL存储引擎必须配置MYSQL才能使用。但是,infobright 不需要。默认自带了MYSQL主程序。通过以下命令即可进入infobright的操作界面:

mysql-ib
这个时候,我们为infobright分配一个能远程连接的账号,如下:

GRANT ALL PRIVILEGES ON . TO ‘admin’@’%’ IDENTIFIED BY ‘12345678’;
这样,我们就可以通过MYSQL的客户端程序,只需要装端口号修改为infobright的默认端口5029即可连接infobright仓库了。

7、创建一个Infobright表
请注意与MYSQL的其他存储引擎的区别。

DROP TABLE IF EXISTS divination; CREATE TABLE divination( id int(10) NOT NULL COMMENT ‘主键’, ip varchar(15) NOT NULL COMMENT ‘访问IP’ )ENGINE = BRIGHTHOUSE DEFAULT CHARSET utf8 COMMENT ‘用户访问记录’;
注:BRIGHTHOUSE存储引擎建表时不能有AUTO_INCREMENT自增、unsigned无符号、unique唯一、主键PRIMARY KEY、索引KEY。

8、其他
因为我们只能安装infobright的社区版ICE,IEE是企业版,收费的,挺贵。所以,这个ICE社区版只能通过 LOAD DATA INFILE 导入数据。不支持:INSERT、UPDATE、DELETE。不支持高并发,所以这个只能作为线下数据分析。不能作为线上的对外的一个高并发的解决方案。

你可能感兴趣的:(开源)