-
[Apache Nifi]실습 1 - GetFile - PutFile 파일가져와 옮기기 패턴 만들기 - Processor, Connector 사용법데이터 엔지니어링/Nifi 2022. 4. 8. 22:54반응형
오늘은 Nifi를 활용해서 파일이 들어오거나, 만들어지면 그 파일을 인지해서 가져온다음 파일을 다른곳으로 이관하는 패턴을 만들어 볼 것입니다. 이번 포스팅은 Processor를 만드는 방법, Processor들간에 Connecotr를 연결하는 방법, 그리고 다 정리되면 실행하는 방법을 중점적으로 보면 좋을 것 같습니다.
목표 - 파일 가져와 다른 곳으로 이관하기
구성 요소
- Processor
- GetFile
- PutFile
- Connector
- Success (GetFile → PutFile)
- Failure, Success(PutFile → PutFile)
1. Processor만들기
- Component 툴바에서 Processor를 드래그앤 드랍하면 아래와 같은 창이 뜨는데 거기서 GetFile과 PutFile을 찾아 Add버튼 클릭하면 위의 완성본과 같이 생성이 됨
2. Processor property 설정하기
- 그 프로세서들을 더블클릭하여 properties 탭을 보면 directory가있는데 어디를 바라보고 Processor가 동작할지 정하는 것임 이 부분을 설정하지 않으면 동작 하지 않음 내가 바라볼 directory로 설정
3. Connector 연결하기
- GetFile Processor를 한번만 클릭하면 중간에 화살표 모양이 나오는데 이 부분을 PutFile에 드래그 앤 드랍하면 아래 사진에 Success라는 Create Connection이 나오고 이것을 Add 버튼을 클릭하면 Processor중간에 Success라는 Connector가 생성 된 것을 볼 수 있음
- Processor에 ! ← 표시가 없어져야 해당 Processor가 실행이 가능 하므로 확인 Relationship success가 invalid라고 하여 내용 확인
- 남은 Relationship 설정 하면 아래와 같은 화면 설정 됨
- 모두 선택 하여 왼쪽 작동 패널을 >를 클릭하면 구동이됨
- Processor에 초록색으로 >표시가 모두 들어오면 구동이되고 있는 것임
4.Data flow 구동 해보기
- Processor Property directory에 설정했던 test_get directory에 파일을 넣어보면
- 위에는 사진이지만 바로 파일이 사라지는 것을 볼 수 있음 그리고 test_put폴더를 보개되면 파일이 정상적으로 이동한 것을 확인 가능
이렇게 GetFile PutFile Processor를 만들고, Property 설정 -> Connector연결 -> 파일 만들어 구동해보기를 맞춰 보았는데 nifiProcessor들이 너무 많아서 저도 docs를 보면서 진행 했습니다. 그리고 json파일 불러오는 Processor HttpApi를 호출하여 Json결과 받는 Processor, 이런 Json형태를 변형하여 csv, avro등의 파일로 변경하여 저장하는Processor, Sql을 활용하여 Sql update, insert 그리고 하둡과 aws azure를 연결하여 처리하는 프로세서 진짜 많은 Processor 들이 있는데 이것을 다 알수는 없으니 홈페이지에 docs를 꼭 보고 진행 해야 할 것같습니다.
다음에는 Controller라는 이벤트 처리하는 것을 설정 할 수 있게 해주는 것이 있는데, 이것을 활용하여 csv to json을 만들어 볼 예정입니다. 다음 포스팅에서 뵙겠습니다.
반응형'데이터 엔지니어링 > Nifi' 카테고리의 다른 글
[Apache NIFI Linux(ubuntu)]설치 방법 (0) 2022.04.29 [Apache Nifi] 실습2 - CSV2Json 패턴 만들기 - Controller사용법 (0) 2022.04.09 [Apache Nifi] 웹페이지 구성 훑어보기 (0) 2022.04.08 [Apache NIFI] NiFi 설치하기(MAC, WINDOWS), 폴더구조 파악, 서버 구동 및 정지, 사용자 만들어 접속해보기 (0) 2022.04.08 [Apache Nifi] Nifi란 무엇인가?(구성요소, 아키텍쳐) (0) 2022.04.07 - Processor