hive 動態分區使用

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;

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';


發佈了56 篇原創文章 · 獲贊 7 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章