Apache NiFi란
Apachi NiFi는 데이터 플로우 자동화 및 관리를 위한 워크플로우 오케스트레이션 도구이다. 쉽게 말해서, 다양한 데이터 소스로부터 데이터를 가져오고, 가공한 후, 원하는 목적지로 전송하는 역할을 한다.
위 이미지의 구성에 대한 특징은 아래와 같다.
Web Server
- NiFi의 웹 UI를 제공하는 서버
- 사용자는 웹 UI를 통해 데이터 플로우를 관리 및 모니터링할 수 있다
Flow Controller
- NiFi의 핵심 관리 엔진
- 데이터 플로우를 조정하며, Processor 및 데이터 저장소를 제어한다.
Processor
- 데이터 ETL(수집, 변환 ,전송 등)의 역할을 수행하는 핵심 컴포넌트이다.
- 여러 개의 Processor가 연결되어 데이터 흐름을 처리한다(예: HTTP 요청 처리, 데이터 변환 등).
FlowFile Repository
- FlowFile 메타데이터 저장소이다.
- 각 FlowFile의 경로 및 상태 정보를 저장하여 데이터 흐름을 추적한다.
Content Repository
- FlowFile의 실제 데이터(content)를 저장하는 공간이다.
- 파일 시스템 또는 분산 저장소(HDFS, S3 등)에 저장 가능하다.
Provenance Repository
- 데이터의 이동 경로 및 변경 이력을 저장한다.
- 데이터 추적 및 감사(Auditing)를 위한 핵심 구성 요소이다.
언급된 주요 특징들을 종합하면 다음과 같다:
→ 데이터 수집, 변환, 전송을 GUI 기반으로 쉽게 관리 가능
→ 실시간 스트림이 및 배치 데이터 처리 지원
→ 다양한 데이터 소스(데이터베이스, 파일 시스템, 메시징 시스템 등)와 연동 가능
→ 고가용성과 확장성을 고려한 분산 처리 지원
Apache NiFi의 강점
1. GUI 기반의 직관적인 데이터 흐름 관리 용이
- 드래그 앤 드롭 방식으로 데이터 파이프라인을 구성할 수 있어 비개발자도 활용 가능
- 복잡한 코드 없이 데이터 이동, 변환, 필터링을 수행할 수 있음
→ 웹 UI에서 Processor(데이터 처리 요소)를 추가하고 선을 연결하는 것만으로도 데이터를 흐르게 할 수 있다!
2. 실시간 데이터 스트리밍 & 이벤트 처리 가능
- Kafka, MQTT, JMS 등 다양한 메시징 시스템과 연동 가능
- 데이터가 들어오는 즉시 변환 및 필터링 후 전송 가능
- 배치(Batch)와 실시간(Streaming) 처리를 모두 지원
3. 고성능 & 확장 가능한 분산 아키텍처 지원
- 단일 노드 실행 가능 + 클러스터링(다중 노드) 지원 → 대규모 데이터 처리 가능
- 병렬 데이터 처리 최적화로 고속 데이터 처리 가능
4. 다양한 데이터 소스와의 연동 지원
- 파일 시스템, 데이터베이스, API, 클라우드 스토리지(AWS S3, Google Cloud) 등 다양한 입력과 출력을 지원
- 300개 이상의 기본 내장 Processor 제공 (HTTP 요청, JSON 변환, DB 연결 등)
→ 예) SQL 데이터 베이스 → JSON 변환 → Kafka로 전송
타 솔루션과의 비교
기존에 존재하는 솔루션들과의 차별점은 다음과 같다
기능 | Apache NiFi | Apache Airflow | Logstash |
실시간 스트리밍 처리 | 지원 | X (배치 중심) | 지원 |
GUI 기반 워크플로우 디자인 | 지원 | X (코드 기반 DAG) | X |
데이터 흐름 추적 (Provenance) | 지원 | X | X |
파일, API, DB, 메시징 시스템 연동 | 매우 쉬움 | 가능 | 가능 |
배치 데이터 처리 | 지원 | 강력 | 지원 |
요약하자면 각 솔루션의 강점은 다음과 같이 정리할 수 있다
솔루션 | 내용 |
Apache NiFi | 실시간 데이터 이동, 변환, 스트리밍 (Kafka, S3, IoT, 로그 처리) |
Apache Airflow | 데이터 파이프라인 배치 스케줄링 (ETL, ML Workflow) |
Logstash | 로그 수집 및 가공 중심 (ELK 스택) |
'IT > DevOps' 카테고리의 다른 글
[DevOps] - Pub / Sub (Publish-Subscribe) (0) | 2025.02.20 |
---|---|
[DevOps] - Apache Airflow (0) | 2025.02.20 |
[DevOps] - 무중단 배포 (Blue/Green) (1) | 2024.12.19 |