<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
        主站蜘蛛池模板: 一级做a爰片久久毛片免费陪 | 亚洲日本中文字幕天天更新| 日韩精品人妻系列无码专区免费| 狠狠色伊人亚洲综合成人| 精品国产污污免费网站入口在线 | 亚洲av丰满熟妇在线播放| 男人进去女人爽免费视频国产| 日本亚洲视频在线| 少妇太爽了在线观看免费视频| 中文字幕亚洲色图| 最近最新MV在线观看免费高清 | 国产精品免费久久久久电影网| 久久夜色精品国产亚洲av| 国产麻豆免费观看91| 亚洲人成网亚洲欧洲无码| 国产小视频在线免费| selaoban在线视频免费精品| 亚洲精品V欧洲精品V日韩精品| 99re免费在线视频| avtt天堂网手机版亚洲| 国产亚洲精品免费| 国产日韩久久免费影院| 亚洲色图视频在线观看| 国产精品黄页在线播放免费| 国产人成网在线播放VA免费| 亚洲综合综合在线| 天堂在线免费观看中文版| 国产精品hd免费观看| 亚洲精品成人网站在线播放| 最新中文字幕电影免费观看| 一级做a爰片久久毛片免费陪 | 91成人免费观看| 在线观看亚洲专区| 亚洲国产成人久久综合一| 毛片免费vip会员在线看| 一本大道一卡二大卡三卡免费| 亚洲AV无码成人精品区蜜桃| 免费看AV毛片一区二区三区| 国产一二三四区乱码免费| 亚洲 日韩经典 中文字幕| 亚洲乱码日产精品a级毛片久久|