Hive 動態分割槽恢復靜態分割槽表資料

2021-09-26 21:04:42 字數 1710 閱讀 4928

在企業上使用 hive 進行離線批量資料統計時,有時會遇到 oozie 工作流排程失敗,導致很多 ptdate 時間分割槽沒有資料,可以通過 hive 建立臨時表儲存所有缺失的ptdate時間分割槽資料,然後通過hive動態分割槽查詢臨時表匯入資料至最終統計結果表中。

一、在正式介紹 hive 動態分割槽恢復靜態分割槽表資料時,先介紹一下 hive load 匯入資料的用法

hive load 用法:

(1)從本地載入檔案中的資料並覆蓋至表 lake_bg_ods.bigdata_test_20190905 中

load data local inpath '/home/bigdata/bigdata_test_20190905.txt'

overwrite table lake_bg_dm.bigdata_test_20190905;

(2)從hdfs上載入檔案中的資料並追加至表 lake_bg_ods.bigdata_test_20190905 中

load data inpath '/home/bigdata/bigdata_test_20190905.txt'

into table lake_bg_dm.bigdata_test_20190905;

備註:關鍵字 local 不加,資料從hdfs上載入;如果加 local ,資料從本地載入。

關鍵字 overwrite 為覆蓋載入,會覆蓋掉原有的資料; into 為 檔案末尾追加資料,不會覆蓋掉原有的資料。

二、hive 動態分割槽恢復靜態分割槽表資料

set hive.exec.dynamic.partition=true;    --(預設false),表示開啟動態分割槽功能

set hive.exec.dynamic.partition.mode=nonstrict;   --(預設strict),表示允許所有分割槽都是動態的,否則必須有靜態分割槽字段

--每個maper或reducer可以允許建立的最大動態分割槽個數,預設是100,超出則會報錯

set hive.exec.max.dynamic.partitions.pernode = 1000;   

-- 乙個動態分割槽語句可以建立的最大動態分割槽個數,超出報錯

set hive.exec.max.dynamic.partitions=1000;

insert overwrite table lake_bg_dm.bigdata_test_20190905 partition(ptdate= $) --手動分割槽

select * from lake_bg_edw.bsl_bigdata_tmp;

insert into table lake_bg_dm.bigdata_test_20190905 partition(ptdate= $) --手動分割槽

select * from lake_bg_edw.bsl_bigdata_tmp;

insert overwrite lake_bg_dm.bigdata_test_20190905

partition(ptdate= $) --動態分割槽

select *, ptdate from lake_bg_edw.bsl_bigdata_tmp;

insert overwrite 會覆蓋表或分割槽中已存在的資料

insert into 以追加資料的方式插入到表或分割槽,原有資料不會刪除

insert 可以插入表或分割槽,如果表是分割槽表,則 insert 時需要指定插入到哪個分割槽

指定動態分割槽 hive分割槽表

1.建立分割槽表 create external table if not exists table1 col1 string,col2 string partitioned by state string,country string row format delimited fields ter...

hive 動態分割槽表

注意 1 並不是都要建輔助表,因為是用load的方式載入資料,所以才要建 2 select 的時候,分割槽欄位要寫在最後面 使用動態分割槽表必須配置的引數 設定為true允許使用dynamic partition hive.exec.dynamic.partition 預設false 設定dynam...

Hive分割槽表,動態分割槽,分桶表

分割槽針對的是資料的儲存路徑 分桶針對的是資料檔案 對已經分好類的檔案匯入靜態分割槽 create table tb p order oid int dt string cost double partitioned by mot string,day string row format delim...