Hive動態分割槽
Hive動態分割槽
一)hive中支援兩種型別的分割槽:
靜態分割槽SP(static partition)
動態分割槽DP(dynamic partition)
靜態分割槽與動態分割槽的主要區別在於靜態分割槽是手動指定,而動態分割槽是通過資料來進行判斷。詳細來說,靜態分割槽的列實在編譯時期,通過使用者傳遞來決定的;動態分割槽只有在SQL執行時才能決定。
二)實戰演示如何在hive中使用動態分割槽
1、建立一張分割槽表,包含兩個分割槽dt和ht表示日期和小時
CREATE TABLE partition_table001
(
name STRING,
ip STRING
)
PARTITIONED BY (dt STRING, ht STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY " ";
2、啟用hive動態分割槽,只需要在hive會話中設定兩個引數:
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
3、把partition_table001表某個日期分割槽下的資料load到目標表partition_table002 使用靜態分割槽時,必須指定分割槽的值,如:
create table if not exists partition_table002 like partition_table001;
insert overwrite table partition_table002 partition (dt=`20150617`, ht=`00`) select name, ip from partition_table001 where dt=`20150617` and ht=`00`;
此時我們發現一個問題,如果希望插入每天24小時的資料,則需要執行24次上面的語句。而動態分割槽會根據select出的結果自動判斷資料改load到哪個分割槽中去。
4、使用動態分割槽
insert overwrite table partition_table002 partition (dt, ht) select * from partition_table001 where dt=`20150617`;
hive先獲取select的最後兩個位置的dt和ht引數值,然後將這兩個值填寫到insert語句partition中的兩個dt和ht變數中,即動態分割槽是通過位置來對應分割槽值的。原始表select出來的值和輸出partition的值的關係僅僅是通過位置來確定的,和名字並沒有關係,比如這裡dt和st的名稱完全沒有關係。
只需要一句SQL即可把20150617下的24個ht分割槽插到了新表中。
相關文章
- Hive的靜態分割槽與動態分割槽Hive
- Hive中靜態分割槽和動態分割槽總結Hive
- Hive動態分割槽詳解Hive
- hive Sql的動態分割槽問題HiveSQL
- hive 動態分割槽插入資料表Hive
- 好程式設計師大資料培訓分享Hive的靜態分割槽與動態分割槽程式設計師大資料Hive
- 好程式設計師大資料開發之掌握Hive的靜態分割槽與動態分割槽程式設計師大資料Hive
- hive分割槽分桶Hive
- HIVE基本語法以及HIVE分割槽Hive
- Spark操作Hive分割槽表SparkHive
- Hive的分割槽和排序Hive排序
- Hive和Spark分割槽策略HiveSpark
- [Hive]hive分割槽設定注意事項Hive
- 非 LVM 分割槽動態擴容LVM
- hive分割槽和分桶你熟悉嗎?Hive
- 一起學Hive——使用MSCK命令修復Hive分割槽Hive
- SSD固態硬碟要分割槽嗎?SSD固態硬碟分割槽與不分割槽的效能對比硬碟
- hive 分割槽表和分桶表區別Hive
- 【趙渝強老師】Hive的分割槽表Hive
- hive迷案之消失的分割槽檔案Hive
- hive學習筆記之四:分割槽表Hive筆記
- 作業系統 『動態(可變)分割槽分配』作業系統
- SSD固態硬碟要分割槽嗎?不同容量SSD固態硬碟分割槽方案建議硬碟
- Oracle12c:建立主分割槽、子分割槽,實現自動分割槽插入效果Oracle
- 處理動態分割槽時出現的異常
- 移動分割槽表和分割槽索引的表空間索引
- 分割槽表之自動增加分割槽(11G)
- DiskGenius分割槽行動硬碟硬碟
- hive從入門到放棄(四)——分割槽與分桶Hive
- SSD固態硬碟是分割槽好還是不分割槽好?SSD固態硬碟使用注意事項硬碟
- Linux分割槽方案、分割槽建議Linux
- oracle分割槽表和分割槽表exchangeOracle
- PostgreSQL/LightDB 分割槽表之分割槽裁剪SQL
- Linux 分割槽擴容(根分割槽擴容,SWAP 分割槽擴容,掛載新分割槽為目錄)Linux
- hive建立分割槽表報錯AccessControlException Permission denied: user=NONE, access=WRITE, inodeHiveExceptionNone
- Oracle分割槽表基礎運維-07增加分割槽(2 HASH分割槽)Oracle運維
- oracle分割槽表和非分割槽表exchangeOracle
- 非分割槽錶轉換成分割槽表