본문 바로가기
💻Tech/💧nifi

[NiFi] Groovy-Java로 여러 날짜 뽑는 방법

by _viper_ 2022. 9. 22.
반응형

NiFi에서 제공하는 Groovy Script는 자바 호환이 거의 되므로 자바 코드로 작성하여도 잘 돌아감

  1. Create ExecuteScript Processor
  2. PROPERTIES > Select Groovy > Write Script Body
  3. Script Contents
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

//attribute의 날짜(yyyymmdd) 기준부터 -30일까지 추출 
flowFile = session.get();
if(!flowFile) return;
dt = flowFile.getAttribute('dt');
session.transfer(flowFile, REL_SUCCESS);

for(int i=0; i<31; i++){
	DateFormat dateFormat = null;
	Date date = new Date();

	try {
		dateFormat = new SimpleDateFormat("yyyyMMdd");
		date = dateFormat.parse(part_dt);
	}catch(Exception e){
		System.out.println(e.getMessage());
	}
	Calendar cal = Calendar.getInstance();
	cal.setTime(date);
	cal.add(Calendar.DATE, -i);
	
	dt = dateFormat.format(cal.getTime());

	flowFile = session.create();
	newFlowFile = session.putAttribute(flowFile, 'dt', dt);
	session.transfer(newFlowFile, REL_SUCCESS);
}