hive的分区策略

Partition strategy for hive

我有一个每月处理数据并保存到 Hive/Impala tables 的 Spark 作业(文件存储格式是 parquet)。 table的粒度是日数据,但是这个作业的源数据也是月作业。

我正在尝试了解如何最好地划分 table。我正在考虑对 table base a month 键进行分区。想知道是否有人发现这种方法有任何问题,或者有其他建议?谢谢。

你的做法是正确的。 Hive, Impala and Parquet as a file format。 至于分区,请记住 worst 您可以做的事情是 too many partitions 因为它们的元数据存储在 Hive Metastore (关系数据库)中,如果您有大量分区,则任何元数据查询可能很繁重。

选择 partitioning key 时,检查每个分区中将有多少数据。您需要选择一个 granulation,一方面允许您 quickly access data,另一方面您将没有 large number of small partitions(即数据量小)。

请查找有关 Hive & Spark 的更多信息: