Infobright列数据库的构架分析

数据库
在这里我们将介绍的是Infobright列数据库的架构知识,包括总体架构图、存储结构等相关知识,希望对大家有所帮助。

51CTO数据库频道之前曾报导过《走进列数据库Infobright的世界》,Infobright的总体构架图如下:

Infobright框架图

如上图所示,Infobright采用了和MySQL一致的构架,分为两层。上层是服务及应用管理,下层是存储引擎。Infobright的默认存储引擎是brighthouse,但是Infobright还可以支持其他的存储引擎,比如MyISAM、MRG_MyISAM、Memory、CSV。Infobright通过三层来组织数据,分别是DP(Data Pack)、DPN(Data Pack Node)、KN(Knowledge Node)。而在这三层之上就是无比强大的知识网络(Knowledge Grid)。

数据块(DP)是存储的***层,列中每64K个单元组成一个DP。DP比列更小,具有更好的压缩比率;又比单个数据单元更大,具有更好的查询性能。

数据块节点(DPN),DPN和DP之间是一对一的关系。DPN记录着每一个DP里面存储和压缩的一些统计数据,包括***值、最小值、null的个数、单元总数count、sum等等。

KN里面存储着指向DP之间或者列之间关系的一些元数据集合,比如值发生的范围(MIin_Max)、列数据之间的关联。大部分的KN数据是装载数据的时候产生的,另外一些事是查询的时候产生。

在这三层之上是知识网络(Knowledge Grid),Knowledge Grid构架是Infobright高性能的重要原因。

知识网络

Knowledge Grid可分为四部分,DPN、Histogram、CMAP、P-2-P。

DPN如上所述。Histogram用来提高数字类型(比如date,time,decimal)的查询的性能。Histogram是装载数据的时候就产生的。DPN中有mix、max,Histogram中把Min-Max分成1024段,如果Mix_Max范围小于1024的话,每一段就是就是一个单独的值。这个时候KN就是一个数值是否在当前段的二进制表示。

Histogram的作用就是快速判断当前DP是否满足查询条件。如上图所示,比如select id from customerInfo where id>50 and id<70。那么很容易就可以得到当前DP不满足条件。所以Histogram对于那种数字限定的查询能够很有效地减少查询DP的数量。

CMAP是针对于文本类型的查询,也是装载数据的时候就产生的。CMAP是统计当前DP内,ASCII在1-64位置出现的情况。如下图所示

统计情况

比如上面的图说明了A在文本的第二个、第三个、第四个位置从来没有出现过。0表示没有出现,1表示出现过。查询中文本的比较归根究底还是按照字节进行比较,所以根据CMAP能够很好地提高文本查询的性能。

Pack-To-Pack是Join操作的时候产生的,它是表示join的两个DP中操作的两个列之间关系的位图,也就是二进制表示的矩阵。

Knowledge Grid还是比较复杂的,里面还有很多细节的东西,可以参考官方的白皮书和Brighthouse: an analytic data warehouse for ad-hoc queries这篇论文。

原文链接:http://blog.chinaunix.net/u2/72637/showart_2306089.html

【编辑推荐】

  1. NoSQL那些事:51CTO带您走进列数据库
  2. 走进列数据库Infobright的世界
  3. 51CTO专访盖国强:NoSQL很火 但还需市场检验
  4. 详解NoSQL数据库使用实例
  5. 云计算时代NoSQL当道 关系数据库日薄西山
责任编辑:彭凡 来源: ChinaUnix
相关推荐

2010-08-26 09:01:27

Infobright

2010-08-26 14:39:54

Infobright数

2010-08-26 16:16:11

Infobright

2021-09-09 09:28:08

面向列数据库面向行

2010-08-26 17:16:19

Infobright

2010-07-16 15:53:19

SQL Server数

2011-03-28 14:29:46

SQL Server数主键列

2016-11-22 23:02:49

2010-05-07 13:14:22

数据库负载均衡

2010-04-28 09:33:13

列存储

2024-03-13 10:40:00

性能探测工具SQL语句数据库

2011-07-12 10:09:08

XML数据库服务器

2010-07-08 15:26:05

SQL Server

2010-07-23 13:39:19

SNS网站

2011-03-01 14:52:31

EXCEL财务分析‚数据库

2010-11-01 13:45:16

DB2数据库的优势

2011-07-12 09:20:08

XML数据库

2015-03-03 14:08:39

Oracle数据库数据库静态分析

2010-04-02 16:03:20

Oracle数据库

2009-11-20 13:29:59

Oracle数据库恢复
点赞
收藏

51CTO技术栈公众号