-
Apache NiFi 시리즈 3회 - FlowFile과 Processor를 활용한 데이터 흐름 설계 실습기술과 산업/AI 2025. 5. 9. 15:53728x90
Apache NiFi의 핵심 구성 요소인 FlowFile과 Processor의 개념을 이해하고, 간단한 실습을 통해 데이터 흐름을 구성하는 과정을 단계별로 소개합니다.
본격적인 실습에 앞서 – 핵심 구성 요소 다시 보기
Apache NiFi의 구조를 제대로 이해하려면 두 가지 개념은 반드시 짚고 넘어가야 합니다.
- Processor: 데이터를 수집, 처리, 변환, 전송하는 단위 기능. 각 Processor는 고유의 역할을 수행합니다.
- FlowFile: NiFi에서 이동하는 단위 데이터 객체. 실제 데이터(Content)와 속성(Attribute)를 함께 갖습니다.
이 두 가지 요소를 조합해 다양한 데이터 흐름을 설계하는 것이 NiFi의 본질입니다.
실습 목표: 간단한 데이터 흐름 만들기
로컬에서 Apache NiFi가 실행 중이어야 합니다. (http://localhost:8080/nifi)
구성 플로우
GenerateFlowFile → LogAttribute → PutFile
- GenerateFlowFile: 테스트용 데이터 생성
- LogAttribute: 메타데이터 확인 로그 출력
- PutFile: 파일로 저장
이 흐름을 통해 FlowFile이 어떤 구조로 생성되고 어떻게 이동하는지 시각적으로 이해할 수 있습니다.
1단계: Processor 추가 및 연결
1. GenerateFlowFile
- Canvas에서 우클릭 → Add Processor
- GenerateFlowFile 검색 후 선택 → OK
- 설정 진입 (더블 클릭 또는 우클릭 → Configure)
- 주요 설정:
- Custom Text:
- Hello from NiFi!
- Run Schedule: 5 sec로 변경 (테스트용)
- Scheduling Strategy: Timer Driven
- Batch Size: 1
이 Processor는 지정한 간격마다 텍스트 데이터를 생성합니다.
2. LogAttribute
- Processor 추가 → LogAttribute 검색 후 삽입
- 연결: GenerateFlowFile → LogAttribute 드래그
- 연결 조건에서 success 체크 → OK
이 Processor는 FlowFile의 메타데이터(속성)를 로그로 출력해줍니다.
3. PutFile
- Processor 추가 → PutFile 검색
- 연결: LogAttribute → PutFile
- 설정 진입 → Directory 항목 설정:
- 예: /Users/username/nifi-output 또는 C:\nifi-output
이 Processor는 최종 데이터를 로컬 디스크에 저장합니다.
2단계: 흐름 실행 및 결과 확인
Processor 실행
- 각 Processor 선택 → 우측 상단 버튼 클릭 → Start
로그 확인
- 하단 메뉴에서 "Logs" 탭 열기
- LogAttribute의 출력 로그 확인:→ FlowFile이 생성되고, 속성이 정상 전달되었음을 확인할 수 있습니다.
- FlowFile Attribute Map Contents fileSize = 17 uuid = ... entryDate = ...
파일 출력 확인
- 설정한 디렉토리 경로로 이동
- 5초 간격으로 Hello from NiFi!라는 텍스트가 저장된 파일들이 생성됨
FlowFile 구조 이해하기
FlowFile은 크게 2가지 정보를 포함합니다:
구성 요소 설명
Content 실제 데이터 (예: 텍스트, JSON, CSV 등) Attribute 이름-값 쌍 형태의 메타데이터 (예: 파일명, 크기, 경로 등) 이 구조 덕분에 하나의 데이터가 흐르면서 유연하게 라우팅, 변환, 필터링될 수 있습니다.
자주 쓰이는 FlowFile 속성 예시
속성 이름 설명
filename FlowFile에 임시로 부여된 이름 path 파일의 상대 경로 uuid 고유 식별자 entryDate 생성된 시각 (epoch 시간 기준) NiFi에서는 Processor마다 다양한 속성이 자동으로 붙거나 수정되며, 이를 조건 분기 등에 활용할 수 있습니다.
정리하며 – 데이터가 흐른다는 것의 의미
이번 실습을 통해 NiFi에서 데이터가 생성 → 변환 → 저장되는 일련의 흐름을 직접 체험해보았습니다.
이처럼 NiFi는 간단한 테스트 플로우를 구성하는 것만으로도 매우 직관적인 학습 환경을 제공합니다.데이터가 어떤 형태로 이동하고, 어떤 조건에서 분기되며, 어떤 속성을 유지하는지를 눈으로 보고 제어할 수 있다는 점에서, NiFi는 데이터 파이프라인 설계에 최적화된 도구입니다.
다음 글 예고
Apache NiFi 시리즈 4회 - JSON 데이터를 분기 처리하는 방법
- EvaluateJsonPath Processor 소개
- 조건 분기 기반 라우팅 플로우 실습
- JSON 속성에 따라 다른 파일로 저장하기
728x90'기술과 산업 > AI' 카테고리의 다른 글
Gradio 실전 시리즈 1화 – Gradio란 무엇인가? AI 인터페이스의 혁신을 말하다 (1) 2025.05.09 Streamlit 실전 마스터 시리즈 1화 – Streamlit 개요와 사례 소개 (2) 2025.05.09 분야별 데이터 수집 전략 가이드 시리즈 - 4화. 기상청 API로 날씨 데이터를 수집하고 시계열 분석에 활용하는 전략 (1) 2025.05.09 데이터 수집과 EDA 전략 시리즈 – 4화. 변수의 유형과 분석 전략: 수치형과 범주형, 처리 방식이 다르다 (0) 2025.05.09 AI/ML 기반 데이터 분석 시리즈 7화 - 분류(Classification) 모델의 구조와 실전 구현 전략 (3) 2025.05.09