西西河

主题:【原创】数据仓库软件的评测心得 -- 河蚌

共:💬58 🌺197
全看分页树展 · 主题 跟帖
家园 这个是说如果有数据仓库软件的话,就测试这些方面

传统的数据库软件,包括DB2、Oracle、Sybase、Informix,是支持各种平台(主要是UNIX和WIN),SQLServer只支持WIN平台,所以不列进来。这些数据库,因为要支持并发交易,要保证事务的完整性,因此大规模数据处理的速度就比较低,一般到亿级就达到瓶颈了,使用再好的硬件也没有(比如RS/6000 595),而数据仓库则是放弃了并发交易需要的那些机制,因此速度可以快很多。

我们测试的数据仓库软件,3000万数据导入一般在2分钟左右,8000万在7分钟,1.5亿条要24分钟,3亿条要55分钟左右。硬件是3台PC服务,一台是主机,两台数据机,服务器都是32G内存,硬盘是4T。

这个比传统数据库在RS/6000 595上的测试性能还要高很多(用传统数据库的快速导数工具)。而且这只是导入,如果是检索和汇总,那差别就更明显了。

其实性能测试是蛮好的,可惜问题出在对SQL的支持。

数据仓库一般都会采用分布式数据库架构,采用share nothing的理念,即一条SQL放进去,主机再发给各数据机,然后各数据机不需要任何交互,各做各的,然后将结果返回来就行。

这种理念对于向google这样的固定关键字检索是一点问题也没有,但是share nothing的理念对于复杂应用是很有问题的。这种架构肯定不能支持NOT IN,NOT EXIST,而且限制WHERE子句中IN操作的字段必须是用来做数据分区的键字。

可这就是问题所在,应用上不用not in ,not exist这个可以忍受,但是非分区键字的in这个应用中太广泛,不可能不用。其实除非是某一个专业领域,比如文档检索,象企业的商业智能应用,里面汇总、钻取、检索之类的应用多了去了,而且大多数表并不是海量的,比如参数表,其实就是几条或者几十条数据,但是数据仓库如果说连这种小表也是分布结构,因此造成普通的SQL操作无法做,那就只能说是功能缺失了。

通宝推:响马,
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河