久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

        當(dāng)前位置:首頁  >  應(yīng)聘面試  >  大數(shù)據(jù)面試題  > 大數(shù)據(jù)面試題:分區(qū)和分桶

        大數(shù)據(jù)面試題:分區(qū)和分桶

        來源:千鋒教育
        發(fā)布人:syq
        時(shí)間: 2022-06-21 16:57:00 1655801820

          一、分區(qū)

          指的就是將數(shù)據(jù)按照表中的某一個(gè)字段進(jìn)行統(tǒng)一歸類,并存儲(chǔ)在表中的不同的位置,也就是說,一個(gè)分區(qū)就是一類,這一類的數(shù)據(jù)對應(yīng)到hdfs存儲(chǔ)上就是對應(yīng)一個(gè)目錄。

          1.靜態(tài)分區(qū)

          數(shù)據(jù)已經(jīng)按某些字段分完區(qū)放在一塊,建表時(shí)直接指定分區(qū)即可。

          create table entercountrypeople(id int,name string,cardNum string)

          partitioned by (enter_date string,country string);

          注意,這里的分區(qū)字段不能包含在表定義字段中,因?yàn)樵谙虮碇衛(wèi)oad數(shù)據(jù)的時(shí)候,需要手動(dòng)指定該字段的值.

          2.數(shù)據(jù)加載(指定分區(qū)):

          load data inpath '/hadoop/guozy/data/enter_chinapeople' into table entercountrypeople partition (enter_date='2019-01-02',country='china');

          此處自動(dòng)創(chuàng)建分區(qū)目錄;

        111

          創(chuàng)建完后目錄結(jié)構(gòu):

         

          其他創(chuàng)建分區(qū)目錄的方法:

          1)alter table entercountrypeople add if not exists partition (enter_date='2019-01-03',country='US');

          2)在相應(yīng)的表目錄下創(chuàng)建分區(qū)目錄后,執(zhí)行 msck repair table table_name;

          2.動(dòng)態(tài)分區(qū)

          建表相同,主要是加載數(shù)據(jù)方式不同,動(dòng)態(tài)分區(qū)是將大雜燴數(shù)據(jù)自動(dòng)加載到不同分區(qū)目錄。

          1)開啟非嚴(yán)格模式

          2)要從另一張hive表查詢

          set hive.exec.dynamic.partition.mode=nonstrict;

          insert into table entercountrypeople(user string,age int) partition(enterdate,country) select user,age,enterdate,country from entercountrypeople_bak;

          二、分桶表

          如果兩個(gè)表根據(jù)相同的字段進(jìn)行分桶,則在對這兩個(gè)表進(jìn)行關(guān)聯(lián)的時(shí)候可以使用map-side關(guān)聯(lián)高效實(shí)現(xiàn)

          create table user_bucket(id int comment 'ID',name string comment '姓名',age int comment '年齡') comment '測試分桶' clustered by (id) sorted by (id) into 4 buckets row format delimited fields terminated by '\t';

          指定根據(jù)id字段進(jìn)行分桶,并且分為4個(gè)桶,并且每個(gè)桶內(nèi)按照id字段升序排序,如果不加sorted by,則桶內(nèi)不經(jīng)過排序的,上述語句中為id,根據(jù)id進(jìn)行hash之后在對分桶數(shù)量4進(jìn)行取余來決定該數(shù)據(jù)存放在哪個(gè)桶中,因此每個(gè)桶都是整體數(shù)據(jù)的隨機(jī)抽樣。

          數(shù)據(jù)載入:

          我們需要借助一個(gè)中間表,先將數(shù)據(jù)load到中間表中,然后通過insert的方式來向分桶表中載入數(shù)據(jù)。

          create table tmp_table (id int comment 'ID',name string comment '名字',age int comment '年齡') comment '測試分桶中間表' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ;

          load data inpath '/hadoop/guoxb/data/user.txt' into table tmp_table;

          insert into userbucket select * from tmptable;

          上述的語句中,最終會(huì)在hdfs上生成四個(gè)文件,而不是四個(gè)目錄,如果當(dāng)在次向該分桶表中insert數(shù)據(jù)后,會(huì)又增加4個(gè)文件,而不是在原來的文件上進(jìn)行追加。

          三、區(qū)別

          1.hdfs目錄結(jié)構(gòu)不同,分區(qū)是生成目錄,分桶是生成文件

          2.分區(qū)表在加載數(shù)據(jù)的時(shí)候可以指定加載某一部分?jǐn)?shù)據(jù),有利于查詢

          3.分桶在map-side join(另一種 reduce-side join)查詢時(shí),可以直接從bucket(兩表分桶成倍數(shù)即可)中提取數(shù)據(jù)進(jìn)行關(guān)聯(lián)操作,查詢高效。

          更多關(guān)于“大數(shù)據(jù)培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時(shí)歡迎你來試聽。

        tags:
        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
        免費(fèi)領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        內(nèi)部表和外部表(重點(diǎn))

        hive外部表是使用external關(guān)鍵字并指定一個(gè)hdfs目錄創(chuàng)建的表。hive內(nèi)部表在創(chuàng)建時(shí)會(huì)在對應(yīng)hive目錄下創(chuàng)建相應(yīng)的文件夾,外部表則以指定文件夾為...詳情>>

        2022-09-02 17:21:00
        Flink checkpoint和savepoint區(qū)別

        Checkpoint是為runtime準(zhǔn)備的,Savepoint 是為用戶準(zhǔn)備的。Checkpoint 機(jī)制的目標(biāo)在于保證Flink作業(yè)意外崩潰重啟不影響exactly once 準(zhǔn)確性,通...詳情>>

        2022-09-02 16:59:22
        Flink State?

        State:指一個(gè)具體的Task/Operator的狀態(tài)。State可以被記錄,在失敗的情況下數(shù)據(jù)還可以恢復(fù),F(xiàn)link中有兩種基本類型的State: Keyed State, Op...詳情>>

        2022-09-02 16:59:19
        Flink反壓機(jī)制?

        Flink 內(nèi)部是基于producer-consumer模型來進(jìn)行消息傳遞的,F(xiàn)link的反壓設(shè)計(jì)也是基于這個(gè)模型。Flink 使用了高效有界的分布式阻塞隊(duì)列,就像 Jav...詳情>>

        2022-09-02 16:59:16
        大數(shù)據(jù)面數(shù)據(jù):Flink Allowed Lateness & Side OutPut?

        雖說水位線(Watermark)表明早于它的事件不應(yīng)該再出現(xiàn),但是接收到水位線以前的的消息是不可避免的,這就是所謂的遲到事件。實(shí)際上遲到事件是亂...詳情>>

        2022-09-02 16:59:00
        快速通道
        沂源县| 伊宁市| 玛曲县| 五莲县| 灵璧县| 盘山县| 新干县| 平阴县| 桐庐县| 太和县| 平泉县| 海晏县| 衢州市| 鄂州市| 娱乐| 三门县| 鸡泽县| 平潭县| 阳谷县| 泰来县| 文水县| 富阳市| 如皋市| 漳州市| 北碚区| 安陆市| 翁源县| 永宁县| 辽源市| 贵阳市| 平顺县| 镇赉县| 三门峡市| 犍为县| 恩施市| 武邑县| 绥江县| 莆田市| 隆林| 德庆县| 霍州市|