이벤트를 Spark Stream 등으로 받아 Hive table로 저장하면 많은 조각 파일들이 생성된다. 작은 파일이 너무 많은면 이후 처리에 문제가 되므로 큰 파일로 합쳐주는 것이 좋다.
아래는 table이 2단계 partition을 가질 때 예이다.
아래 예를 파일로 저장하고, oozie workflow에서 table 이름을 parameter로 넘겨 실행한다.
#!/bin/sh
partitions=`hive -e "show partitions $1 "`
echo "partitions: " $partitions
for part in $partitions; do
IFS="/" read part1 part2 <<< $part
IFS="=" read k1 v1 <<< $part1
IFS="=" read k2 v2 <<< $part2
if [[ $v1 == "$2" ]]
then
hive -e "alter table $1 partition($k1='$v1', $k2='$v2') concatenate;"
fi
done
'data engineering' 카테고리의 다른 글
HUE에서 download 가능한 결과 수 제한 (0) | 2021.08.11 |
---|---|
쉡스크립트에서 문자열을 배열로 바꾸고 n번째 항목 가져오기 (0) | 2021.07.21 |
Hive 테이블에서 각 partition의 파일 위치(location) 뽑아보기 (0) | 2021.07.21 |
sbt로 spark job 빌드 (0) | 2019.08.12 |
zeppelin 에서 spark으로 데이터 조회할 때 테이블 뷰 (0) | 2019.08.01 |