<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        hive分區(partition)簡介

        來源:懂視網 責編:小采 時間:2020-11-09 16:22:16
        文檔

        hive分區(partition)簡介

        hive分區(partition)簡介:網上有篇關于hive的partition的使用講解的比較好,轉載了: 一、背景 1、在Hive Select查詢中一般會掃描整個表內容,會消耗很多時間做沒必要的工作。有時候只需要掃描表中關心的一部分數據,因此建表時引入了partition概念。 2、分區表指的是在創建表時指定
        推薦度:
        導讀hive分區(partition)簡介:網上有篇關于hive的partition的使用講解的比較好,轉載了: 一、背景 1、在Hive Select查詢中一般會掃描整個表內容,會消耗很多時間做沒必要的工作。有時候只需要掃描表中關心的一部分數據,因此建表時引入了partition概念。 2、分區表指的是在創建表時指定

        網上有篇關于hive的partition的使用講解的比較好,轉載了: 一、背景 1、在Hive Select查詢中一般會掃描整個表內容,會消耗很多時間做沒必要的工作。有時候只需要掃描表中關心的一部分數據,因此建表時引入了partition概念。 2、分區表指的是在創建表時指定

        網上有篇關于hive的partition的使用講解的比較好,轉載了:

        一、背景

        1、在Hive Select查詢中一般會掃描整個表內容,會消耗很多時間做沒必要的工作。有時候只需要掃描表中關心的一部分數據,因此建表時引入了partition概念。

        2、分區表指的是在創建表時指定的partition的分區空間。

        3、如果需要創建有分區的表,需要在create表的時候調用可選參數partitioned by,詳見表創建的語法結構。

        二、技術細節

        1、一個表可以擁有一個或者多個分區,每個分區以文件夾的形式單獨存在表文件夾的目錄下。

        2、表和列名不區分大小寫。

        3、分區是以字段的形式在表結構中存在,通過describe table命令可以查看到字段存在,但是該字段不存放實際的數據內容,僅僅是分區的表示。

        4、建表的語法(建分區可參見PARTITIONED BY參數):

        CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] [ROW FORMAT row_format] [STORED AS file_format] [LOCATION hdfs_path]

        5、分區建表分為2種,一種是單分區,也就是說在表文件夾目錄下只有一級文件夾目錄。另外一種是多分區,表文件夾下出現多文件夾嵌套模式。

        a、單分區建表語句:create table day_table (id int, content string) partitioned by (dt string);單分區表,按天分區,在表結構中存在id,content,dt三列。

        b、雙分區建表語句:create table day_hour_table (id int, content string) partitioned by (dt string, hour string);雙分區表,按天和小時分區,在表結構中新增加了dt和hour兩列。

        表文件夾目錄示意圖(多分區表):


        6、添加分區表語法(表已創建,在此基礎上添加分區):

        ALTER TABLE table_name ADD partition_spec [ LOCATION 'location1' ] partition_spec [ LOCATION 'location2' ] ... partition_spec: : PARTITION (partition_col = partition_col_value, partition_col = partiton_col_value, ...)

        用戶可以用 ALTER TABLE ADD PARTITION 來向一個表中增加分區。當分區名是字符串時加引號。例:

        ALTER TABLE day_table ADD PARTITION (dt='2008-08-08', hour='08') location '/path/pv1.txt' PARTITION (dt='2008-08-08', hour='09') location '/path/pv2.txt';

        7、刪除分區語法:

        ALTER TABLE table_name DROP partition_spec, partition_spec,...

        用戶可以用 ALTER TABLE DROP PARTITION 來刪除分區。分區的元數據和數據將被一并刪除。例:

        ALTER TABLE day_hour_table DROP PARTITION (dt='2008-08-08', hour='09');

        8、數據加載進分區表中語法:

        LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]

        例:

        LOAD DATA INPATH '/user/pv.txt' INTO TABLE day_hour_table PARTITION(dt='2008-08- 08', hour='08'); LOAD DATA local INPATH '/user/hua/*' INTO TABLE day_hour partition(dt='2010-07- 07');

        當數據被加載至表中時,不會對數據進行任何轉換。Load操作只是將數據復制至Hive表對應的位置。數據加載時在表下自動創建一個目錄,文件存放在該分區下。

        9、基于分區的查詢的語句:

        SELECT day_table.* FROM day_table WHERE day_table.dt>= '2008-08-08';

        10、查看分區語句:

        hive> show partitions day_hour_table; OK dt=2008-08-08/hour=08 dt=2008-08-08/hour=09 dt=2008-08-09/hour=09

        三、總結

        1、在 Hive 中,表中的一個 Partition 對應于表下的一個目錄,所有的 Partition 的數據都存儲在最字集的目錄中。

        2、總的說來partition就是輔助查詢,縮小查詢范圍,加快數據的檢索速度和對數據按照一定的規格和條件進行管理。

        ——————————————————————————————————————

        hive中關于partition的操作:
        hive> create table mp (a string) partitioned by (b string, c string);
        OK
        Time taken: 0.044 seconds
        hive> alter table mp add partition (b='1', c='1');
        OK
        Time taken: 0.079 seconds
        hive> alter table mp add partition (b='1', c='2');
        OK
        Time taken: 0.052 seconds
        hive> alter table mp add partition (b='2', c='2');
        OK
        Time taken: 0.056 seconds
        hive> show partitions mp ;
        OK
        b=1/c=1
        b=1/c=2
        b=2/c=2
        Time taken: 0.046 seconds
        hive> explain extended alter table mp drop partition (b='1');
        OK
        ABSTRACT SYNTAX TREE:
        (TOK_ALTERTABLE_DROPPARTS mp (TOK_PARTSPEC (TOK_PARTVAL b '1')))

        STAGE DEPENDENCIES:
        Stage-0 is a root stage

        STAGE PLANS:
        Stage: Stage-0
        Drop Table Operator:
        Drop Table
        table: mp


        Time taken: 0.048 seconds
        hive> alter table mp drop partition (b='1');
        FAILED: Error in metadata: table is partitioned but partition spec is not specified or tab: {b=1}
        FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
        hive> show partitions mp ;
        OK
        b=1/c=1
        b=1/c=2
        b=2/c=2
        Time taken: 0.044 seconds
        hive> alter table mp add partition ( b='1', c = '3') partition ( b='1' , c='4');
        OK
        Time taken: 0.168 seconds
        hive> show partitions mp ;
        OK
        b=1/c=1
        b=1/c=2
        b=1/c=3
        b=1/c=4
        b=2/c=2
        b=2/c=3
        Time taken: 0.066 seconds
        hive>insert overwrite table mp partition (b='1', c='1') select cnt from tmp_et3 ;

        hive>alter table mp add columns (newcol string);

        location指定目錄結構
        hive> alter table alter2 add partition (insertdate='2008-01-01') location '2008/01/01';

        hive> alter table alter2 add partition (insertdate='2008-01-02') location '2008/01/02';

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        hive分區(partition)簡介

        hive分區(partition)簡介:網上有篇關于hive的partition的使用講解的比較好,轉載了: 一、背景 1、在Hive Select查詢中一般會掃描整個表內容,會消耗很多時間做沒必要的工作。有時候只需要掃描表中關心的一部分數據,因此建表時引入了partition概念。 2、分區表指的是在創建表時指定
        推薦度:
        標簽: 介紹 上有 簡介
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久久亚洲精精品中文字幕| 666精品国产精品亚洲| 久久久青草青青国产亚洲免观| 国产亚洲精品不卡在线| 美女被免费视频网站| 久久久99精品免费观看| 啦啦啦高清视频在线观看免费| 中文亚洲成a人片在线观看| 免费很黄无遮挡的视频毛片| 免费国产作爱视频网站| 亚洲国产精品久久久天堂| 日本亚洲欧美色视频在线播放 | 国产精品亚洲A∨天堂不卡| 亚洲综合欧美色五月俺也去| 91成人免费福利网站在线| 免费特级黄毛片在线成人观看| 久久综合图区亚洲综合图区| 麻豆69堂免费视频| 亚洲真人无码永久在线| 亚洲色大情网站www| 免费少妇a级毛片人成网| 国产亚洲福利在线视频| 1024免费福利永久观看网站| 亚洲国产日韩一区高清在线| 久久精品免费大片国产大片| 免费一级毛片女人图片| 国产又黄又爽又大的免费视频| 国产午夜免费福利红片| 无码天堂亚洲国产AV| 国产国产人免费人成免费视频| 亚洲精品一卡2卡3卡四卡乱码| 2021国产精品成人免费视频| 亚洲av成人一区二区三区在线播放| 亚洲国产高清在线一区二区三区| 亚洲av无码日韩av无码网站冲| 亚洲五月综合缴情在线观看| h在线观看视频免费网站| 亚洲欧洲精品久久| 日韩免费在线视频| 色播亚洲视频在线观看| 日本成人在线免费观看|