1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Parquet性能测试之项目实践中应用测试

Parquet性能测试之项目实践中应用测试

时间:2022-02-09 23:56:40

相关推荐

Parquet性能测试之项目实践中应用测试

一、SparkSql中两种格式存储的读写性能(以资源产品拓扑信息宽表为例)

1、假设:由于对于parquet存储格式来说,针对列式的查询读取操作以及列式的计算性能更高于普通的存储格式,所以在读取相同的sql过程中,表的存储格式为parquet,读取的性能更高,所花费的时间更少。

2、测试步骤:

①将sparksql用的相关hive表,建立相同的parquet存储格式的表;

②分别执行生成的jar包,进行数据的整合;

③统计运行的时间,进行比较得出结论。

3、测试结果:(可能是由于资源占用问题第三次测试中parquet存储格式花费时间较长,但是仍然低于hdfs格式存储的读取效率)

4、测试分析

此次测试,使用相同的sparksql进行读取转化,只是所使用的hive 的存储方式不同,由以上的执行时间来看,很明显在读写生成资源产品拓扑信息宽表过程中,建表为parquet存储所花费的时间更少,假设成立。

二、存储的格式不同,列式计算中parquet格式存储比普通文件存储进行列式运算的效率更高

1、假设:由于parquet进行列式存储,不需要扫描全部全部的数据,只读取每次查询涉及的列,这样可以将I/O降低至N倍,另外可以保存每一列的统计信息实现部分谓词下推。因此,我们假设存储的格式不同,列式计算中parquet格式存储比普通文件存储进行列式运算的效率更高

2、测试步骤:

①对sparksql中需要处理的表存储为parquet格式和普通格式;

②执行列式运算的sparksql;

③对比执行时间,得出结论。

3、测试结果:

4、测试分析

此次测试,通过复杂的大数据量的数据进行运算,写出结果。通过执行的时间,我们可以从里面看出执行效率如何。从前两次测试结果来看parquet格式存储的优势明显高于普通的文件存储。而从第三个来看关联查询运算,数据量也比较大,测试结果并非我们所假设的那样。什么原因造成的上述结果,经过查询资料,我们得知在列数查询较少的情况下,我们使用parquet格式存储进行查询的效率很高,包括直接impala查询大表所消耗的时间也是相比来说非常短。造成上述原因的主要原因应该是所需要进行聚合函数的字段过多,导致parquet格式存储的查询效率极具降低。因此,我们在进行sparksql执行时要考虑到所使用的表字段的个数,若是字段过多,建议使用一般的存储格式,不宜使用parquet来存储。通过分析,我们对假设要分情况来讨论,通过具体的字段数来决定使用哪种方式来进行数据格式的存储。

三、存储格式不同,Parquet格式存储所占用的内存更小

1、假设:由于parquet存储格式每一列的成员都是同构的,针对不同的数据类型使用更高效的数据压缩算法,进一步减少I/O;并且由于每一列的成员的同构性,可以使用更加适合CPU pipeline的编码方式,减少CPU的缓存失效,所以我们假设存储格式不同,Parquet格式存储所占用的内存更小。

2、测试步骤:

①生成相同数据量;

②将生成的数据按照普通文件格式存储和parquet格式存储;

③查看生成文件所占用的空间大小,进而得出结论。

3、测试结果:

4、测试分析

此次测试,我们可以通过测试的数据看出使用Parquet格式来存储数据,占用的空间更小,节约的空间在70%以上,在我们的应用之中针对大数据量的基础表的存储,我们可以生成parquet格式进行存储,在代码之中我们可以通过读取所需的文件解析注册成临时表再进行操作提取所需要的字段。由此看见假设成立,存储格式不同,Parquet格式存储所占用的内存更小。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。