(Local에서) CSV 파일을 JSON으로 변형 후 이관하기
- 해당 과정을 알게 되면,
꼭 Local에서만이 아니더라도 변형 후 이관 과정을 알 수 있을 것이라고 기대한다.
- 이전에 사용했던 프로세스도 존재하지만,
새로운 프로세스도 존재하기 때문에 해당 부분을 상세 설명하면서 진행할 것.
Local에서 File을 가져오는 프로세서
- 이전에 사용했던 프로세서이므로 익숙할 것
Input Directory
속성만 설정하면 된다.
- 파일을 가져올 디렉토리 경로 설정.
Record를 변환하는 새로운 Processor
- Record Reader
- 들어오는 데이터를 읽는 데 사용할
컨트롤러 서비스
를 지정한다.- CSV 파일을 읽을 것이기 때문에
CSVReader
로 지정- Record Writer
- 레코드 작성에 사용할
컨트롤러 서비스
를 지정한다.- CSV를 Json으로 변환할 것이기 때문에
JsonRecordSetWriter
로 지정- Include Zero Record FlowFile
- 들어오는 FlowFile을 변환할 때 변환 결과 데이터가 없는 경우,
이 속성은 해당 관계에 FlowFile을 보낼지 여부를 지정한다.
Controller Service
- DB를 연결할 때 사용하던 DBCP와 다르게,
Reader와 Writer는 NiFi Default Service를 그대로 사용하면 된다.
- 따라서, Controller Service를 생성하고 활성화해주면 된다.
속성 표현 언어를 사용하여
FlowFile의속성
을 업데이트하거나 정규식을 기반으로 삭제하는 Processor해당 프로세서의 사용 목적은 File의 확장자를 변경하기 위함이다.
- 해당 프로세서의 속성을 확인하면 위와 같습니다.
아무리 찾아봐도 파일 이름을 설정하는 방법이 없다.
- 그래서, 직접 설정을 추가해야 한다.
+
클릭 후,
- 추가해준다.
- 위와 같이 작성해주면 완료된다.
- 파일 이름에서
.
이전까지 유지하고.json
을 붙인다.
NiFi Expression Language
를 사용한 것이다.NiFi Expression Language
: Flowfile의 Attribute를 사용하여 원하는 값을 구하도록 도와주는 NiFi 내장 언어File을 내보내는 프로세서
- File을 내보낼 Local 디렉터리를 설정하면 된다.
Log를 생성하는 프로세서
- 사용자가 임의로 생성한 로그를 생성하는 프로세서로,
CSV2JSON이 성공하면 해당 log를 생성하도록 Flow를 설정한다.
csv파일 확인
변환 시,
파일 이름은 그대로고 데이터 형식만 바뀌는 부분에 대해서 고려해야 할 부분이라고 생각된다.