Apache NiFi-소개
Apache NiFi는 서로 다른 시스템간에 데이터를 처리하고 배포 할 수있는 강력하고 사용하기 쉽고 안정적인 시스템입니다. NSA에서 개발 한 Niagara Files 기술을 기반으로하며 8 년 후 Apache Software 재단에 기부되었습니다. 2004 년 1 월 Apache License Version 2.0에 따라 배포됩니다. Apache NiFi의 최신 버전은 1.7.1입니다.
Apache NiFi는 실시간 데이터 수집 플랫폼으로, 서로 다른 소스와 대상 시스템간에 데이터 전송을 전송하고 관리 할 수 있습니다. 로그, 지리적 위치 데이터, 소셜 피드 등과 같은 다양한 데이터 형식을 지원합니다. 또한 SFTP, HDFS, KAFKA 등과 같은 많은 프로토콜을 지원합니다. 이는 다양한 데이터 소스 및 프로토콜을 지원하므로이 플랫폼이 많은 IT 조직.
Apache NiFi- 일반 기능
Apache NiFi의 일반적인 기능은 다음과 같습니다.
Apache NiFi는 설계, 제어, 피드백 및 모니터링 간의 원활한 경험을 제공하는 웹 기반 사용자 인터페이스를 제공합니다.
고도로 구성 가능합니다. 이를 통해 사용자는 보장 된 전달, 짧은 지연 시간, 높은 처리량, 동적 우선 순위 지정, 배압 및 런타임시 흐름 수정을 지원합니다.
또한 흐름의 시작부터 끝까지 데이터를 추적하고 모니터링하는 데이터 출처 모듈을 제공합니다.
개발자는 필요에 따라 고유 한 사용자 지정 프로세서 및보고 작업을 만들 수 있습니다.
NiFi는 또한 SSL, HTTPS, SSH 및 기타 암호화와 같은 보안 프로토콜을 지원합니다.
또한 사용자 및 역할 관리를 지원하며 인증을 위해 LDAP로 구성 할 수도 있습니다.
Apache NiFi-주요 개념
Apache NiFi의 주요 개념은 다음과 같습니다.
Process Group − 사용자가 계층 적 방식으로 흐름을 관리하고 유지하는 데 도움이되는 NiFi 흐름 그룹입니다.
Flow − 필요한 경우 하나의 데이터 소스 또는 소스에서 다른 대상 데이터 소스로 데이터를 전송하고 수정하기 위해 서로 다른 프로세서를 연결하여 생성됩니다.
Processor− 프로세서는 소싱 시스템에서 데이터를 가져 오거나 대상 시스템에 저장하는 Java 모듈입니다. 다른 프로세서는 또한 속성을 추가하거나 flowfile의 내용을 변경하는 데 사용됩니다.
Flowfile− NiFi의 소스 시스템에서 선택한 데이터의 단일 객체를 나타내는 NiFi의 기본 사용법입니다. NiFiprocessor는 소스 프로세서에서 대상으로 이동하는 동안 flowfile을 변경합니다. CREATE, CLONE, RECEIVE 등과 같은 다른 이벤트는 흐름의 다른 프로세서에 의해 흐름 파일에서 수행됩니다.
Event− 이벤트는 NiFi 흐름을 통과하는 동안 흐름 파일의 변경을 나타냅니다. 이러한 이벤트는 데이터 출처에서 추적됩니다.
Data provenance − 리포지토리이며, 사용자가 플로우 파일에 대한 정보를 확인할 수있는 UI가있어 플로우 파일 처리 중 문제가 발생할 경우 문제 해결에 도움이됩니다.
Apache NiFi 장점
Apache NiFi는 SFTP를 사용하여 원격 시스템에서 데이터를 가져올 수 있도록하고 데이터 연계를 보장합니다.
Apache NiFi는 클러스터링을 지원하므로 동일한 흐름이 서로 다른 데이터를 처리하는 여러 노드에서 작동 할 수 있으므로 데이터 처리 성능이 향상됩니다.
또한 사용자 수준, 프로세스 그룹 수준 및 기타 모듈에 대한 보안 정책도 제공합니다.
UI는 HTTPS에서도 실행될 수 있으므로 사용자와 NiFi의 상호 작용을 안전하게 할 수 있습니다.
NiFi는 약 188 개의 프로세서를 지원하며 사용자는 다양한 데이터 시스템을 지원하는 맞춤형 플러그인을 만들 수도 있습니다.
Apache NiFi 단점
사용자가 변경하는 동안 노드가 NiFi 클러스터에서 연결이 끊어지면 flow.xml이 유효하지 않게됩니다. 관리자가 연결된 노드에서 flow.xml을 수동으로 복사하지 않는 한 Anode는 클러스터에 다시 연결할 수 없습니다.
Apache NiFi는 기본 노드 스위치의 경우 상태 지속성 문제가 있으며 이로 인해 프로세서가 소싱 시스템에서 데이터를 가져올 수없는 경우가 있습니다.