gpt4 book ai didi

cloudera - Impala 表中的压缩

转载 作者:行者123 更新时间:2023-12-03 20:51:18 28 4
gpt4 key购买 nike

我想了解 Impala 表中的压缩,但找不到要研究的 Material 。
什么是不同的技术以及我可以在哪里找到 Material 来研究它。

最佳答案

compaction的主要技术是为了避免small file problem这取决于您的用例。
例如,您可能有一个正在将小文件写入 HDFS 的进程。并且您想查询这些文件,例如 Impala table .你可以有一个 staging table为这些小文件加载 base table使用 INSERT INTO TABLE base_table SELECT .....FROM stg_table将小文件压缩成更大的文件。
另一个用例是 partitioning .
使用分区时的一个主要风险是创建导致您陷入小文件问题的分区。
发生这种情况时,对表进行分区实际上会降低查询性能
(与使用分区时的目标相反)因为它会导致创建过多的小文件。
这在使用 dynamic partitioning 时更有可能,但它仍然可以
发生在 static partitioning — 例如,如果您向销售表添加了一个新分区
每天包含前一天的销售额,
而且每天的数据都不是特别大。
在选择分区时,您希望在过多的分区之间取得一个愉快的平衡
(导致小文件问题)和太少的分区(对性能几乎没有好处)。
分区列或列应具有合理数量的值
对于分区——但你应该认为合理的东西很难量化。
使用 dynamic partitioning特别危险 因为如果你不小心
很容易在具有太多不同值的列上进行分区。
想象一个用例,您经常寻找属于
您将在查询中指定的时间范围。
您可能认为在与时间相关的列上进行分区是个好主意。
但是一个TIMESTAMP column 可以有到纳秒的时间,所以每一行都可以有一个唯一的值;
对于分区列来说,这将是一个糟糕的选择!甚至到分钟或小时都可以创造
太多的分区,取决于您的数据的性质;
按较大的时间单位(如日、月甚至年)进行分区可能是更好的选择。
上面的阅读只是对问题的介绍,还有更多用例,一般主题是性能和调优。
您可以从 Cloudera 文档开始。你可以点击这个链接:
Tuning Impala for Performance
希望这可以帮助。

关于cloudera - Impala 表中的压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62646565/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com