Infobright 数据仓库

2022-04-28 00:00:00 查询 数据 文件 目录 记录

据仓库引擎,采用他们自己的Knowledge Grid架构(一直没有明白这两个单词),该引擎采取内部管理自身优化查询的方式,给用户带来更为轻松的体验。我们所要做的就是写出“漂亮”的SQL,后面我会关于SQL语句说点有趣的东西。

 

Infobright像很多的开源软件一样,也都具有两个版本,社区版(ICE)和企业版(IEE),多数情况下,如果免费的能满足我们的实际需求,领导更愿意采用社区版;企业版需要付费,那么自然就会给用户提供更加完善的功能、保证运行的稳定性以及良好的后期服务。下面具体介绍一下Infobright在我的实际环境中的应用。

系统环境:CentOS 5.4 64位、 infobright-3.3.1-x86_64-ice、4G内存、8核CPU

Infobright安装:

在http://www.infobright.org/Download/ICE/下载适合的版本,通常我会下载二进制tar包的版本,解压缩后,按照里面有个叫做README的文件,去一步步操作就可以了,各个参数的介绍里面都有,其中,–datadir和–cachdir这两个安装选项,可以将data目录和cache目录安装到我们制定的目录下。(不是我懒得写,真地,是非常简单!)

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目录。

Infobright实际应用:

我们之所以使用数据仓库,是因为目前MySQL数据库中的数据增长很快,定期会对一些历史记录表进行清除,但后期的统计分析还会用到这些历史数据,随着数据量的增大,查询也越来越慢,而数据库仓库特有的存储格式能够减小磁盘空间内的占用,同时列式的特点使得查询速度大为改观。于是,我们就将数据仓库作为存储历史数据的地方。很多数据库仓库软件,基于数据的压缩比和查询速度考虑,我看上了其中两个Infobright和Infinidb,Infobright的压缩比高(我测试的结果是25:1),但是查询速度慢于Infinidb,Infinidb是所有比较的开源数据仓库中查询速度优的,但是压缩比远不及Infobright。后选择Infobright是因为它锁支持的数据类型更多些,更接近于mysql,更节省磁盘空间,毕竟主要的统计查询还不是在数据仓库上,偶尔的查询一下速度倒不是要求优,但是ICE大的不变用了后你是不能做DM操作的,这点我深有体会,每次如果插入数据有些不合适的地方,需要删除,你只能drop table,然后从新建表和导入数据,麻烦呀。而Infinidb在这方便就让你很开心。

相关文章