Impala表中的紧缩

4

我想了解Impala表中的压缩技术,但找不到相关学习材料。有哪些不同的技术,我可以在哪里找到学习资料。

1个回答

1
主要的压缩技术是避免小文件问题,这取决于您的使用情况。
例如,您可以有一个将小文件写入HDFS并且希望像Impala表一样查询这些文件的过程。您可以为这些小文件创建一个分段表,并使用“INSERT INTO TABLE base_table SELECT .....FROM stg_table”加载基本表以将小文件压缩成大文件。
另一个用例是使用分区。 在使用分区时,主要风险是创建导致小文件问题的分区。 当发生这种情况时,分区表实际上会恶化查询性能(与使用分区时的目标相反),因为它会导致创建太多的小文件。 当使用动态分区时,这种情况更有可能发生,但是即使使用静态分区也可能发生——例如,如果您每天向销售表添加包含前一天销售额的分区,并且每天的数据都不是特别大。
在选择分区时,您需要在过多分区(导致小文件问题)和过少分区(提供性能很少的好处)之间取得平衡。分区列应具有合理数量的分区值,但是什么是合理的很难量化。
使用动态分区尤其危险,因为如果您不小心,很容易在具有太多不同值的列上进行分区。想象一种用例,您经常寻找落在您查询中指定时间范围内的数据。您可能认为在与时间相关的列上进行分区是一个好主意。但是,时间戳列可以具有纳秒级的时间,因此每行都可能具有唯一值;这将是一个糟糕的分区列选择!即使按分钟或小时分区,根据数据的性质,也可能创建太多的分区;按天、月甚至年进行分区可能是更好的选择。
上面的阅读只是问题的简介,还有更多用例,总体主题是性能和调优。
您可以从Cloudera文档开始。您可以按照此链接操作:

调优Impala以提高性能

希望这可以帮助到您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接