ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Apache Nifi] 실습2 - CSV2Json 패턴 만들기 - Controller사용법
    데이터 엔지니어링/Nifi 2022. 4. 9. 15:27
    반응형

    목표 - CSV 파일을 가져와 JSON파일로 변형하여 이관하기

    최종구현화면

    • 구성 목록
      • Processor
        • GetFile - 파일 불러오기
        • ConvertRecord - 내용 변경
        • PutFile - 파일 내려받기
      • Connector
        • GetFile - success
        • ConvertRecord - success, failure 
        • PutFile - success, failure
      • Controller
        • ConvertRecord - Demo CSVReader, Demo JsonRecordSetWriter

     

     

    목차

    1. Processor 생성
    2. Controller 생성 및 설정
    3. 실행

     

    1. Processor 생성

    • GetFile Processor 생성 및 가져올 디렉토리 설정

    • 화살표 모양으로 ConvertRecod로 Connector생성

    • PutFile Processor 생성 PutFile Directory 설정

    2. Controller 생성

    • Controller란 processor, connector, controller 등 간의 발생하는 이벤트 들에 해당하는 로직을 처리해주는 트리거 같은 것이라고 보면 됨(트리거는 아님)
    • ConvertRecord Processor를 더블 클릭하고 Properties를 보면 Record Reader, Record Writer라는 property가 있음

     

    • Value를 클릭하면 기존에 만들어논 Controller를 설정이 가능하며, 새로 만들기도(Create new service) 가능함

     

    • 이번에는 Create를 눌러 주었음 그후에 왼쪽 사진에서 Service를 선택하는 콤보박스가 나와 service를 자신의 사용목적에 맞게 선택이 가능함. 이번에 쓸것은 csv를 불러와 nifi에서 정재를 해주는 과정을 거칠 것이므로 csvReader를 선택 Name도 작성을 해주었음

    • 위와 같이 작성하면 아래와 같은 화면이 나오게 되는데 Controller를 생성하여 Value에 넣었다고 사용가능한것이 아니라 이 Controller를 활성화 시켜주어야함 오른쪽 화살표 모양을 클릭하면 Controller설정창이 나오게 됨

    • 맨 아래에 Demo2 CsvReader는 테스트로 만들어논것이라 위에 내용과 다를 수 있으나, Controller를 새로 생성하면 아래와 같이 Disabled나오게 되고 이것을 Enabled로 변경할려면 오른쪽의 번개모양을 클릭하여 속성을 연다음 속성을 용도에 맞게 설정해주면 Enabled로 변하게 됨 번개 모양 클릭

    • 클릭을 하게 되면 아래와 같은 화면이 나오게 되는데 왼쪽은 Service이름과 Scope(범위) 오른쪽은 해당 Controller가 설정되어있는 Processor명이 나오게 됨 설정한 내용이 맞다면 아래의 Enable버튼을 눌러 주면 끝 이거는 CSVReader Controller라서 설정할게 많이 없지만 다른 Controller는 용도에 맞게 설정해 주어야함

    • 이렇게 하면 Controller Enabled로 표시 되며 오른쪽에 번개 모양도 사용할 수 없게 되고 설정 바퀴 모양으로 변경이 가능

     

    3. 실행

    • Processor모두 선택하고 실행 해주면 되고 아래와 같은 CSV를 만들고 GetFile에 설정한 Directory에 넣으면 들어가게 되고 해당파일이 Json파일로 변경이 되어 Putfile에 설정한 directory로 빠져 나오게 됨. 파일을 확인해 보면

    • 아래와 같이 json형태로 나온것을 확인 할 수 있음 null은 공백이 있어서 그런것이고 id, name, email등으로 구분 되어 나온 것을 확인 할 수 있음

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    반응형

    댓글

Designed by Tistory.