INFOBRIGHT介绍
在这里,我将结合我自己的使用以及对开源数据仓库的了解,INFOBRIGHT做下简单的介绍。
INFOBRIGHT产品分为社区版ICE和企业版IEE。相信大家对ICE都有很多的了解。ICE具备了INFOBRIGHT大部分的功能,我列举如下:
1. 超高的压缩比例。 普通10:1, 在极限情况下可以达到40:1 甚至更高。
2. 超强劲的数据导入性能。 ICE 有自己专业的数据导入工具BHLOADER, 不过受到了一些限制,比如不能利用到多核导入。
3. 超强的数据查询能力。 特别适合对于数据统计以及报表生成类得查询。
4. 超大的单表存放规模。 正是因为第一点,超强的压缩比,所以可以存放大量的数据, 节约了磁盘的存储,大大节省了成本。
5. 申请了专利的知识网格体系,这点是其他开源数据仓库哪怕是商业的数据仓库产品所没有的。
6. 与主要的BI分析工具的兼容性。 比如Pentaho等等。 但是除了以上的优点外, ICE 有以下的限制:
1. 不支持数据更新。 这个限制对于我们即要求查询性能外还要对数据库进行写入的需求, 造成了很大的不变。 这个估计是很多人试用后放弃试用ICE的第一个原因。
2. 不支持对多核的使用。 不但不支持查询的多并发,而且连导入导出也没有这样的支持。这个也是放弃ICE的一个原因。 谁也不愿意自己的强劲的硬件只能被用到1%,这样也会被老板给骂死的,他的钱不能白白的被这样折腾。
3. 只能单机使用,不具备任何的复制以及扩展。 这点对于我们现在的大规模海量数据情何以堪那?
所幸的是, INFOBRIGHT提供了商业版本IEE。IEE支持ICE的所有优点,并且弥补了他的不足, 放宽了对他的限制。 特别是早新的版本4.0.x里面提供了一套令人更加兴奋的工具:DLP---分布式数据导入工具。 DLP 优点如下:
1. 减轻了数据库服务器的负载,使它能处理更多的请求。
2. 对应用完全透明, 不用编写额外的代码来处理复杂的导入工作。
3. 数据库的导入时间随着DLP部署的机器的增多二线性减少。当然,这些机器可以是非常廉价的PC服务器,也可以是旧的机器。节省了大量的成本。
4. 减少了对网络带宽的占用。 DLP在导入之前对原始数据已经进行了高效的压缩。 安装
rpm -i infobright-migrator-1.0-x86_64-eval.rpm rpm -i infobright-4.5.0-4-x86_64-eval.rpm rpm -i infobright-dlp-1.4-x86_64-iee.rpm
默认参数如下:
[plain] view plain copy print?
1. 2. 3. 4. 5. 6.
Current config file: [/etc/my-ib.cnf]
Current brighthouse.ini file: [/usr/local/infobright-4.5.0-x86_64/data/brigh
thouse.ini]
Current datadir: [/usr/local/infobright-4.5.0-x86_64/data]
Current CacheFolder in brighthouse.ini file: [/usr/local/infobright-4.5.0-x8
6_64/cache]
Current socket: [/tmp/mysql-ib.sock] Current port: [5029]
可以改变默认参数
/usr/local/infobright/postconfig.sh
它是用来改变安装的datadir,CacheFolder, socket和port的 把认证文件 iblicense-*.lic 放到 /usr/local/infobright/ 目录下
开启或者关闭服务的命令:
/etc/init.d/mysqld-ib start /etc/init.d/mysqld-ib stop
连接
/usr/bin/mysql-ib 卸载infobright的命令:
rpm -e infobright
设置root密码
/usr/local/infobright/bin/mysqladmin -u root password 'pass' 允许远程客户端通过root登录infobright # mysql-ib -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'pass' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
DLP工具所在目录
/opt/infobright/tools/distributed-load-processor 在插表时遇到
ERROR 1070 (42000): Too many key parts specified; max 0 parts allowed 是因为有索引导致的,去掉索引就可以了,BRIGHTHOUSE存储引擎建表时不能有AUTO_INCREMENT自增、unsigned无符号、unique唯一、主键PRIMARY KEY、索引KEY。
Infobright目录结构:/data/infobright/
解压后,你会发现这不就是一个MySQL吗,infobright-3.3.1是集成于mysql-5.1.40,很自然的就会把infobright理解成MySQL的一个特殊引擎,这又进一步体现出MySQL具有可插拔引擎接口的特点。 cache目录:README里面说是临时文件生成和存放地,但是我一直没有看到里面有文件按出现。 data目录:
bh.err —— 错误日志这个和MySQ记录启动关闭信息以及一些错误和警告提示,但在infobright中它还有一个特殊的任务就是记录执行计划,因为 infobright没有explain/profile这样的工具。
brighthouse.ini —— infobright的配置文件,里面有使用内存大小的分配规则、选择是否开启执行计划记录功能等。
brighthouse.log —— 这个日志中记录了infobright引擎启动和关闭操作,已经我们在导入数据是遇到的错误。
brighthouse.seq —— 这个文件中记录的数字我也不是很理解;查了下,说是被使用的最大的表的号码。我的那个文件里面是708,在BH_RSI_Repository中,可以找到这样的数字,但是我没有看到708,最大的那个数字就是707。
general_query.log —— 这个和MySQL中的那个什么都能记录下来的日志一样。
slow_query.log —— 慢查询日志,里面有那个用户在什么时间那条语句的执行时间和锁消耗的时间。 BH_RSI_Repository子目录:里面都是rsi文件,似乎和Knowledge Grid相关,一类是HIST开头的,一类是CMAP开头的。
相关数据库子目录:里面分别是对应各个表的frm文件,和bht目录。
/usr/local/infobright/bin/mysqldump 备份脚本
一旦有数据插入就会执行多条类似这样的语句:
/usr/local/infobright-4.5.0-x86_64/bin/bhloader bhload-info-13499-1463118653-17607 /tmp/bhload-info-13499-1463118653-17607
因篇幅问题不能全部显示,请点此查看更多更全内容