이번 장에서는 Apache nifi 시작 안내서(2)에 이어서 docs 중 프로세서 속성에 대한 내용을 번역하여 기술하겠습니다.
속성을 다루는 방법
각 FlowFile은 여러 속성과 함께 생성되며, 이러한 속성은 FlowFile의 수명 동안 변경될 수 있습니다.
FlowFile의 개념은 매우 강력하며 세 가지 주요 이점을 제공합니다
첫째, 특정 기준을 충족하는 FlowFile을 다른 FlowFile과 다르게 처리할 수 있도록 흐름에서 경로를 결정할 수 있습니다.
이는 RouteOnAttribute와 유사한 프로세서를 사용하여 수행됩니다
둘재, 속성은 데이터 자체에 따라 프로세서를 구성하는 데 사용됩니다. 예를 들어 PutFile 프로세서는 각 FlowFile을 저장할 위치를 파악하기 위해 속성을 사용할 수 있으며, 디렉터리 및 파일 이름 속성은 FlowFile 마다 다를 수 있습니다.
마지막으로, 속성은 데이터에 대한 매우 중요한 콘텍스트를 제공합니다. FlowFile에 대한 Provenace 데이터를 검토할 때 유용하며, 특정 기준과의 일치여부를 검색할 수도 있으며 이벤트의 세부 정보를 검사할 때 콘텍스트를 볼 수도 있습니다.
이를 통해 사용자는 콘텐츠와 함께 전달되는 이 콘텍스트를 빠르게 살펴봄으로써 데이터가 어떻게 처리되었는지에 대한 가치 있는 통찰력을 얻을 수 있습니다.
사용자 정의 속성 추가
FlowFile 콘텐츠에서 특정 정보를 추출할 수 있는 프로세서뿐만 아니라 사용자가 원하는 경우 흐름의 특정 위치에서 FlowFile에 자체 정의된 사용자 속성을 추가하고 싶은 경우가 있습니다.
UpdateAttribute 프로세서가 이러한 목적으로 특별히 설계되었습니다.
사용자는 속성 탭의 오른쪽 상단에 있는 "+" 버튼을 클릭하여 구성 대화 상자에서 프로세서에 새 속성을 추가할 수 있습니다. 이를 추가하면 사용자가 입력한 하나의 속성이 추가됩니다. 이때 속성의 값은 표현 언어를 포함할 수 있습니다. 이를 통해서 속성을 다른 속성을 기반으로 수정하거나 추가할 수 있습니다.
예를 들어 호스트이름+날짜를 파일이름에 추가하려면 다음과 같이 표현할 수 있습니다
${hostname()}-${now():format('yyyy-dd-MM')}-${filename}
처음에는 어려울 수 있으나 표현 언어와 속성 값까지 학습한다면 이해에 도움이 될 것입니다.
템플릿 작업
nifi에서 점점 더 복잡한 데이터 플로우를 구축할 때, 동일한 일련의 프로세서를 연속해서 연결하여 작업을 수행하는 경우가 많이 있습니다. 이는 비효율적일 수 있습니다. 이를 해결하기 위해서 nifi는 템플릿이라는 개념을 제공합니다.
템플릿은 재사용 가능한 하위 플로우 작성으로 생각할 수있습니다.
템플릿을 생성하기 위한 샘플 이미지입니다.
모든 프로세서 및 요소들을 선택 후 우클릭해서 콘텍스트 메뉴 중 Create template를 선택하여 생성할 수 있습니다.
템플릿을 만든 후에는 프로세서처럼 흐름에서 이를 빌딩 블록으로 사용할 수 있습니다.
마지막으로 전역 메뉴에서 템플릿을 관리할 수도 있습니다.
템플릿 작업 시 주의사항
기본적으로 모든 속성이 템플릿에 추가되지는 않습니다.
특히 암호와 같은 민감한 속성들은 템플릿을 사용할 때마다 수동으로 입력해야 합니다.
NiFi 모니터링
nifi에서 데이터가 데이터 플로우를 통해 흐를 때 시스템의 성능을 평가하여 추가 리소스가 필요한지 여부를 판단하고 현재 리소스의 상태를 평가하는 것이 중요합니다. nifi는 시스템을 모니터링하는 몇 가지 메커니즘을 제공합니다.
상태표시줄
nifi 화면 상단의 Component 툴바 아래에는 Status Bar로 불리는 막대가 있습니다. 이 막대에는 nifi의 현재 상태에 관한 몇 가지 중요한 통계 정보가 포함되어 있습니다. 활성 스레드 수는 현재 nifi가 얼마나 많은 작업을 수행하는지를 나타내며, 대기열 통계는 현재 전체 플로우에 대기 중인 FlowFile 수와 해당 FlowFile의 총 크기를 보여줍니다.
nifi 인스턴스가 클러스터에 있는 경우 여기에 클러스터 노드 수와 현재 연결된 노드 수를 나타내는 지표가 표시됩니다.
이 경우 활성 스레드 수와 대기열 크기는 현재 연결된 모든 노드의 합을 나타냅니다
구성 요소 통계
캔버스 상의 각 Processor, Process Group 및 Remote Process Group은 해당 구성 요소에서 처리된 데이터에 관한 여러 통계 정보를 제공합니다. 이러한 통계는 지난 5분 동안 처리된 데이터 양에 대한 정보를 제공합니다. 이는 롤링 윈도우로, Processor에 의해 소비된 FlowFile 수 및 Processor에 의해 발생된 FlowFile 수와 같은 정보를 볼 수 있게 합니다
또한 Processor 간의 연결은 현재 대기열에 있는 항목 수를 표시합니다.
Bulletin
각 구성 요소에서 제공되는 통계 외에도 사용자는 문제가 발생하는지 여부를 알고 싶어할 수있습니다.
Processor가 WARNING 또는 ERROR로 로그를 기록하는 경우, 해당 Processor의 우측 상단에 "Bulletin Indicator"가 표시됩니다. 이 표시기는 메모지와 같은 모양을 하며 이벤트가 발생한 후 5분 동안 표시됩니다. Bulletin에 마우스를 올리면 발생한 사항에 대한 정보를 제공하여 사용자가 로그 메시지를 찾아볼 필요 없이 알 수 있습니다.
클러스터 환경에서는 Bulletin이 발생한 클러스터의 노드도 표시됩니다. Processor의 Configure 대화 상자의 Settings 탭에서 Bulletin이 발생할 로그 레벨을 변경할 수도 있습니다.
이상입니다. Apache nifi 시작 안내서에 대한 글은 마치고 다른 주제로 설명을 이어가도록 하겠습니다.
'빅데이터 > Apache Nifi' 카테고리의 다른 글
Apache nifi 사용 안내서(2) (0) | 2023.12.07 |
---|---|
Apache nifi 사용 안내서(1) (1) | 2023.12.07 |
Apache nifi 시작 안내서(2) (1) | 2023.12.06 |
Apache nifi 시작 안내서(1) (1) | 2023.12.05 |
Apache nifi 개발자 안내서(1) (1) | 2023.12.05 |