아파치 플룸(apache flume)의 기능을 확장시키는 플러그인을 개발하고 있다. 레디스(redis)에서 데이터를 가져와 플룸 채널(flume channel)에 데이터를 채우는 소스(source) 기능과 플룸 채널(flume channel)에서 데이터를 가져와 쿠두(kudu) 테이블에 저장하는 싱크(sink) 기능을 구현하는 중이다. 그런데 쿠두 테이블에 저장하려는 데이터에 해당하는 파티션이 생성되어 있지 않을 경우 익셉션이 발생한다. 이 문제를 해결하기 위해 필요한 경우 파티션을 코드에서 직접 추가하기로 하였다. 아래처럼 복수의 칼럼으로 레인지 파티션이 설정되어 있는 경우에는 PARTITION BY RANGE (year, month, day) ( PARTITION VALUE = (2018, 10, 25), PARTITION VALUE = (2018, 10, 26), PARTITION VALUE = (2018, 10, 27), PARTITION VALUE = (2018, 10, 28) ) 다음과 같이 필요한 파티션을 추가해 준다. private void addRangePartitionsOnDemand() { logger.info("Add range partition on kudu table."); Schema schema = table.getSchema(); PartialRow lower = schema.newPartialRow(); PartialRow upper = schema.newPartialRow(); lower.addInt("year", 2018); lower.addInt("month", 10); lower.addInt("day", 29); upper.addInt("year", 2018);