Hive 動態分割槽使用

2021-09-26 21:04:42 字數 1923 閱讀 1509

hive 動態分割槽與靜態分割槽,靜態分割槽需要制定分割槽欄位的值插入分割槽資料,動態分割槽可以根據分割槽欄位的值自動插入對應分割槽

靜態分割槽:須指定分割槽欄位的值

insert overwrite table test.tmp_edw_customer_event_detail_di partition(dt='20161218')

select 

cid                    

, event_code             

, event_name             

, event_channel_type_code

, event_time             

, event_user_role_code      

, event_extra_data       

, event_source_table_name

, event_source_table_code

, event_origin_id        

, event_latitude         

, event_longitude        

, event_trace_request_id 

, load_job_number        

, load_job_name          

, insert_timestamp

, source_system_code 

from test.ic_xf_event_from_user_trace_filter_init

where to_date(event_time) <= '2016-12-18';

動態分割槽:插入字段個數和順序與目標表一致

-- 設定開啟動態分割槽引數

set hive.exec.dynamic.partition=true;

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

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

insert overwrite table test.tmp_edw_customer_event_detail_di partition(dt)

select

cid

, event_code

, event_name

, event_channel_type_code

, event_time

, event_user_role_code

, event_extra_data

, event_source_table_name

, event_source_table_code

, event_origin_id

, event_latitude

, event_longitude

, event_trace_request_id

, load_job_number

, load_job_name

, insert_timestamp

, source_system_code

, regexp_replace(to_date(event_time), '-', '') as dt

from test.ic_xf_event_from_user_trace_filter_init

where to_date(event_time) > '2016-12-18';

Hive動態分割槽使用

動態分割槽可以即時給表新增分割槽,不用通過修改sql實現。允許在插入的時候指定分割槽,分割槽欄位為插入時字段的位置決定。例如 from page view stg pvs insert overwrite table page view partition dt 2008 06 08 country...

Hive 動態分割槽的使用

set hive.exec.dynamic.partition true set hive.exec.dynamic.partition.mode nonstrict 預設是strict嚴格模式,至少要有乙個靜態分割槽。將下表按照location進行分割槽 建立分割槽表 create table d...

HIVE動態分割槽

一 前段時間因為導表需求 從一張表中查詢出資料,按日期分割槽overwrite 到指定分割槽表中 在hive裡面研究了一下自動分割槽。步驟 1 建好所需分割槽表 2 設定分割槽引數?1 2 3 4 sethive.exec.dynamic.partition true 可通過這個語句檢視 sethi...