第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Hive中對表進行分區(qū)和存儲有什么區(qū)別?

在Hive中對表進行分區(qū)和存儲有什么區(qū)別?

Smart貓小萌 2019-11-22 13:13:36
我知道兩者都是在表中的列上執(zhí)行的,但是每個操作有何不同。
查看完整描述

3 回答

?
Cats萌萌

TA貢獻1805條經(jīng)驗 獲得超9個贊

分區(qū)數(shù)據(jù)通常用于水平分布負載,這具有性能優(yōu)勢,并有助于以邏輯方式組織數(shù)據(jù)。示例:如果我們處理的是一個大employee表,并且經(jīng)常使用帶有WHERE將結(jié)果限制到特定國家或地區(qū)的子句運行查詢。為了獲得更快的查詢響應(yīng),Hive表可以是PARTITIONED BY (country STRING, DEPT STRING)。分區(qū)表更改了Hive構(gòu)造數(shù)據(jù)存儲的方式,Hive現(xiàn)在將創(chuàng)建反映分區(qū)結(jié)構(gòu)的子目錄,例如

... /員工/ 國家 / 地區(qū)= ABC / DEPT = XYZ。

如果查詢來自雇員的限制country=ABC,它將僅掃描一個目錄的內(nèi)容country=ABC。僅當分區(qū)方案反映通用篩選時,這才能大大提高查詢性能。分區(qū)功能在Hive中非常有用,但是,創(chuàng)建過多分區(qū)的設(shè)計可能會優(yōu)化某些查詢,但會對其他重要查詢不利。另一個缺點是,分區(qū)過多是不必要地創(chuàng)建了大量的Hadoop文件和目錄,并給NameNode帶來了開銷,因為它必須將文件系統(tǒng)的所有元數(shù)據(jù)都保留在內(nèi)存中。

存儲桶是用于將數(shù)據(jù)集分解為更易于管理的部分的另一種技術(shù)。例如,假設(shè)一個表date用作頂級分區(qū)和employee_id第二級分區(qū)會導(dǎo)致太多的小分區(qū)。相反,如果我們對employee表進行存儲并employee_id用作存儲列,則該列的值將由用戶定義的數(shù)字散列到存儲桶中。具有相同記錄的記錄employee_id 將始終存儲在同一存儲桶中。假設(shè)的數(shù)量employee_id遠大于存儲桶的數(shù)量,則每個存儲桶將具有許多employee_id。創(chuàng)建表時,您可以指定如下CLUSTERED BY (employee_id) INTO XX  BUCKETS;其中XX是存儲桶數(shù)。桶裝有幾個優(yōu)點。桶的數(shù)量是固定的,因此它不會隨數(shù)據(jù)波動。如果兩個表由進行存儲employee_id,則Hive可以創(chuàng)建邏輯上正確的采樣。桶也有助于進行有效的地圖側(cè)聯(lián)接等。


查看完整回答
反對 回復(fù) 2019-11-22
  • 3 回答
  • 0 關(guān)注
  • 1263 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號