南大通用GBase8a数据库是一款列存储的,专门用于统计分析,存储海量数据的数据库。
oracle、db2、sqlserver等都是传统行式存储,用于事物型处理的,所以,在海量数据查询方面,不占优势。
GBase8a与传统数据库相比,为客户直接能做到:
1、降低硬件成本
GBase8a不需要小型机、磁盘阵列等高端硬件,普通的Pc Server即可,同时数据存放采用压缩方式,节省了硬盘空间。
2、减少数据库维护
GBase8a独创的智能模糊索引,以及数据包即索引的机制,完全不需要用手工维护索引。
3、双向并行技术
实现多CPU同时工作,可以实现并行加载和查询功能,降低ETL时间。
4、大幅提高查询性能
由于是列存储,再加上GBase8a的高效自适应压缩,常见数据统计已存入数据包中,所以查询时性能很高。
5、内置全文检索功能
全单字索引方式,适合面向海量数据的检索查询应用。
我自己在笔记本上用VMware9做虚拟机测试,想比较下两者的差距,结果是GBase8a的查询效率比Oracle11g普遍快3~5倍以上!
以下是测试情况介绍:
[测试条件]
两台虚拟机都是4核cpu,2G内存,硬盘受限于笔记本
操作系统:
GBase8a使用RHEL6.2 Server
Oracle11g使用Oracle的Linux Server 6
数据库版本:
GBase8a版本是8.5.1
Oracle版本是11.2
客户端:
JDBC连接,DbVisualizer9
[测试用例]
业界常用的SSBM案例,即5张表做星型模型,其中:
1、lineorder 订单事实表,600多万条记录
2、customer 客户维表,6万条记录
3、part 部件维表,20万条记录
4、dwdate 日期维表,2556条记录
5、supplier 供应商维表,1万条记录
[测试方法]
GBase8a与Oracle11g先后各执行13条sql查询,分冷数据(第一次查询)和热数据(第二次查询)查询,并记录各自花费的时间。
[测试结果]
查询性能对比如下表:
|
冷数据 | 热数据 | ||
sql | 8a | oracle11g | 8a | oracle11g |
1 | 0.294s | 0.834s | 0s | 0.544s |
2 | 0.078s | 0.565s | 0s | 0.531s |
3 | 0.107s | 0.541s | 0s | 0.717s |
4 | 1.938s | 1.603s | 0s | 0.899s |
5 | 0.647s | 0.853s | 0.018s | 0.828s |
6 | 0.543s | 0.730s | 0.005s | 0.723s |
7 | 1.377s | 1.481s | 0.002s | 1.488s |
8 | 0.777s | 0.797s | 0s | 0.8s |
9 | 0.552s | 0.882s | 0s | 0.761s |
10 | 0.12s | 0.722s | 0s | 0.691s |
11 | 1.46s | 1.449s | 0s | 1.551s |
12 | 0.699s | 1.134s | 0.004s | 1.137s |
13 | 0.306s | 0.928s | 0.008s | 0.871s |
[测试结论]
在13条SQL测试中,除了第4条8a测试结果比Oracle差点以外,基本都大幅领先Oracle,尤其是第2、3、10、13条sql语句测试。
通过以上实验,我们可以得出以下结论:
1、查询字段或统计内容越少,查询范围越小,GBase8a性能提高越明显;
2、热数据查询,GBase8a完胜对手Oracle
3、列式存储才是数据仓库和BI的专业选择
本文需要转载,须注明出处,谢谢!
如对产品感兴趣,请与我联系,QQ:466183,本人在南京
作者:xieyun1977 发表于2013-3-16 23:52:48 原文链接
阅读:46 评论:0 查看评论