主题:【原创】数据仓库软件的评测心得 -- 河蚌
传统的数据库软件,包括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操作无法做,那就只能说是功能缺失了。
- 相关回复 上下关系8
🙂InfiniBand 不是老陈 字150 2010-11-04 09:39:38
🙂呵呵,只能说你的要求很变态。 1 河蚌 字393 2010-11-03 21:05:39
🙂止不住的落泪 1 止不住的落泪 字86 2010-11-02 19:13:48
🙂这个是说如果有数据仓库软件的话,就测试这些方面
🙂软硬件一体现在是大势所趋了 小乌龙 字139 2010-11-24 23:51:40
🙂看来要从软件架构上考虑 2 代码ABC 字700 2010-11-09 11:37:10
🙂我想你理解的数据仓库和我的有偏差 3 河蚌 字1423 2010-11-10 02:10:14
🙂过去的那些小型机 不是老陈 字213 2010-11-04 09:45:46