目录

第02章 存储和压缩格式 2

2.1 存储和压缩格式对比 2

2.2 查询效果测试 3

2.3 查询效果测试带shuffle 3

第02章 存储和压缩格式

存储和压缩格式简介

Spark SQL表存储的数据量都特别大,因此存储格式要考虑查询性能写入性能和存储成本。而orc存储格式是一种列式存储,在查询写入时比较快,而存储成本也比较低。

这是我们在1T(未压缩)规模上做的存储和查询性能测试。

2.1 存储和压缩格式对比

文件存储格式\文件压缩格式

None(GB)

Snappy(GB)

Gzip(GB)

Lzo(GB)

Text(行式存储)

1843.2

431.0

210.8

387.8

Parquet(列式存储)

1126.4

406.3

228.5

374.5

Orc(列式存储)

839.8

373.8



第02章-存储和压缩格式_文件存储

由上图看出,压缩效果text-gzip > parquet-gzip > orc-snappy > parquet-lzo > text-lzo >

parquet-gzip相比text未压缩时存储成本降低了88%,orc-snappy相比text未压缩时的存储成本降低了80%,parquet-gzip相比orc-snappy节约存储成本达37%。

2.2 查询效果测试

简单对各种存储格式的表进行count(1)查询

文件存储格式\文件压缩格式count(1)

None(秒)

Snappy(秒)

Gzip(秒)

Lzo(秒)

text

226.052

299.195

334.322

96.353

parquet

16.377

16.331

14.602

42.33

orc

21.485

27.722



第02章-存储和压缩格式_列式存储_02

由上图可看出,查询效果parquet-gzip > parquet-snappy > orc-snappy,

parquet-gzip相比于text未压缩时减少了93.6%的时间消耗,orc-snappy相比text未压缩时减少了88%的时间消耗,parquet-gzip相比orc-snappy减少了47%的时间消耗。

2.3 查询效果测试带shuffle

通过测试count(distinct request_id)

文件存储格式\文件压缩格式count(distinct )

None(秒)

Snappy(秒)

Gzip(秒)

Lzo(秒)

text

330.326

556.032

493.851

221.09

parquet

94.967

34.360

35.619

98.005

orc

69.452

27.722



第02章-存储和压缩格式_文件压缩_03

由上图可看出,查询效果 orc-snappy > parquet-snappy > parquet-gzip ,

orc-snappy相比text未压缩时减少了92%的时间消耗,parquet-gzip减少了89%的时间消耗,orc-snappy相比parquet-gzip减少了22%的时间消耗。


来自视频:《Spark SQL性能优化》

链接地址:

https://edu.51cto.com/course/34516.html