日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Hive擴展數(shù)據(jù)庫:無需分區(qū)化(hive不分區(qū)擴展數(shù)據(jù)庫)

在大數(shù)據(jù)處理中,Hive是一款開源的數(shù)據(jù)倉庫工具,它能夠將海量數(shù)據(jù)進行分析和存儲。Hive基于Hadoop的分布式文件系統(tǒng)HDFS,使用類SQL語言,支持以MapReduce作為底層計算引擎。

網(wǎng)站建設哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了嵐皋免費建站歡迎大家使用!

然而,對于需要快速查詢的海量數(shù)據(jù),Hive常常遇到擴展性和效率的問題。Hive基于Hadoop的架構模式需要將數(shù)據(jù)進行分區(qū)化處理才能進行查詢,這導致了Hive在查詢大數(shù)據(jù)時的過多的I/O操作,進而影響了Hive的查詢效率。

為了解決這個問題,研究人員提出了一種新的方法,即Hive擴展數(shù)據(jù)庫。這種方法能夠讓Hive不需要進行分區(qū)化處理就能直接查詢大數(shù)據(jù)并提高查詢效率。

一、Hive擴展數(shù)據(jù)庫的原理

Hive擴展數(shù)據(jù)庫的原理是通過一種新型的文件存儲格式ORC(Optimized Row Columnar)來存儲數(shù)據(jù)。ORC文件格式是專門針對Hadoop生態(tài)系統(tǒng)開發(fā)的一種列式存儲格式,它可以大幅度減少I/O操作次數(shù),提高查詢效率。與傳統(tǒng)的存儲格式相比,使用ORC格式存儲時,Hive可以將單次查詢的I/O次數(shù)降低到1/10以下。

在使用ORC格式進行數(shù)據(jù)存儲之后,Hive可以不進行數(shù)據(jù)分區(qū)化處理,直接進行查詢,并且查詢效率很高。這種方法可以讓Hive處理海量數(shù)據(jù)時避免進行大量的I/O操作,從而大幅度提升查詢效率。

二、Hive擴展數(shù)據(jù)庫的優(yōu)勢

1、提高查詢速度

使用Hive擴展數(shù)據(jù)庫可以大幅度提高查詢效率。在Hive進行查詢時,I/O操作是一個非常重要的環(huán)節(jié),如果數(shù)據(jù)分區(qū)非常多,需要讀取的數(shù)據(jù)也就隨之變多,這導致Hive進行查詢的效率非常低下。而使用ORC格式存儲數(shù)據(jù)不需要進行數(shù)據(jù)分區(qū)化處理,可以讓Hive直接進行查詢,從而大大提高查詢效率。

2、降低成本

使用Hive擴展數(shù)據(jù)庫可以降低成本。傳統(tǒng)的存儲方式需要進行數(shù)據(jù)分區(qū)化處理,這通常需要大量的人力和時間投入。而使用ORC格式存儲數(shù)據(jù)可以避免這些成本,同時還可以更好地滿足海量數(shù)據(jù)的存儲和查詢需求。

3、提高數(shù)據(jù)質量

使用Hive擴展數(shù)據(jù)庫可以提高數(shù)據(jù)質量。由于不需要進行數(shù)據(jù)分區(qū)化處理,因此數(shù)據(jù)間的關聯(lián)和分布可以更好地保留和忠實反映。這樣能夠避免分區(qū)化處理時可能出現(xiàn)的數(shù)據(jù)漏洞和誤差,從而提高數(shù)據(jù)質量。

三、Hive擴展數(shù)據(jù)庫的應用場景

1、海量數(shù)據(jù)存儲和查詢場景

Hive擴展數(shù)據(jù)庫適用于海量數(shù)據(jù)存儲和查詢場景,例如電商、金融、醫(yī)療、物流等行業(yè),對于需要進行海量數(shù)據(jù)查詢和高效存儲的場景非常適用。

2、機器學習和數(shù)據(jù)挖掘場景

Hive擴展數(shù)據(jù)庫同樣適用于機器學習和數(shù)據(jù)挖掘場景,特別是在需要處理大規(guī)模數(shù)據(jù)集以進行機器學習訓練時,使用Hive擴展數(shù)據(jù)庫可以極大地提高數(shù)據(jù)處理效率。

3、存儲系統(tǒng)升級場景

如果現(xiàn)有的存儲系統(tǒng)無法承受更高的數(shù)據(jù)量和復雜查詢時,可以使用Hive擴展數(shù)據(jù)庫來升級存儲和查詢能力。

四、結論

Hive擴展數(shù)據(jù)庫是一種新型的數(shù)據(jù)存儲和查詢技術,它使用ORC格式存儲數(shù)據(jù)來避免數(shù)據(jù)分區(qū)化處理,從而提高查詢效率。使用Hive擴展數(shù)據(jù)庫可以大幅提高查詢速度,降低成本,并提高數(shù)據(jù)質量。Hive擴展數(shù)據(jù)庫適用于海量數(shù)據(jù)存儲和高效查詢、機器學習和數(shù)據(jù)挖掘等場景。如果現(xiàn)有存儲系統(tǒng)無法承受更高的數(shù)據(jù)量和查詢要求,可以考慮使用Hive擴展數(shù)據(jù)庫進行升級。

成都網(wǎng)站建設公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設、網(wǎng)站制作、網(wǎng)頁設計及定制高端網(wǎng)站建設服務!

hive 分區(qū)表

hive 分區(qū)表:

分區(qū)字段的物理表現(xiàn):

hive分區(qū)表 ,其真實的表現(xiàn)其實就是在 存儲hive表的文件夾的下面,創(chuàng)建新的文件夾,

文件夾的名字是 分區(qū)字段=字段取值 這種格式的。

分區(qū)的優(yōu)點:

當分區(qū)表的數(shù)據(jù)很大的時候,可以指定查詢表格之逗胡寬中的部分數(shù)據(jù)。

設置表格分區(qū)字段需要的注意點:

1:分區(qū)字段的取值不要很多,因為這樣會造成表的文件夾的下面會出現(xiàn)很多的小的文件夾

2: 一般可以將sql之中 where 之中出現(xiàn)的字段作為 分區(qū)的字段。(可以當作分區(qū)字段選取的一個參考)

查看表格是否是分區(qū)表:

desc formatted table_name

分區(qū)表的話 ,會有Partition Information

向分區(qū)表插入數(shù)據(jù):

情況分為:

1:向表格之中插入數(shù)據(jù),明確指定插入的分區(qū)的名字

2:向表格之中插入數(shù)據(jù),不明確指定插入的數(shù)據(jù)的名字,而是根據(jù)插入的數(shù)據(jù)的某個字段的取值來自動決定數(shù)據(jù)

入到哪一個分區(qū)之中。被稱為動態(tài)分區(qū)。

如何開啟hive 動態(tài)分區(qū)的功能?

set  hive.exec.dynamici.partition=true;

hive 動態(tài)分區(qū):有兩種模式:

嚴格模式 和非嚴格模式

嚴格模式:

動態(tài)分區(qū)的時候,必須有一個分區(qū)是靜態(tài)的。

非嚴格模式,對分區(qū)是否是靜態(tài)的不在意。

如何設置 動態(tài)分區(qū)的模式?

set hive.exec.dynamic.partition.mode=nostrict

默認的模式是strict 嚴格模式。

插入數(shù)據(jù)時 明確指定需要插入的分區(qū)的值:

sql demo :

1:load data inpath ‘path’ into table xxx partition(partition_fields partiton_type)

2:insert into table table_a partition(partition_fields partition_type)

select * from table_b ;

使用insert 的時候 ,需要注意前后表的表的字做搏段數(shù)目是匹配的,

如果表的前后字段是不匹配的話,那么就是會報錯。

向分區(qū)表之中插入數(shù)據(jù)的時候,根據(jù)數(shù)據(jù)的某個字段的值,來創(chuàng)建分區(qū),

以及決定數(shù)據(jù)入到哪一個分區(qū)之中。

sql demo:

對一個分區(qū) 進行動態(tài)分區(qū):

首先要設置兩個參數(shù):

set  hive.exec.dynamici.partition=true;

set hive.exec.dynamic.partition.mode=nostrict

然后就是可以使用動態(tài)分區(qū)了。

分區(qū)值的推斷,是根據(jù)后面查詢的最后字段來決定的,只有一個分區(qū),

那么就是查詢的最后一個字段,如果是兩個,那么就是從后往前的字段進行匹配。

insert into table pp partition(`date`) select name,age,`date` from par;

這里的sql demo 

是將par 的`date` 字段 作為pp表之中 `date`分區(qū)的取值。

部分動態(tài)分區(qū):

就是多個分區(qū),但是前面的分區(qū)的取值是取靜態(tài)的,然后后面的分區(qū)的取值是未定的。

類似于 partition(country=’china’,city)

這里需要注意的是順序,靜態(tài)分區(qū)在前面,動態(tài)分區(qū)在后面。

然后就是多個分區(qū),完全的動態(tài)分區(qū):

完全動態(tài)分區(qū)的時候,就是使用后面select 查詢的表進行分區(qū)數(shù)據(jù)的匹配。

、

動態(tài)分區(qū)在實際使用的時候會遇到的問題:

動態(tài)分區(qū)的一個使用場景:

首先加載數(shù)據(jù)到一個表格a之中,然后將這個表格之中再次轉化到另外一個

表格b之中,表a轉化到表b的時候,使用動態(tài)分區(qū)。

因為直接使用load 加山亮載數(shù)據(jù)的時候,對于分區(qū)表而言,加載數(shù)據(jù)只能指定固定的分區(qū)名,

無法使用動態(tài)分區(qū)來加載數(shù)據(jù)。

相應的問題就是:

如果a表本身含有很多的文件,那么使用動態(tài)分區(qū)的時候,

那么在b表的時候,就是會產(chǎn)生很多的小文件。

原因如下:

如果 a表之中數(shù)據(jù)文件是200個,

那么動態(tài)分區(qū)的時候,可能會產(chǎn)生200個map,

然后一個map包含的數(shù)據(jù)之中,可能有多個分區(qū)的取值,

所以一個map 會產(chǎn)生多個文件。

所以后果就是,在新的b表之中的每個分區(qū)下面,會產(chǎn)生很多的小文件。

總結來說:不好的影響就是可能會產(chǎn)生很多的小文件。

解決的方式:

因為動態(tài)分區(qū)轉化成為的mapredue job 是沒有reduce,所以數(shù)目不好控制,

所以可以采用的方式,就是手動增加reduce的數(shù)目,

可以使用distributed by 來增加 reduce的數(shù)目。

insert into table table_a partition(‘partition_name’)

select *  from table_b

dirtribute by partitoin_name

但是這樣的方式,就是可能導致 reduce之間包含的數(shù)據(jù)量的不均勻。

所以解決的方法就是:

distribute by rand()

使用hash 隨機分區(qū),這樣的方式,來講數(shù)據(jù)均勻分配到reduce之中。

然后每個reduce 會產(chǎn)生 分區(qū)取值數(shù)目的文件,

例子: reduce數(shù)目為 200 分區(qū)的取值數(shù)位24

那么最后產(chǎn)生的文件的數(shù)目就是 200* 24個文件。

其實可以通過exlpain 來解析sql的執(zhí)行計劃,這樣的話,

可以看出是否具有reduce操作。

查詢表的分區(qū)信息:

show partitions table_name

向分區(qū)表之中增加分區(qū):

alter table table_name add partition(pfield=pvalue,…)

如果表格之中有多個分區(qū)的話,那么增加分區(qū)的時候,也是多個分區(qū)

一同增加的。

刪除分區(qū):

alter table table_name drop partition(pfield=pval)

分區(qū)信息修改:

分區(qū)信息的修改分為 分區(qū)名的修改 和 分區(qū)數(shù)據(jù)的修改 兩種

分區(qū)名的修改

alter table table_name partition(pfield=pvalue) rename to partition(pfield=pvalue)

分區(qū)數(shù)據(jù)的修改:

hive 不分區(qū)擴展數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于hive 不分區(qū)擴展數(shù)據(jù)庫,Hive擴展數(shù)據(jù)庫:無需分區(qū)化,hive 分區(qū)表的信息別忘了在本站進行查找喔。

四川成都云服務器租用托管【創(chuàng)新互聯(lián)】提供各地服務器租用,電信服務器托管、移動服務器托管、聯(lián)通服務器托管,云服務器虛擬主機租用。成都機房托管咨詢:13518219792
創(chuàng)新互聯(lián)(www.cdcxhl.com)擁有10多年的服務器租用、服務器托管、云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗、開啟建站+互聯(lián)網(wǎng)銷售服務,與企業(yè)客戶共同成長,共創(chuàng)價值。


文章名稱:Hive擴展數(shù)據(jù)庫:無需分區(qū)化(hive不分區(qū)擴展數(shù)據(jù)庫)
URL分享:http://www.dlmjj.cn/article/cdsjpei.html