[转]基于Infobright的MySQL数据仓库方案测试

标签: | 发表时间:2014-02-26 01:12 | 作者:zeo112140
出处:http://blog.csdn.net/zeo112140

数据仓库之父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 NULL
) ENGINE=BRIGHTHOUSE;

CREATE TABLE `t_mis` (
`uid` mediumint(9) NOT NULL,
`cid` smallint(6) NOT NULL,
`rating` tinyint(4) NOT NULL
) ENGINE=MyISAM

将数据load进表:

load data infile ‘path/to/data.txt’ into table table_name;

我们比较一下文件大小:

数据类型      数据大小   
data.txt 1.5GB
data.tar.gz 429MB
MyISAM表 671MB
Infobight表 280MB

超过5:1的压缩比,虽然没有传说中10:1,但数据的大小比tar.gz过还要小近一半,压缩能力可见一斑。

准备进行SQL的测试,不能在BRIGHTHOUSE存储引擎上建索引,因为根本就不需要建,我们在MyISAM引擎表上建立如下索引:

create index id on t_mis(cid);

执行下列SQL语句,查询内容ID大于9527的条目数(为了节省篇幅,略去结果集,只返回执行时间):

mysql> select count(*) from t_mis where cid > 9527;   
1 row in set (41.81 sec)

mysql> select count(*) from t_ib where cid > 9527;
1 row in set (13.66 sec)

Infobright花费的时间只有MyISAM的1/4左右,再测试一下找出被用户打分最多的10条内容:

mysql> select cid from t_mis group by cid order by count(*) desc limit 10;   
10 rows in set (1 min 21.30 sec)

mysql> select cid from t_ib group by cid order by count(*) desc limit 10;
10 rows in set (39.02 sec)

Infobright大概只花费了MyISAM 1/3多一点的时间。再查询一下评价最好的10条内容:

mysql> select cid from t_mis group by cid order by avg(rating) desc limit 10;   
10 rows in set (6 min 16.15 sec)

mysql> select cid from t_ib group by cid order by avg(rating) desc limit 10;
10 rows in set (1 min 1.25 sec)

不到1/6时间。

后记:

强悍的压缩比率,高效的SQL统计性能,Infobright的表现很是不错。对于网站开发者来说,建立一个Infobright数据仓库系统用来 保存网站的历史访问元数据应该是一个不错的选择,尤其是需要 OLAP或者更为灵活的统计功能的时候。

本文出自: http://chaoqun.17348.com/2009/02/infobright-brighthouse-mysql-data-warehouse/

作者:zeo112140 发表于2014-2-25 17:12:04 原文链接
阅读:6 评论:0 查看评论

相关 [infobright mysql 数据仓库] 推荐:

[转]基于Infobright的MySQL数据仓库方案测试

- - 小鸥的博客
简单的讲数据仓库是一个面向主题的、集成的、不可更新的、随时间不断变化的数据集合,它用于支持企业或组织的决策分析处理,这一句也是抄的,更直白 的举例就是公司的历史交易数据集合,网站的历史访问数据集合,这一句是原创的. Infobright是开源的MySQL数据仓库解决方案,引入了 列 存储方案,高强度的数据压缩,优化的统计计算(类似sum/avg/group by之类),下面是Infobright的架构图:.

开源MySQL数据仓库解决方案:Infobright

- - 标点符
Infobright是一款基于独特的专利知识网格技术的列式数据库. Infobright是开源的MySQL数据仓库解决方案,引入了列存储方案,高强度的数据压缩,优化的统计计算(类似sum/avg/group by之类),infobright 是基于mysql的,但不装mysql亦可,因为它本身就自带了一个.

试用mysql的infobright引擎

- - 博客园_首页
     换了新的单位我现在也从oracle从业者变成了mysql从业者,当然放弃oracle的原因主要是因为在新单位可以尽量少的写代码了.      现在我面对的是一个数据仓库,和上一家公司一样,数据仓库最让我们技术人员受不鸟的是数据量太大,存储,I/O,效率都让人想死,每次有些统计分析要求,在清单表里查询简直是让我等到花儿都谢了.

数据仓库中的SQL性能优化(MySQL篇)

- - 奔跑的兔子
做数据仓库的头两年,使用高配置单机 + MySQL的方式来实现所有的计算(包括数据的ETL,以及报表计算. 用过MySQL自带的MYISAM和列存储引擎Infobright. 这篇文章总结了自己和团队在那段时间碰到的一些常见性能问题和解决方案. P.S.如果没有特别指出,下面说的mysql都是指用MYISAM做存储引擎.

数据仓库

- Ran - Linux@SOHU
翻译:马少兵、曾怀东、朱翊然、林业. 尽管服务器存储、处理能力得到有效的提高,以及服务器价格的降低,让人们能够负担起大量的服务器,但是商业软件应用和监控工具快速的增加,还是使得人们被大量的数据所困扰. 在数据仓库领域中的许多系统管理员、应用开发者,以及初级数据库管理员发现,他们正在处理“海量数据”-不管你准备与否-都会有好多不熟悉的术语,概念或工具.

数据仓库概念

- - 互联网 - ITeye博客
数据仓库:是一个数据库环境,它提供用户用于决策支持的当前和历史数据,这些数据在传统的数据库中不方便得到. 特点:面向主题,集成的,相对稳定的,反应历史变化的. 组成:数据仓库的数据库,数据抽取工具,元数据,访问工具,数据集市,数据仓库管理,信息发布系统. 数据挖掘:就是从大量数据中获取有效的,新颖的,潜在有用的,最终可理解的模式的过程.

大数据仓库-kudu

- - 数据库 - ITeye博客
数据仓库里面存储引擎是非常重要的,存储引擎的好坏,基本决定了整个数仓的基础. cloudera公司最近发布了一个kudu存储引擎. 按照cloudera的想法,kudu的出现是为了解决,hbase,parquet不能兼顾分析和更新的需求,所以需要一个新的存储引擎可以同时支持高吞吐的分析应用以及少量更新的应用.

数据仓库的设计与开发

- - 数据库 - ITeye博客
     数据仓库系统的设计与开发. 1)       收集和分析业务需求.   用户需求,管理人员需求. 2)       建立数据模型和数据仓库的物理设计.   概念模型,逻辑模型,物理模型. 3)       定义数据源. 数据源面向应用,不是面向主题,而且数据源之间存在多个不一致的情况,所以必须在已有的系统中定义记录系统(内容正确,在多个数据源间起决定作用的操作型数据源).

oracle数据仓库设计指南

- - 数据库 - ITeye博客
ODS(Operational Data Store)是数据仓库体系结构中的一个可选部分,ODS具备数据仓库的部分特征和OLTP系统的部分特征,它是“面向主题的、集成的、当前或接近当前的、不断变化的”数据.     一般在带有ODS的系统体系结构中,ODS都设计为如下几个作用:. 1 )    在业务系统和数据仓库之间形成一个隔离层.

[原]数据仓库元数据管理

- - oycn2010的专栏
元数据管理, 简单的做就是EXCEL结合版本管理等传统工具管理, 专业点就用专门的元数据管理工具;. 数据字典--> 数据知识库. 业务元数据,技术元数据,管理元数据. 参照:SAP元数据管理平台:按业务(角色)分类,按技术类型分类(特征,关键值,DSO,InfoCube),数据流程图. 按照传统的定义,元数据(Metadata)是关于数据的数据.