0
我進行了一項實驗。我有一個外部表,並按年,月,日,小時進行分區。如果我使用INSERT OVERWRITE併爲數據指定某個分區,它最終會創建適當的文件夾結構。例如配置單元不會將手動創建的文件夾識別爲分區
INSERT OVERWRITE TABLE default.testtable PARTITION(year = 2016, month = 7, day=29, hour=18)
SELECT tbl.c1 FROM (select 'Test' as c1) as tbl;
該表只有一個字符串列,但這不是很重要。
因此,上面的語句創建適當的文件夾結構。但是,如果我嘗試手動創建類似的結構並激發SELECT查詢,配置單元不會在手動創建的文件夾中返回數據。在結構方面,我確保手動創建的文件夾與每個層次結構中具有0號文件的自動創建的文件夾完全相同。是因爲每當我們將數據插入特定分區時,Hive都會創建(如果它不存在)該分區並將分區信息存儲在其Metastore中?因爲如果我手動創建文件夾結構,那是唯一會被繞過的東西。