Hive 禁止提交 大范围磁盘扫描任务(禁止提交where条件包含未分区过滤)
生活随笔
收集整理的這篇文章主要介紹了
Hive 禁止提交 大范围磁盘扫描任务(禁止提交where条件包含未分区过滤)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
參考書籍:Hive編程指南
如果用戶需要做一個(gè)查詢,查詢條件是全盤掃描。Hive會(huì)不得不讀取每個(gè)文件目錄,但這種寬范圍的磁盤掃描還是比較少見的。
但是,如果表中的數(shù)據(jù)以及分區(qū)個(gè)數(shù)都非常大的話,執(zhí)行這樣一個(gè)包含有所有分區(qū)的查詢可能會(huì)觸發(fā)一個(gè)巨大的MapReduce任務(wù)。一個(gè)高度建議的安全措施就是將Hive設(shè)置為“strict(嚴(yán)格)”模式,這樣如果對(duì)分區(qū)表進(jìn)行查詢而WHERE子句沒有加分區(qū)過濾的話,將會(huì)禁止提交這個(gè)任務(wù)。用戶也可以按照下面的語(yǔ)句將屬性值設(shè)置為“nostrict(非嚴(yán)格)”:
? ? ?查看表存在的所有分區(qū)
hive> SHOW PARTITIONS tableName? ? ? ?如果表中現(xiàn)在存在很多的分區(qū),而用戶只想查看是否存儲(chǔ)某個(gè)特定分區(qū)鍵的分區(qū)的話,用戶還可以在這個(gè)命令上增加一個(gè)指定了一個(gè)或者多個(gè)特定分區(qū)字段值的PARTITION子句,進(jìn)行過濾查詢
hive> SHOW PARTITIONS employees PARTITION(country='US'); country=US/state=AL country=US/state=AK ...hive> SHOW PARTITIONS employees PARTITION(country='US', state='AK'); country=US/state=AK?
總結(jié)
以上是生活随笔為你收集整理的Hive 禁止提交 大范围磁盘扫描任务(禁止提交where条件包含未分区过滤)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GCC编译器和GDB调试器常用选项
- 下一篇: Hive Shell