2017-02-07 10 views
0

파티션 중 하나에서 기존 파티션의 작은 파일을 하나의 큰 파일로 병합하는 방법.하이브에있는 기존 파티션의 작은 파일을 병합하는 방법은 무엇입니까?

예를 들어, 테이블 user1이 있고, 열은 fname, lname이고 파티션 열은 day입니다. ;

나는 스크립트 이하로 사용하여

(일 int)를 parittioned 표 USER1 (FNAME 문자열, LNAME 문자열)를 만들 테이블을 만들었습니다

partion 테이블에 데이터를 삽입 한 후 아래와 같이 표시됩니다.

fname lname day 
..................... 
AA  AAA 20170201  ....>partition 20170201 
BB  BBB 20170201 
................... 
CC  CCC 20170202 ......>partition 20170202 
DD  DDD 20170202 
.................... 
EE  EEE 20170203 .......>partition 20170203 
FF  FFF 20170203 
....................... 
GG  GGG 20170204 ........>partition 20170204   
HH  HHH 20170204 
....................... 

파티션 열 (예 : 20170201)의 도움으로 select 쿼리를 실행할 때.

select * from user1 where day=20170201; 
는 는

그것은 내가 모든 작은 파일 일 = 20,170,201와 일 = 20,170,202와 일 = 파티션에 20,170,203일 즉 = 20,170,203에 병합 할 위의 표에 따라

AA  AAA 20170201 
BB  BBB 20170201 

아래와 같은 결과를 줄 것이다 내 파티션 테이블 (예 : USer1) .ie 그것은 아래처럼 보일 것입니다.

fname lname day 
..................... 
AA  AAA 20170201 
BB  BBB 20170201 
CC  CCC 20170202  
DD  DDD 20170202 
E  EEE 20170203 .......>partition 20170203 
FF  FFF 20170203 
....................... 
GG  GGG 20170204 ........>partition 20170204   
HH  HHH 20170204 
....................... 

제발 내가 이걸 어떻게 할 수 있니?

미리 감사드립니다.

답변

0
  1. 새로운 테이블에 새로운 필드 partition_day에 의해 분할 만들기 :

    (partition_day의 int)를 parittioned 표 user_new (FNAME 문자열, LNAME 문자열 일 int)를 CREATE; 새 테이블에

  2. 데이터로드 (새에 대한 귀하의 조건을 정의하는 case partitionsin)

    삽입 덮어 테이블 user_new 파티션 (partition_day) 선택 FNAME, LNAME, 일, 경우 경우 다음 날 < = 20,170,203 20,170,203 일> 20170203 일 때 20170204 end as partition_day from user1;

+0

죄송합니다, 형식은 새로운 테이블에 대한 작동, 응답을 – leftjoin

+0

안녕 감사를 작동하지 않습니다하지만 난 같은 기존의 테이블을 사용하고 싶습니다. 그래서 "alter table user1 columns (partition_day int);"을 사용하여 기존 테이블에 새 열을 추가합니다. 새 열은 NULL 값으로 추가됩니다. 이제 partition_day에는 "NULL"값이 포함되어 있습니다. 그러나 그 후에는 아래에서 같은 테이블을 선택하여 동일한 테이블을 덮어 쓰려고합니다. "day_20170206 일 때 20170206, 20170206 일 때 20170207, user1에서 20170207 종료" –

+0

다음으로 partition_day는 Null 값만 포함합니다. 일일 값을 partition_Day로 설정하는 방법에 대한 도움을받을 수 있습니까? 미리 감사드립니다. –