IQ &DB2 $ORACLE 的比较

原文:

http://www.itpub.net/thread-746828-1-1.html

 

难得有人提到了IQ
我用IQ差不多也有3年多了,简单说一下对IQ的看法。
总的来说,
1
IQ只适合用于OLAP的场景,不适合OLTP场景,尤其对于并发更新的支持尤其的差,
因为sybaseibmoracle策略不同,他的oltpolap分开两个产品线,ase一个(OLTP),
iq
一个(OLAP),所以当存在olapoltp混合压力时ase+IQ是一个做法,
但是个人感觉两者结合并不是太好,
iq
的前端引擎是用的ASA,语法与ase的语法还有些不一致,
两者的数据通道除了互建proxy table外也没什么特别好的办法 。所以,
如果是这类应用,不建议用IQ,而应该选择db2oracle
2
、其实相比较而言,IQ的性价比不错,它可以在比较低配置的机器上,在数据量比较大
的情况下,跑出比较好的效率。我们这里IQ最大的表已经超过100亿,在8cpu 32G内存的
机器上做一些查询,响应时间依然得到很好的保证。
3
IQ有比较强大的索引机制,比如常用的LFHGHNG等索引,bit-wise只是其中一种索引
技术,LF就是bit-wise索引,HG则用的是G-ARRRY的存储方式。这些索引在做条件检索,
group by
时都可以很好的提高效率。
4
IQ稳定性存在问题,早期的版本比如12.6,有时会莫名其妙的down机。主要是因为前端
ASA引擎比较脆弱。原来ASA就是个桌面数据库,所以要支撑商业应用可能有点困难。
最近的主流版本已经到12.7 ESD8了,打上ESD8后,IQ的稳定性大大增强了。但仍不建议
在关键的7*24小时的系统中使用IQ
5
IQ产品成熟度与db2 oracle还是差很多,毕竟是新出来的产品,在一些兼容性问题上可能
没有很好的解决。另外,还有IQ的资料很少,用的人少,当出现问题时,除了
sybase 工程师和自己摸索之外,没有什么办法。这一点远不如db2oracle
6
IQ load是一大特性,尤其是多线程load,速度达到10/秒是没问题的。
7
IQ的数据压缩显然是一个不错的功能,压缩比达到一般能达到1/3左右,在
充分节省空间的同时,还大大减小了IO。这也是下面要说的multiplex得以实现的基础。
8
IQ有一个号称是multiplex的架构,有点类似于oraclerac,不过它只能
有一个write server,其他只能是query server(只能读不能写),最新版本
好像支持多个write server了。它的读一致性
通过other version来实现,有点类似于oracle的回滚段。不过,它的other version占用的
是主数据库空间,由于某些原因如果节点间没有及时通讯,
会发生由于other version过大把数据库空间撑满的的情况,这一点很恶心,我已经深受其害。
所以multipex可以酌情使用,如果要用一定要用,补丁一定要达到127 ESD8以上。

所以IQ做数据集市还是相当不错的,这些集市数据量大,访问并发度低,基本是只读访问。而且
对稳定性要求没有那些实时系统高。iq充分发挥数据压缩,节省空间,对机器和磁盘要求比较低的优势。


如果要做企业级数据仓库,个人推荐还是用teradata
要说海量数据的处理能力teradata绝对是首屈一指的。
我们做过实验,在16个节点的情况下,对一张40亿左右的表做10个维度的group by
结果集为8千多万条记录,插入一张结果空表中,大概需要20分钟左右。
多表join的效率也是很高,一些批处理里经常10多个表join,依然跑得飞快。
teradata
的一个工作单位叫做AMP,当数据分布均匀时,16AMP一起工作的效率是惊人的。
teradata
类似于db2,也是share nothing架构,不过它的强大bynet好像比db2之间的分区间
通讯效率高很多。
teradata
的稳定性也可以,备份机制也很成熟。
最重要的是它有一套成熟的DW方法论和实施团队,这一点远远强于只卖产品的sybase
不过teradata也有缺点:
1
TD只适合做DW不适合做OLTP应用。
2
TD实施成本非常昂贵,不光机器设备卖的贵,而且他的磁盘空间也很紧张,一般只能到65%
,其余空间只能做为spool空间,供多表join时数据重分布使用。实施团队的费用也不低,
如果不是大企业建议还是不要用TD了。
3
TD很大程度依赖规模效应,如果只有一两个节点,还不如不用,一旦形成
规模比如16个,其效率估计其他数据库都比不上了。


所以,我们这边的策略是,OLTPdb2,部门集市用IQEDWteradata
一些OLTP+OLAP的应用就用 db2+IQ的方式,夜间批量通过文件做数据交互。

希望我的回答对楼主有所帮助。

请使用浏览器的分享功能分享到微信等