基于spark SQL之上的检索与排序对比测试

关于spark的性能,基于YDB的对比,做了一个测试,保留备用。

一、YDB与spark sql在排序上的性能对比测试


在排序上,YDB具有绝对优势,无论是全表,还是基于任意条件组合过滤,基本秒杀Spark默认的格式。

 

测试结果(时间单位为秒)

amtint列筛选

筛选后条数

排序方式

YDBBlockSort

Spark

无筛选

100亿

降序

3.3

1118

升序

3.6

1085

100 TO 900

80亿

降序

1.5

1093

升序

1.3

1070

100 TO 600

50亿

降序

1.53

1104

升序

1.38

867

100 TO 200

10亿

降序

7.00

1115

升序

1.11

1131

100 TO 110

1亿

降序

2.1

1160

升序

3.44

1114

100 TO 101

0.1亿

降序

10.67

1089

升序

7.0

1110

 

      详细测试地址:http://blog.csdn.NET/qq_33160722/article/details/54447022

      300亿条数据的排序 演示视频  http://blog.csdn.Net/qq_33160722/article/details/54834896

二、与Spark txt在检索上的性能对比测试

注释:备忘。下图的这块,其实没什么特别的,只不过由于YDB本身索引的特性,不想spark那样暴力,才会导致在扫描上的性能远高于spark,性能高百倍不足为奇。

基于spark SQL之上的检索与排序对比测试_第1张图片


转换为提升倍数

基于spark SQL之上的检索与排序对比测试_第2张图片


三、与ORACLE性能对比

跟传统数据库的对比,已经没啥意义,Oracle不适合大数据,任意一个大数据工具都远超oracle 性能。

 基于spark SQL之上的检索与排序对比测试_第3张图片


四、稽查布控场景性能测试

基于spark SQL之上的检索与排序对比测试_第4张图片


五YDB是怎么样让spark加速的?

      基于Hadoop分布式架构下的实时的、多维的、交互式的查询、统计、分析引擎,具有万亿数据规模下的秒级性能表现,并具备企业级的稳定可靠表现。

      YDB是一个细粒度的索引,精确粒度的索引。数据即时导入,索引即时生成,通过索引高效定位到相关数据。YDB与Spark深度集成,Spark对YDB检索结果集直接分析计算,同样场景让Spark性能加快百倍。


基于spark SQL之上的检索与排序对比测试_第5张图片



 

哪些用户适合使用YDB? 

ps: 说了一大堆,说白了最适合的还是踪迹分析因为数据量大,数据还要求实时,查询还要求快。这才是关键。
 

1.传统关系型数据,已经无法容纳更多的数据,查询效率严重受到影响的用户。

2.目前在使用SOLR、ES做全文检索,觉得solr与ES提供的分析功能太少,无法完成复杂的业务逻辑,或者数据量变多后SOLR与ES变得不稳定,在掉片与均衡中不断恶性循环,不能自动恢复服务,运维人员需经常半夜起来重启集群的情况。

3.基于对海量数据的分析,但是苦于现有的离线计算平台的速度和响应时间无满足业务要求的用户。

4.需要对用户画像行为类数据做多维定向分析的用户。

5.需要对大量的UGC(User Generate Content)数据进行检索的用户。

6.当你需要在大数据集上面进行快速的,交互式的查询时。

7.当你需要进行数据分析,而不只是简单的键值对存储时。

8.当你想要分析实时产生的数据时。

六、什么情况下不需要用YDB?

1.当数据量可以在MySQL中很轻松的处理时

2.当批量数据集成对你来说已经足够好的情况下

3.当你只需要执行固定的查询时

你可能感兴趣的:(基于spark SQL之上的检索与排序对比测试)