2022년 4월 24일 일요일

오픈소스 기반 ETL 도구 Apache nifi 이야기

이 글은 오픈소스 기반 ETL, Apache Nifi에 대한 개념, 기능 및 사용법에 대한 이야기이다. ETL은 요즘 말하는 데이터 레이크(data lake) 등에 필수적으로 사용되는 기술이다. ETL은 데이터 버스로도 알려져 있으며, 데이터를 추출, 변환, 적재(Extract, Transform and Load)하는 도구를 말한다.

아파치 기반 ETL 도구 nifi (nifi.apache.org)

머리말
Apache nifi 는 오픈 소스 ETL 도구이며 무료로 사용할 수 있다. 상자에서 시각적으로 프로그램을 조립하고(노드 기반 프로그래밍), 코드를 작성하지 않고도 실행할 수 있다. 따라서 코딩에 대한 배경 지식이 없는 사람에게 이상적이다. 카프카, RabbitMQ, JDBC 쿼리, Hadoop, MQTT, UDP 소켓 등을 포함한 다양한 소스와 함께 작동할 수 있다. 이를 사용하여 데이터를 필터링, 조정, 결합, 분할, 향상 할 수 있다.

Apache NiFi를 사용하면 장기 실행 작업을 생성할 수 있으며, 스트리밍 데이터와 주기적 배치를 처리할 수 있다. 수동으로 관리되는 작업도 가능하다. 

CSV 형식의 데이터에 국한되지 않다. 사진, 비디오, 오디오 및 바이너리 데이터를 쉽게 처리할 수 있다. 다양한 대기열 정책(FIFO, LIFO 등)을 사용할 수 있다. Data Provenance는 데이터 흐름 모든 것을 기록하는 서비스이다. 데이터가 어떻게 저장되거나 수행되었는지 확인할 수 있어 편리하다. 

기능 소개
Apache nifi에는 다음 기능이 포함되어 있다.
  • 브라우저 기반 사용자 인터페이스
  • 설계, 제어, 피드백 및 모니터링을 위한 원활한 경험
  • 데이터 출처 추적
  • 손실 허용 및 보장된 데이터 배송
  • 낮은 대기 시간 및 높은 처리량
  • 동적 우선순위 지정
  • 흐름 구성의 런타임 수정
  • 확장 가능한 디자인
  • 맞춤형 프로세서 및 서비스를 위한 구성 요소 아키텍처
  • 신속한 개발 및 반복 테스트
  • 보안 통신
  • 구성 가능한 인증 전략이 있는 HTTPS
  • TLS 및 SSH를 포함한 암호화된 통신을 위한 표준 프로토콜
사용법
다음은 nifi를 이용해, 많은 엑셀 파일에서 데이터를 추출해, MySQL 로 저장하는 과정을 보여준다. 코딩이 필요 없다.
 

nifi는 다음 링크에서 설치 가능하며, 도커 이미지도 지원하므로, 쉽게 설치할 수 있다.
nifi 도커 이미지

좀 더 상세한 내용은 레퍼런스를 살펴본다.

레퍼런스