分區表:將數據按照分區字段拆分存儲的表,在hdfs中以文件夾的形式分別存放不同分區的數據,可以避免全表查詢,提高查詢效率。
動態分區:hive通過設置hive.exec.dynamici.partition=true開啟動態分區。
可以在插入數據時根據表中某字段值決定分區,當分區字段完全由變量決定時稱為動態分區,若有常量限制則稱為混合分區,若完全由常量決定分區時稱為靜態分區。
分桶表:根據分桶字段hash值分組拆分數據的表,在hdfs中表現為將單個的數據文件拆分為多個文件。
總結:分區字段的每個值都對應一個文件夾和一個分區文件,而分桶字段則是多個值對應一個桶文件。
如果同時使用分區和分桶,則會先按照分區劃分文件,再對每個文件按照分桶進行拆分。