동기화 업무를 수행하기 위해 사용한 Processor 위주의 설명입니다.
사용할 Processor 종류는 다음과 같습니다.
- ExecuteSQL
- ConvertAvroToJSON
- SplitJson
- EvaluateJsonPath
- PutSQL
- UpdateAttribute
- MergeRecord
ExecuteSQL
제공된 SQL 선택 쿼리를 실행합니다. 쿼리 결과는 Avro 형식으로 변환됩니다.
가져온 ExecuteSQL의 모습과 이슈 사항의 이미지
최초 생성시 이슈 사항으로 'Database Connections Pooling Servie' 와 'Relationship success/failure'
ExecuteSQL Properties 주요 설정사항은 총 2가지입니다.
Database Connection Pooling Sevice
- 설명: 데이터 베이스 연결을 얻기 위해 사용되는 컨트롤러 서비스입니다.
(블로그 글 '02. Connection Pool' 설정 된 Connection Pool을 사용) - 예시: [DB] DBCPConnectionPool / venus_main 선택
SQL select query
- 설명: 실행할 SQL SELECT 쿼리
이외 속성들은 동기화 업무에서 활용하지는 않기 때문에 생략하겠습니다.필요시 https://nifi.apache.org/docs.html 에서 확인 할 수 있습니다.
ConvertAvroToJSON
Avro 레코드를 JSON 객체로 변환합니다.
ConvertAvroToJSON Properties 주요 설정사항은 총 2가지입니다.
JSON container options
- 설명: 레코드 스트림이 노출되는 방식을 결정합니다. 기본값은 배열입니다.
Wrap Single Record
- 설명: 비어 있는 레코드나 하나의 레코드만 있을 때 그 결과를 'JSON container options' 에 지정된 배열에 넣을지 결정합니다. 기본값은 false 이지만 일관성있는 처리를 위해 true로 설정해줍니다.
SplitJson
JSON 표현식으로 작성된 레코드를 여러 개의 별도 FlowFile로 분할합니다.
SplitJson Properties 주요 설정사항은 JsonPath Expression입니다.
JsonPath Expression
- 설명: JSON에서 조각을 만들 배열 요소를 적용할 JsonPath 표현식입니다.
조건없이 단일 레코드로 나눌시 $[*] 로 작성합니다.
표현식을 상세하게 작성하여 조건을 적용 할 수도 있습니다.
EvaluateJsonPath
FlowFile의 내용에서 사용자가 정의한 속성을 추가합니다.
Destination
- 설명: JsonPath 평가 결과를 Flowfile 콘텐츠 또는 속성에 쓸지 나타냅니다. 콘텐츠로 설정 할 경우 하나의 JsonPath만 지정할 수 있기 때문에 주로 flowfile-attribute를 선택하여 속성에 작성합니다.
속성 추가
- 설명: Json 데이터를 활용하여 다양한 속성 변수를 선언하여 사용합니다.
( 많은 속성을 수기로 등록/사용이 불편할 수있어 다른 유연한 방법을 추가로 확인 중입니다)
PutSQL
PutSQL Properties 주요 설정사항은 총 2가지이고 ExecuteSQL과 동일합니다.
PutSQL은 UPDATE 또는 INSERT 명령을 실행합니다.
유사한 프로세서인 PutDatabaseRecord와 다른 큰 특징은 직접 SQL문을 작성하여 넣을수 있는점입니다.
UpdateAttribute
FlowFile의 속성을 업데이트하거나 추가, 수정, 삭제 할 수있습니다.
일반적인 사용방법은 EvaluateJsonPath와 유사하며 '속성 표현식 삭제' 를 작성할 수 있습니다.
MergeRecord
여러개의 FlowFile을 작성 조건에 맞추어 병합합니다.
SplitJson Properties 주요 설정사항은 Correlation Attribute Name입니다.
Correlation Attribute Name
- 설명: 속성 값을 설정하여 동일한 값을 갖는 경우 함께 묶이도록 기준을 작성 할 수 있습니다.
여기까지 동기화 템플릿에 사용된 프로세서들에 대한 설정 방법을 확인했습니다.
'빅데이터 > Apache Nifi' 카테고리의 다른 글
Nifi Database 03. Relationships 설명 (0) | 2023.12.21 |
---|---|
Nifi Database 01. 동기화 업무 공유 및 완성본 확인 (0) | 2023.12.20 |
Nifi Database 08. 배치작업 설정 (Cron 표현식) (0) | 2023.12.18 |
Nifi Database 05. 데이터 포맷 설명 (0) | 2023.12.18 |
Nifi Database 02. Connection Pool 설정 (1) | 2023.12.18 |