数据仓库领域革命性的产品—Sybase IQ
2007-03-22 21:26:56 来源:WEB开发网索引
Sybase IQ的秘密在于其索引。随着Sybase 客户发现新的分析需求,Sybase可以简捷地建立新的索引以满足这些需求。这种方法的奇妙之处在于为数据仓库增加新的索引几乎不会(即使有也是微乎其微)影响数据仓库的架构或使用仓库的分析型应用。在实时企业与闭环应用领域,Sybase将索引视为在TB数量级(将来)甚至PB数量级数据仓库中获得更高查询性能的关键。今天,Sybase实际上已使用了7种索引机制:
Low Fast 索引——这些是低基数索引,它使用一个被称之为“代号化”的进程。使用该进程,数据被转换为代号,然后存储这些代号而不是数据。这对于减少冗余数据的数量尤其有用。例如,在整个英国拥有大量客户群的公司,将需要存储客户的地址。这将意味着巨大数量的重复的郡的名称。因此,不是保存大量的“班夫郡”的实例,例如,Sybase将会用一个数字代替每个郡的名称。因此,由于班夫郡按照拼音排列在英国是第5个郡(排在Aberdeen,Armagh,Avon与Ayrshire之后)因此,它可能就会被设值为5。如果一个列包含一个数字值,该值自身可以一用于代号化的基础。一旦建立了代号(这是一个自动进行的进程),一个位图索引将被建立以表示这些代号。代号化典型地应用于列数据存在有限数量的可能取值。这也是为什么Sybase称之为低基数索引的原因,典型的,它仅用于不同的取值个数在1500以内的域。
Bit-Wise索引——对于高基数的域,那些取值个数超过1500个(如金额值),Sybase使用其专利的被称之为Bit-Wise索引的技术。这在你希望的范围进行搜索并同时进行计算的情况下,尤为有用,例如,查找销售价格低于50欧元的货品数量及总收入。如同位图的其他变量,该方法的优势之一就是计数(count)查询可以直接通过读取索引获得答案,而无需读取数据。
High Group索引——实际上,它是B-树索引。然而,此处的原则是,用户仅仅在几个列有可能作为一个组来使用的情况下,尤其是高基数与低基数的联合搜索时,才定义这些索引。比如可能有这样的例子,按照商店(低基数)查询产品销售清单与价格(高基数)。
Fast Projection 索引——该索引类型(缺省的)就是列存储本身。如果用户总是打算检索整个列的数据,则列存储事实上意味着列可以直接映射到表或查询中,而无需显示地定义任何索引。这非常有用,例如在“Where”从句中。
Word 索引——这是一个文本索引。它基于关键词或短语字符串搜索。这种类型的索引,在历史上一直没有用于数据仓库中。然而,它有着大量重要的市场,在这些市场上,能够联合定量与定性的分析非常重要。例如,在医疗行业,医生的诊断通常是笔记。为了获取信息,例如发病率,可能必须访问这种非结构化的数据。
Compare索引——这个索引技术允许数据列的比较,从效果上讲,类似于“if…then…else”表达式。例如,“if支出大于收入,then…”。该类型的索引对于在Web应用中实时比较尤其有用。
Join 索引——正如索引的名称所示,它是为消除表连接的需要而设计的。正像大多支持索引的情况,它可能在预先已知的查询需求下更为有用。
Time Analytic 索引——这为基于日期、时间、日期与时间建立索引提供了选项。需要注意的是,对于传统的关系型数据库,处理基于时间的查询尤为困难。
大量扩展工具用以支持在各种情况下使用这些索引。这包括为减少硬盘(或内存——位图可能存在缓冲区中)需求的索引压缩,联合使用不同类型索引的能力,以及使用布尔操作如AND与OR过滤比特队列等。这些特性表明,Sybase IQ克服了传统的位图的缺陷,即不适合于表连接或数据聚合。Sybase IQ在最近发布的版本中增加了一个索引顾问(Index Advisor),这一点尤其令人欢欣:这将建议管理员何时应该增加新的索引以及增加那种类型的索引。
总结
作为数据仓库领域革命性的产品,Sybase IQ最新版本12.7采用了更多创新的技术,这些技术正在被全球越来越多的企业所运用。Gartner2006年的报告认为,Sybase IQ的卓越表现使它逐渐展现出一个市场领导者的风采。
更多精彩
赞助商链接