hive分区用2个字段有何限制_Hive分区表和桶表的使用
我們看官網(wǎng)文檔中這個(gè)地方
我們先創(chuàng)建好數(shù)據(jù)庫(kù),以供練習(xí)
使用數(shù)據(jù)庫(kù)
我們創(chuàng)建數(shù)據(jù)表
我們創(chuàng)建分區(qū)表,選取的字段不能是表中存在的字段
元數(shù)據(jù)信息
Formatted信息
那我們加載信息
load data local inpath '/data/hivetest/dept.txt' into table dept_partition partition(bmbh=1);
我們查看數(shù)據(jù)
我們看下HDFS上,是目錄的形式
所以我們可以多加載幾份數(shù)據(jù)
查看數(shù)據(jù)和HDFS上
也可以創(chuàng)建二級(jí)分區(qū)
載入數(shù)據(jù)
查看下數(shù)據(jù)
查看下元數(shù)據(jù)
再看下HDFS
我們就可以依據(jù)條件查詢(xún)使用where語(yǔ)句
注:分區(qū)表可以提高查詢(xún)的效率。
我們?cè)倏催@個(gè)地方-桶表
這個(gè)和分區(qū)表不一樣的地方,選取字段必須是表里的字段
我們準(zhǔn)備個(gè)員工表
我們創(chuàng)建下桶表
我們加載下數(shù)據(jù)
看下HDFS
實(shí)際在桶表中,我們應(yīng)該使用另外一種語(yǔ)句
運(yùn)行過(guò)程
出現(xiàn)了點(diǎn)問(wèn)題
三個(gè)節(jié)點(diǎn)時(shí)間不同步,設(shè)定下時(shí)間
date -s "2019-12-5 17:50:00"
再執(zhí)行就可以了
查看結(jié)果
我們看HDFS上
我們查看下文件,已經(jīng)分開(kāi)了,如果有問(wèn)題看看你的hive版本是否有這個(gè)屬性沒(méi)有打開(kāi)。hive.enforce.bucketing。
注:其中桶表查詢(xún)還有下面的語(yǔ)句,可以仔細(xì)研究下,暫時(shí)先放一放,后續(xù)學(xué)習(xí)深入再了解。
Select * from table tablesample(bucket 1 out of 2)
Tablesample是抽樣數(shù)據(jù),語(yǔ)法tablesample(bucket x out of y)y必須是table總bucket數(shù)的倍數(shù)或者因子。Hive根據(jù)y的大小,決定抽樣比例。例如:table總共分為64份,當(dāng)y=32時(shí),抽取(64/32)2個(gè)bucket數(shù)據(jù);當(dāng)y=128時(shí),抽取(64/128)1/2個(gè)bucket數(shù)據(jù),x表示從哪個(gè)bucket開(kāi)始抽取,例如table總bucket數(shù)為32,tablesample(3 out of 16),表示總共抽取(32/16)2個(gè)bucket數(shù)據(jù),分別為第3個(gè)bucket和第(3+16)19個(gè)bucket數(shù)據(jù)。
總結(jié)
以上是生活随笔為你收集整理的hive分区用2个字段有何限制_Hive分区表和桶表的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 4阶范德蒙德行列式例题_行列式的性质和计
- 下一篇: flutter ios打包_Flutte