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