以下是与“infobright官网”相关的内容
Infobright
Infobright是开源的MySQL数据仓库解决方案,引入了列存储方案,高强度的数据压缩,优化的统计计算(类似sum/avg/groupby之类),infobright是基于mysql的,但不装mysql亦可,因为它本身就自带了一个。mysql可以粗分为逻辑层和物理存储引擎,infobright主要实现的就是一个存储引擎,但因为它自身存储逻辑跟关系型数据库根本不同,所以,它不能像InnoDB那样直接作为插件挂接到mysql,它的逻辑层是mysql的逻辑层加上它自身的优化器。Infobright具有高压缩比率,平均压缩比可达10:1,甚至可以达到40:1,用infobright把3.1G的数据存成不足300M。Infobright采用列存储,即使数据量十分巨大,查询速度也很快。用于数据仓库,处理海量数据没一套可不行。Infobright不需要建索引,就避免了维护索引及索引随着数据膨胀的问题。把每列数据分块压缩存放,每块有知识网格节点记录块内的统计信息,代替索引,加速搜索。单一台服务器可以高效地读写30T数据。具有可扩展性,这里是指对于同样的查询,当数据量是10T时,它耗费的时间不应该比1T数据量时慢太多,基本是一个数量级内。Infobright具有两层结构,上面的逻辑层处理查询逻辑,下面的是存储引擎。逻辑层右端的加载器与卸载器是infobright的数据导入导出模块。由于infobright面向的是海量数据环境,所以这个数据导入导出模块是一个独立的服务,并非直接使用mysql的模块。逻辑层的infobright优化器包在mysql查询优化器的外面。因为它的存储层有一些特殊结构,所以查询优化方式也跟mysql有很大差异。Infobright存储层最底层是一个数据块。每一个数据块都包含了一列的64K个元素,所有数据按照这样的形式打包存储,每一个数据块进行类型相关的压缩(即根据不同数据类型采用不同的压缩算法),压缩比很高。它上层的压缩器与解压缩器就做了这个事情。压缩层再向上就是infobright最重要的概念:知识网格,这也是infobright放弃索引却能应用于大量数据查询的基础。它包含两类结点:每个知识节点)对应于一个数据块,存储该数据块的一些统计信息,如min,max,avg,null的个数,甚至不同值的量等等;知识节点则存储了一些更高级的统计信息,以及与其它表的连接信息,这里面的信息有些是数据载入时已经算好的,有些是随着查询进行而计算的,所以说是具备一定的“智能”的。
www.infobright.org - 2024-02-26 - 收藏