内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Hive中怎么實(shí)現(xiàn)動態(tài)分區(qū)

本篇文章為大家展示了Hive中怎么實(shí)現(xiàn)動態(tài)分區(qū),內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)建站是一家專業(yè)提供高坪企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、H5建站、小程序制作等業(yè)務(wù)。10年已為高坪眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

動態(tài)分區(qū)調(diào)整

  • 動態(tài)分區(qū)屬性:設(shè)置為true表示開啟動態(tài)分區(qū)功能(默認(rèn)為false)hive.exec.dynamic.partition=true;

  • 動態(tài)分區(qū)屬性:設(shè)置為nonstrict,表示允許所有分區(qū)都是動態(tài)的(默認(rèn)為strict)設(shè)置為strict,表示必須保證至少有一個分區(qū)是靜態(tài)的hive.exec.dynamic.partition.mode=strict;

  • 動態(tài)分區(qū)屬性:每個mapper或reducer可以創(chuàng)建的最大動態(tài)分區(qū)個數(shù)hive.exec.max.dynamic.partitions.pernode=100;

  • 動態(tài)分區(qū)屬性:一個動態(tài)分區(qū)創(chuàng)建語句可以創(chuàng)建的最大動態(tài)分區(qū)個數(shù)hive.exec.max.dynamic.partitions=1000;

  • 動態(tài)分區(qū)屬性:全局可以創(chuàng)建的最大文件個數(shù)hive.exec.max.created.files=100000;

  • 控制DataNode一次可以打開的文件個數(shù)  這個參數(shù)必須設(shè)置在DataNode的$HADOOP_HOME/conf/hdfs-site.xml文件中

<property>     <name>dfs.datanode.max.xcievers</name>     <value>8192</value> </property>

注意

在Hive中,動態(tài)分區(qū)會造成在插入數(shù)據(jù)過程中,生成過多零碎的小文件

動態(tài)分區(qū)插入

如果需要創(chuàng)建非常多的分區(qū),用戶就需要寫非常多的條件查詢sql把數(shù)據(jù)插入對應(yīng)分區(qū)。好在Hive提供了動態(tài)分區(qū)功能,可以根據(jù)分區(qū)字段的取值自動創(chuàng)建分區(qū)。前面列出的開啟動態(tài)分區(qū)hive.exec.dynamic.partition,并且hive.exec.dynamic.partition.mode需要為非嚴(yán)格模式,通常如果分區(qū)很多的話,hive.exec.max.dynamic.partitions.pernode也需要設(shè)置為一個較大的數(shù),否則會有報錯提醒。

現(xiàn)在有sql:

insert overwrite table employees partitions (country, state) select ...,se.cnty, se.st from staged_employees se;

可以看出,Hive根據(jù)select語句中最后兩列來確定分區(qū)字段country和state的值,這里刻意使用了不同的命名,就是為了強(qiáng)調(diào)源表字段和輸出分區(qū)值之間的關(guān)系是根據(jù)位置而不是根據(jù)命名來匹配的。

動靜分區(qū)結(jié)合

也可以混合使用動態(tài)和靜態(tài)分區(qū)。上面那個例子,我們可以指定國家這個分區(qū)值五為靜態(tài)值US,而分區(qū)字段state是動態(tài)值:

insert overwrite table employees partitions (country = 'US', state) select ...,se.cnty, se.st from staged_employees se where se.cnty = 'US';

注意:靜態(tài)分區(qū)需要出現(xiàn)在動態(tài)分區(qū)字段之前。

動態(tài)分區(qū)功能默認(rèn)情況下是沒有開啟的,默認(rèn)是以嚴(yán)格模式執(zhí)行,這種模式下要求至少有一列分區(qū)字段是靜態(tài)的。這樣做的好處是可以防止因設(shè)計(jì)或其它錯誤查詢導(dǎo)致產(chǎn)生大量的分區(qū),比如sql  boy不小心使用了時間戳作為分區(qū)字段,那將是災(zāi)難。在日常導(dǎo)入一天的數(shù)據(jù),通常是指定日期為靜態(tài)分區(qū),小時為動態(tài)分區(qū),進(jìn)行混合模式導(dǎo)入。

例子

建表

create table if not exists test.test ( id string, name string ) partitioned by (dt string,hour stringrow format delimited fields terminated by '\t';  create table if not exists test.test2 ( id string, name string ) partitioned by (dt string,hour stringrow format delimited fields terminated by '\t' stored as orc;

導(dǎo)入數(shù)據(jù)到test.test表

load data local inpath '/home/hadoop/data/test.txt' into table test.test partition(dt = '2019-09-10'hour = '02');  test.txt 001    keguang 002    kg 003    kk 004    ikeguang

利用動態(tài)分區(qū)插入

insert overwrite table test.test2 partition(dt, hourselect `(dt|hour)?+.+`,dt,hour from test.test;

上述內(nèi)容就是Hive中怎么實(shí)現(xiàn)動態(tài)分區(qū),你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前標(biāo)題:Hive中怎么實(shí)現(xiàn)動態(tài)分區(qū)
地址分享:http://www.rwnh.cn/article24/jcggje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、微信公眾號微信小程序、網(wǎng)站設(shè)計(jì)公司自適應(yīng)網(wǎng)站、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
泾阳县| 荆门市| 象州县| 鱼台县| 平山县| 中阳县| 陵水| 根河市| 灌南县| 富裕县| 饶阳县| 大田县| 泸西县| 泾川县| 大化| 和政县| 五指山市| 思南县| 泰兴市| 仙游县| 龙游县| 鲜城| 通城县| 尖扎县| 延吉市| 垣曲县| 罗山县| 荥阳市| 六安市| 华容县| 衡南县| 潢川县| 云阳县| 城固县| 黄平县| 湘潭县| 白朗县| 乌拉特后旗| 教育| 长泰县| 伊吾县|