본문 바로가기

IT/NiFi

Apache NiFi 소개 및 특징

300x250

Apache NiFi는 데이터 흐름을 자동화하고 관리하는 데이터 통합 플랫폼입니다. 데이터 수집, 변환, 전송 및 모니터링을 위한 강력한 도구로, 다양한 데이터 소스와 타겟 간의 실시간 데이터 흐름을 손쉽게 제어할 수 있습니다. 본래 NSA에서 개발한 후 2014년 Apache Software Foundation에 기부되었으며, 현재 오픈소스로 제공됩니다.

 

Apache NiFi


Apache NiFi의 주요 특징


• GUI 기반의 데이터 흐름 설계
   ✔︎ 사용자가 직관적인 드래그 앤 드롭(Drag & Drop) 방식으로 데이터 흐름을 설계 가능

• 다양한 데이터 포맷 및 프로토콜 지원
   ✔︎ JSON, XML, CSV, Avro, Parquet 등 다양한 형식을 처리할 수 있음
   ✔︎  HTTP, FTP, Kafka, MQTT, JDBC, HDFS 등 여러 프로토콜을 지원

• 실시간 및 배치 처리 가능 : 실시간 스트리밍 데이터뿐만 아니라 배치 데이터도 처리
• 유연한 데이터 라우팅 및 변환
   ✔︎ 데이터 필터링, 변환, 분기 처리 등을 지원하여 복잡한 데이터 흐름을 쉽게 조정 가능

• 확장성 및 클러스터링 지원
   ✔︎ 여러 노드로 구성된 클러스터 환경에서 실행하여 대규모 데이터 처리가 가능
• 보안 및 데이터 추적성 제공
   ✔︎ 사용자 접근 제어(Access Control), 암호화, 데이터 변경 이력 추적(Data Provenance) 기능을 제공


Apache NiFi의 주요 기술


1. Flow-Based Programming 
  • NiFi는 FBP 기반으로 데이터가 노드를 따라 흐르면서 처리(Processing), 라우팅(Routing), 변환(Transformation)됩니다.

2. 데이터 처리 핵심 구성 요소

요소설명
FlowFileNiFi에서 처리하는 단위 데이터 객체
Processor데이터를 변환, 필터링, 전송하는 핵심 컴포넌트
Connection프로세서 간의 데이터 흐름을 연결하는 큐(Queue)
Process Group여러 개의 프로세서를 하나의 그룹으로 묶어 관리하는 기능
Controller Service공유 가능한 설정(예: 데이터베이스 연결 정보)을 관리하는 서비스
Data Provenance데이터의 흐름과 변경 이력을 추적하는 기능


3. 확장성 및 성능 최적화 기술

기술설명
멀티스레딩 지원병렬 처리를 통해 성능을 최적화
백프레셔(Backpressure) 관리과부하 발생 시 데이터를 일정량만 유지하고 흐름을 조절
Site-to-Site 프로토콜NiFi 간의 데이터 전송을 최적화하는 기능
NiFi Registry데이터 흐름의 버전 관리 기능 제공

 



Apache NiFi의 활용 방안


1. 데이터 수집 및 전송
  • 실시간 센서 데이터 수집 (IoT, 산업 자동화)
  • 다양한 소스(DB, API, 파일 시스템)에서 데이터 수집 후 중앙 시스템으로 전송
  • 클라우드 환경(AWS, GCP, Azure)로 데이터 마이그레이션

2. 데이터 처리 및 변환
  • 로그 데이터 전처리 및 정제
  • 데이터 포맷 변환(JSON ↔ CSV ↔ Avro)
  • 데이터 마스킹(PII 데이터 보호)

3. 데이터 스트리밍 및 이벤트 처리
  • Apache Kafka, MQTT, RabbitMQ 등과 연동하여 실시간 이벤트 데이터 처리
  • AI/ML 모델을 위한 데이터 전처리 및 스트리밍 처리

4. ETL 및 데이터 파이프라인
  • 기존 ETL 툴을 대체하여 대용량 데이터 처리
  • HDFS, Amazon S3, Google Cloud Storage 등의 데이터 저장소로 데이터 이동



Apache NiFi 활용 사례


1. 금융권 - 실시간 거래 데이터 수집 및 분석
  • 금융 기관은 NiFi를 이용하여 실시간 거래 데이터를 수집
  • Kafka로 스트리밍한 후, 빅데이터 플랫폼(Spark, Flink)에서 분석하여 이상 거래 탐지(Fraud Detection)를 수행

2. 제조업 - IoT 센서 데이터 수집 및 모니터링
  • 제조업에서는 산업용 IoT 센서 데이터를 실시간으로 수집하여 예측 유지보수(Predictive Maintenance)에 활용

3. 헬스케어 - 의료 데이터 통합
  • 병원 시스템의 EMR(Electronic Medical Record), IoT 기반 환자 모니터링 장비 데이터 등을 통합하여 데이터 분석 및 머신러닝 모델 적용

4. 전자상거래 - 고객 행동 데이터 분석
  • 웹사이트 및 모바일 앱의 사용자 로그 데이터를 실시간으로 분석하여 맞춤형 추천 시스템 구현

5. 공공 기관 - 로그 수집 및 보안 모니터링
  • 다양한 시스템 및 네트워크 장비의 로그 데이터를 실시간으로 수집하고 보안 이상 탐지 시스템(SIEM)과 연계


관련 사이트

Apache NiFi

Apache NiFi is an easy to use, powerful, and reliable system to process and distribute data

nifi.apache.org

 관련 블로그

NiFi - FlowFile Repository와 Content Repository 설정

설정방법FetchHDFS 프로세서를 통해 가져온 큐의 파일 지속 시간을 설정하려면 NiFi에서 FlowFile Repository와 Content Repository 설정을 적절히 조정해야 합니다.이 설정은 NiFi의 파일 큐에서 데이터를

make2t.tistory.com

Apache Airflow

Apache Airflow 정의Apache Airflow는 워크플로우(workflow)를 작성, 스케줄링 및 모니터링하는 오픈소스 플랫폼입니다. 복잡한 데이터 파이프라인을 관리할 수 있도록 설계되었으며, DAG(Directed Acyclic Graph,

make2t.tistory.com


 

300x250

'IT > NiFi' 카테고리의 다른 글

NiFi - 크론탭  (0) 2025.02.23
NiFi - Active Thread Dead  (0) 2025.02.13
Apache Airflow  (0) 2025.02.07
NiFi - FlowFile Repository와 Content Repository 설정  (0) 2025.02.03