티스토리 뷰
Hive를 사용하다 보면 전달 1일 또는 전달 마지막일을 구해야 할 때가 있다. 날짜 계산 함수를 사용하여 원하는 값을 구해보자.
#전월 1일
select add_months(trunc('2019-11-04', 'MM'), -1);
select add_months(trunc(current_date, 'MM'), -1);
select date_format(add_months(trunc(current_date, 'MM'), -1), 'yyyyMMdd');
trunc와 add_months를 통해 전월 1일을 구할 수 있다. 결과 값 format이 맞지 않다면 date_format을 통해
날짜 포멧을 변경하면 된다.
#전월 마지막 일자
select last_day(add_months(trunc('2019-11-04', 'MM'), -1));
select last_day(add_months(trunc(current_date, 'MM'), -1));
select date_format(last_day(add_months(trunc(current_date, 'MM'), -1)), 'yyyyMMdd');
역시 tunc와 add_months 통해 전월 1일을 구할 수 있으며, last_day는 손쉽게 마지막 날을 반환해준다. 필요에 따라 date_format을 사용하면 된다.
특정일 사이 마지막 파티션 구하기
#전월 마지막 파티션
select max(etl_dt)
from hive_table
where etl_dt between date_format(add_months(trunc(current_date, 'MM'), -1), 'yyyyMMdd')
and date_format(last_day(add_months(trunc(current_date, 'MM'), -1)), 'yyyyMMdd');
데이터를 수집하거나 제공할때 해당 월의 마지막 파티션이 필요로 할때가 있다. 파티션 단위가 데일리이면 상관없지만 특정요일 주 단위인 경우 마지막 파티션이 언제가 될지 모른다. 이런 경우 월의 첫일자와 마지막 일자를 구하여 파티션에 max를 씌어주면된다.
'데이터베이스 > Big Data' 카테고리의 다른 글
[Big Data] Hive SemanticException Unable to fetch table null (0) | 2019.11.27 |
---|---|
[Big Data] Hive SemanticException Unable to fetch table TableName (0) | 2019.11.22 |
[Big Data] Hive Failed to recognize predicate 'group'. Failed rule: 'identifier' in table or column identifier (0) | 2019.11.01 |
[Big Data] Hive Create Table (0) | 2019.10.10 |
[Big Data] Hive crontab을 사용하여 hive partition 만들기 (0) | 2019.10.03 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
TAG
- javascript
- 리액트
- 자바
- 리눅스 명령어
- 이직
- SQL
- 프로그래머
- 오라클 내장 함수
- Maven
- 경력관리
- 개발환경
- 프로그래머스
- Linux 명령어
- 오라클
- sort algorithm
- Java
- effective java
- spring
- 자바스크립트
- Eclipse
- 제주도 3박4일 일정
- 성능분석
- 소프트웨어공학
- React
- Tomcat
- Collection
- 정렬 알고리즘
- 리액트 16
- 제주도 여행
- 회고
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함