基于Infobright的MySQL数据仓库方案测试
Tuesday, February 10th, 2009数据仓库之父Bill Inmon在1991年出版的“Building the Data Warehouse”一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。 上面这段是抄的,简单的讲数据仓库是一个面向主题的、集成的、不可更新的、随时间不断变化的数据集合,它用于支持企业或组织的决策分析处理,这一句也是抄的,更直白的举例就是公司的历史交易数据集合,网站的历史访问数据集合,这一句是原创的。 Infobright是开源的MySQL数据仓库解决方案,引入了列存储方案,高强度的数据压缩,优化的统计计算(类似sum/avg/group by之类),下面是Infobright的架构图: 安装篇: Infobright目前还不支持windows系列操作系统,不过你可以装在Linux虚拟机上,或者从官方直接下载做好的VMWARE虚拟机,这里的测试环境是CentOS 5.2 32bit操作系统。Infobright也不支持以插件的形式集成到已有的MySQL系统中去,官方的说法是对MySQL做了很多修改,不支持以插件的形式使用。 详细的安装参照http://www.infobright.org/wiki/Install_Guide/,需要注意的是如果你的系统中已经有MySQL(默认端口3306),你需要重新设定一下安装参数,比如像我的: ./install-infobright.sh --datadir=/data/infobright/data --cachedir=/data/infobright/cache --port=9527 --config=/etc/my-ib.cnf --socket=/tmp/mysql-ib.sock --user=mysql --group=mysql 配置文件包括MySQL配置文件(/etc/my-ib.cnf)和Infobright配置文件(在安装时候指定的数据目录内,比如/data/infobright/data/brighthouse.ini),如果需要支持MySQL原生的SQL查询,需要修改brighthouse.ini设定 AllowMySQLQueryPath = 1 这样不至于有些SQL语句不能执行,安装完成,启动服务: /etc/init.d/mysqld-ib start 通过命令行:mysql-ib -uroot直接连接,默认密码为空,修改密码: /usr/local/infobright/bin/mysqladmin -u root -p password NEWPASSWORD 测试篇: 测试数据是一个1.5GB大的文本数据,数据格式类似: 用户ID 内容ID 用户打分 765331 3868 5 716091 3868 3 1663216 3868 3 51971 3868 5 在测试数据库中新建两张表,一个为Infobright支持的brighthouse存储引擎,一个为MySQL原生的MyISAM存储引擎,其他内容一致: CREATE TABLE `t_ib` ( `uid` mediumint(9) NOT NULL, `cid` smallint(6) NOT NULL, `rating` tinyint(4) NOT ...