欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學堂Java培訓之Hive靜態(tài)分區(qū)與動態(tài)分區(qū)

2018-05-04 15:13:35 3576瀏覽

分區(qū)是hive存放數(shù)據(jù)的一種方式。將列值作為目錄來存放數(shù)據(jù),就是一個分區(qū)。這樣查詢時使用分區(qū)列進行過濾,只需根據(jù)列值直接掃描對應目錄下的數(shù)據(jù),不掃描其他不關(guān)心的分區(qū),快速定位,提高查詢效率。分動態(tài)和靜態(tài)分區(qū)兩種:



1、靜態(tài)分區(qū):若分區(qū)的值是確定的,那么稱為靜態(tài)分區(qū)。新增分區(qū)或者是加載分區(qū)數(shù)據(jù)時,已經(jīng)指定分區(qū)名。

  createtableifnotexistsday_part1(
  uidint,
  unamestring
  )
  partitionedby(yearint,monthint)
  rowformatdelimitedfieldsterminatedby'\t';
  ##加載數(shù)據(jù)指定分區(qū)
  loaddatalocalinpath'/root/Desktop/student.txt'intotableday_part1partition(year=2017,month=04);
  ##新增分區(qū)指定分區(qū)名
  altertableday_part1addpartition(year=2017,month=1)partition(year=2016,month=12);

2、動態(tài)分區(qū):分區(qū)的值是非確定的,由輸入數(shù)據(jù)來確定

2.1動態(tài)分區(qū)的相關(guān)屬性:

hive.exec.dynamic.partition=true:是否允許動態(tài)分區(qū)

hive.exec.dynamic.partition.mode=strict:分區(qū)模式設(shè)置

strict:最少需要有一個是靜態(tài)分區(qū)

nostrict:可以全部是動態(tài)分區(qū)

hive.exec.max.dynamic.partitions=1000:允許動態(tài)分區(qū)的最大數(shù)量

hive.exec.max.dynamic.partitions.pernode=100:單個節(jié)點上的mapper/reducer允許創(chuàng)建的最大分區(qū)

2.2動態(tài)分區(qū)的操作

  ##創(chuàng)建臨時表
  createtableifnotexiststmp
  (uidint,
  commentidbigint,
  recommentidbigint,
  yearint,
  monthint,
  dayint)
  rowformatdelimitedfieldsterminatedby'\t';
  ##加載數(shù)據(jù)
  loaddatalocalinpath'/root/Desktop/comm'intotabletmp;
  ##創(chuàng)建動態(tài)分區(qū)表
  createtableifnotexistsdyp1
  (uidint,
  commentidbigint,
  recommentidbigint)
  partitionedby(yearint,monthint,dayint)
  rowformatdelimitedfieldsterminatedby'\t';
  ##嚴格模式
  insertintotabledyp1partition(year=2016,month,day)
  selectuid,commentid,recommentid,month,dayfromtmp;
  ##非嚴格模式
  ##設(shè)置非嚴格模式動態(tài)分區(qū)
  sethive.exec.dynamic.partition.mode=nostrict;
  ##創(chuàng)建動態(tài)分區(qū)表
  createtableifnotexistsdyp2
  (uidint,
  commentidbigint,
  recommentidbigint)
  partitionedby(yearint,monthint,dayint)
  rowformatdelimitedfieldsterminatedby'\t';
  ##為非嚴格模式動態(tài)分區(qū)加載數(shù)據(jù)
  insertintotabledyp2partition(year,month,day)
  selectuid,commentid,recommentid,year,month,dayfromtmp;


3、分區(qū)注意細節(jié)

(1)、盡量不要用動態(tài)分區(qū),因為動態(tài)分區(qū)的時候,將會為每一個分區(qū)分配reducer數(shù)量,當分區(qū)數(shù)量多的時候,reducer數(shù)量將會增加,對服務器是一種災難。

(2)、動態(tài)分區(qū)和靜態(tài)分區(qū)的區(qū)別,靜態(tài)分區(qū)不管有沒有數(shù)據(jù)都將會創(chuàng)建該分區(qū),動態(tài)分區(qū)是有結(jié)果集將創(chuàng)建,否則不創(chuàng)建。

(3)、hive動態(tài)分區(qū)的嚴格模式和hive提供的hive.mapred.mode的嚴格模式。

hive提供我們一個嚴格模式:為了阻止用戶不小心提交惡意hql

hive.mapred.mode=nostrict:strict

如果該模式值為strict,將會阻止以下三種查詢:

(1)、對分區(qū)表查詢,where中過濾字段不是分區(qū)字段。

(2)、笛卡爾積join查詢,join查詢語句,不帶on條件或者where條件。

(3)、對orderby查詢,有orderby的查詢不帶limit語句。

以上就是關(guān)于扣丁學堂Java培訓之Hive靜態(tài)分區(qū)與動態(tài)分區(qū)的詳細介紹,最后想要了解更多關(guān)于Java開發(fā)問題的小伙伴可以登錄扣丁學堂官網(wǎng)咨詢??鄱W堂是專業(yè)的Java培訓機構(gòu),不僅有專業(yè)的老師和與時俱進的課程體系,還有大量的Java視頻教程供學員觀看學習,想要學好Java的小伙伴抓緊時間行動吧。Java技術(shù)交流群:670348138。


扣丁學堂微信公眾號

【關(guān)注微信公眾號免費領(lǐng)取丁豆獲取更多學習資料】



查看更多關(guān)于“Java開發(fā)資訊的相關(guān)文章>>

標簽: JavaEE視頻教程 JavaEE培訓 JavaEE開發(fā)工程師 Java培訓 Java開發(fā)程序員 Java面試題

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部