728x90

빅데이터(BigData)/Hive 7

hive 테이블에 한번에 여러 파티션에 insert 하기

아래와 같이 한 번의 쿼리로 여러 파티션이 데이터를 입력할 수 있다. FROM table_name INSERT OVERWRITE TABLE table_1 PARTITION (part_date = '20200101', cust_type = '1') select * where table_name.part_date = '20200101' and table_name.cust_type = '1' INSERT OVERWRITE TABLE table_1 PARTITION (part_date = '20200101', cust_type = '2') select * where table_name.part_date = 'v' and table_name.cust_type = '2' INSERT OVERWRITE TABLE t..

hive에서 선택한 일자의 월요일 일자 가져오기

어떤 데이터를 추출할 때에는 월요일~일요일 사이의 데이터를 가져와야 할 경우가 있다. 예를들어 주간 실적같은 것을 보여줄 때가 그렇다. 이럴 때는 월요일~일요일의 일자를 알아야 한다. 월요일만 알면 6일을 더하면 일요일이 되기 때문에 월요일 날짜를 찾는게 집중하면 된다. hive에서는 아래와 같이 쿼리를 실행하면 월요일의 일자를 알 수 있다. select next_day(date_sub('2019-01-01', 7), 'MON') hive 1.2 버전 이상에서만 될 수 있으니 hive의 버전을 확인하자. 참고 stackoverflow.com/questions/33196651/how-to-get-the-date-of-the-first-day-of-a-week-given-a-time-stamp-in-hado..

Hive에서 파티션을 기준으로 데이터 삭제하기

Hive에서 데이터를 빠르게 삭제하는 방법은 파티션 기준으로 데이터를 삭제하는 것입니다. 파티션을 기준으로 데이터를 삭제하기 위해서는 데이터를 삭제하려는 기준이 파티션을 분할한 기준과 일치해야 합니다. ALTER TABLE table_name DROP PARTITION(파티션 분할 기준 컬럼='파티션명'); 위와 같이 파티션 분할 기준 컬럼과 파티션명을 이용하여 데이터를 삭제할 수 있습니다. 예를들어 보겠습니다. 아래 테이블은 2019년 1월부터 12월까지의 매출 데이터가 있는 테이블입니다. 테이블명 : FACT_SALES 파티션 기준 컬럼 : BASE_YM 파티션명 : 201901,201902.....201912 위의 테이블에서 2019년 03월 데이터만 삭제할 경우 아래와 같이 할 수 있습니다. AL..

728x90