2016-04-14 59 views
0

使用日期作爲yyyymmdd字符串與使用多個分區作爲整數的年,月和日是否有任何折衷?Hive中的單個vs多個分區

+0

我認爲查詢更容易跟隨每年/每月/每天在單獨的列。例如,Hive可能會混淆日期範圍的一些公式,並最終掃描所有數據。 –

回答

1

對於在配置單元中創建的每個分區,都會創建一個新目錄來存儲該分區數據。這些細節被添加到蜂房metastore以及hadoop的fsimage。 當一個分區被創建爲yyyymmdd時,將創建一個單一的目錄,而年份,月份和日期將創建三個不同的目錄。因此,更多的配置單元Metastore和更多的元數據存儲在fsimage中。這是關於hive和hadoop如何看待元數據分區的分區。

查看我看到的另一個視圖是,當分區爲yyyymmdd時,查詢日期(日期)時效果很好。除日期等級查詢外,在年,月,日進行分區還可以靈活地查詢年份級別和月份級別的數據。