2009年11月26日星期四

Infobright



ICE (InfoBright Community Edition)
Features:
  • Data : SQL-92,加SQL-99的扩展,对视图和存贮过程的全支持
  • 灵活的模式支持
  • 业界标准的接口 : ODBC,JDBC,及原生的连接方式
  • API : C/C++,C#, Java(及原生的java驱动实现),Perl, PHP,Python,Ruby...
  • 并发的用户: 500个用户,32个并发查询
  • 操作系统: WindowsXP(32-bits), RHEL5(64b), Debian(64b), CentOS5(64b), Fedora9(32b), Ubuntu8.04(32b)
  • 处理器:AMD 和Intel x86, 推荐16G RAM
  • 高性能的数据装载器:一个定制装载器,跨多表的并发处理

好处:
  • 小的数据尺寸: ICE的压缩率为10:1
  • 高的扩展能力: 到50TB,(压缩后5T)单个服务器
  • Column-Based
  • 采用现成的硬件
  • 简单的管理: 利用MySQL的管理工具,并包括在ICE中了.
  • 低维护:自动管理知识节点
  • 装载即运行(Load and Go) : 用你现有的Schema不要物理视图,数据分区和索引的实现.
  • 支持装载格式: 可以装载文本文件
  • BI灵活:与MySQL集成,可以通过它受BI工具的支持,如Cognos, Business Object, SAS, Pentaho, JasperSoft, MicroStrategy.
IB的Architectrue的好处:
  • 理想的数据卷大小到30TB
  • 市场上领先的数据压缩技术(10:1到超过40:1),极大的减小了IO及存贮
  • 无许可证费
  • 对复杂分析查询的响应
  • 查询和装载时间在DB增长时保持不变
  • 不需要特别的Schema
  • 不需要物理视图,分区策略,或索引
  • 简单的建立和管理
  • 减少DW(data warehouse的成本)通过减少服务器的数量,还有总控的花费
  • 运行在低成本的现成的硬件上
  • 兼容BI工具 : Actuate, ...

IB的Architecture

  • Column Orientation
  • Data packs和Data pack 节点
三个层面:
Data Packs : 一个列中65536个项目被组在一起称为Data Packs. Data Packs改善了压缩率,因为可以根据数据类型提供压缩算法
Data Pack Node(DPNs) : 包含一个静态统计信息针对一个DP,DPN总是存在,这区别于传统数据库的索引
Knownledge Node (知识节点),是一个元数据集有关于DP或列之间的关系. 描述值的发生范围,也可描述与其它DB中数据的关系. 用于复杂的多表查询,如表联接,子查询(sub-queries)大多数都是在装载时创建,也有在响应时创建来优化性能.

  • 知识节点和知识网格
DPN与KN组了Knowledge Grid. 与索引不同的是它们不是手工产生的,而是自动生成,从根本上说,它们建立了DB高层次的视图
    • 优化器


    如何不用索引进行复杂的分析查询
    1) 利用DPNs(一些统计信息),如对于整型的列数据来说,一个DP有64k个数据项,对应的DPN就记录了这些数据项的最大值,最小值,及总和.有了这些数据在查询中,如果用对这列比大小的条件查询就可以区分出三类的DP
    i) 相关的DP, DP内的数据全部落在条件以内,(因此要对这个DP解压缩数据)
    ii)不相关的DP, DP内的数据全部落在条件以外(,因此可以忽略这个DP)
    iii)不确定的DP, DP内的数据部分落在条件以内(,因此要对这个DP解压缩)
    分析出三类DP后可以对特定的DP解压缩再分检其中的数据


    DPN可以针对不同数据类型,提供一些扩展的统计信息,如对于字母数字的数据类型,提供特定的字符在特定的位置出现的次数.
    左边是一个DPN的例子,说明一个表T有两列A,B,共有64k * 5条以内的记录
    也就是对于A,B各有5个DP及对应的DPN.对于DP A1(A列的第一个Pack, 共64k记录),DPN中记下它其中的最小值是0,最大值是5,总合(SUM)是10000.

    KN的例子是如有如下查询
    SELECT MAX(X.D) FROM T JOIN X ON T.B = X.C WHERE T.A > 6;

    其中T即上述的T表, X是另一个表,有两个整型列C,D,共64k*3以内的记录,也就是说有DP C1~C3, D1~D3.
    对其中条件T.B=X.C,可以利用DPN生成如下结果,称为KN


    这说明了一个关系,T.B和X.C有相等可能两个DP之间是标的1,否则是0.这是通过比较DPN中最大值最小值得出的结论.

    • 数据压缩
    用了空值Mask,(估计)有一个8k的位图,来表示某个DP中的值是空的.InfoBrigth有一套数据类型对应的压缩算法(专利申请中)

    InfoBright如何利用MySQL
    InfoBright实现了MySQL中的数据存贮引擎,如(MyISAM,InnoDB)等.



    InfoBright采用的是Rough Set Mathematics做为基础
    2000年时一个波兰数学家的团队开始改进Rough Set理论,研究出一个既有精度又有概算的灵活性的混合方法.他们总结了以上的思想 产生出一个新数据库引擎,2005开了InfoBright公司.



    没有评论:

    发表评论