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