-
[Apache Nifi] Parameter Context를 설정하여 전역 변수처럼 변수들 사용하기데이터 엔지니어링/Nifi 2022. 5. 26. 14:12반응형
nifi - Parameter Context에 대해 알아보자, Parameter Context를 사용하면 Context(문맥)에 맞게 지역, 전역으로 값을 할당하여 동일한 값을 매칭 하는게 가능하다.
순서
- Parameter Context 생성 방법
- Parameter Context 설정의 이해
- settings
- parameter
- inheritance
- Parameter Context 설정법
- Parameter Context 적용 되었는지 테스트
Parameter Context 생성 방법
먼저 nifi화면을 보면 오른쪽 위에 메뉴바가 있음 - 메뉴바를 클릭
아래와 같은 팝업창이 뜨게 되는데 Parameter Contexts를 클릭하면 Parameter Context를 설정하거나 설정된 Parameter Context들을 확인 할 수 있다.
오른쪽 +버튼을 클릭 하면 새로운 Parameter Context를 생성
Parameter Context 설정의 이해- Settings
아래와 같은 화면이 나오게 된다. Setting는 Parameter Context의 이름 설정, Parameters는 Context에서 사용할 Parameter들을 생성 및 관리 한느 탭 inheritance는 이미 들어있는 Context들을 상속받아 확장 및 정재를 할 수 있게 도와주는 탭이다.
먼저 settings를 아래와 같이 설정 하였고,
Parameter Context 설정의 이해-parameters
파라미터를 설정해 보면 아래 와 같이 나오게 되며, +버튼을 클릭하면 추가가 가능하다
Name은 Processor에서 사용할 명칭이며, value는 불렀을 때 호출 되는 값 Set empty string을 체크하면 value가 null로 형성이 되며 Sensitive Value는 jwt라든가, password같은 민감한 정보를 nifi안에서 암호화로 관리 되게 해주는 역할을 한다. 필요에 맞게 설정하여 사용하면 된다.
아래와 같이 param1, param2, param3으로 정의 하고 만들었다. 연필모양을 선택하면 수정 쓰레기통 모양을 클릭하면 삭제가 된다.
다 설정을 하면 오른쪽 하단에 Apply가 활성화 되는데 Apply하면 Parameter Contexts 리스트에 추가 된 모습을 볼 수 있다.
Parameter Context 설정의 이해 - inheritance
마지막으로 inherit를 사용해 보자. +버튼을 눌러 settings에 name을 설정하고, inheritance탭으로 이동하면 아래와 같이 설정한 Parameter Context들을 볼 수 있다. 이중에 상속 받을 context를 더블클릭 하면 아래와 같이 오른쪽으로 이동한 것을 볼 수 있다.
그리고 Apply를 누르면 아래와 같이 testInherit이라고 생성 된 것을 볼수 있다. 연필 버튼을 누르면
위에서 설정한 값들도 잘 들어와있는 것을 볼수 있다.
Parameter Context 테스트 해보기
이제 설정을 해보면 대충 아래 와 같이 test Processor들을 만들었다고 치고, Update Attribute에서 Parameter들의 값을 불러와 사용해 보도록 해보겠다.
그전에 어떤 Parameter Context를 설정을 해주어야하는데, Canvas 맨바닥에 오른쪽 클릭을 해보면 팝업창이 뜨게 된다. 여기서 Configure를 클릭
아래와 같이 Nifi Flow Configuration 설정 팝업이 뜨고 Process Group Parameters Context라를 란에 아까 설정한 Parameter Context가 들어 온것을 볼 수가 있다. 이것을 클릭하고 Apply하면 어떤 Parameter Context를 사용할지 설정이 끝난 것이다.
그리고 위에서 생성 햇던 UpdateAttribute의 Properties에 가서 checkparam1, checkparam2, checkparam3에 각각의 값을 넣어 보도록 한다. 여기서 주의 사항이 Parameter Context의 값을 할당할려면 꼭 #{ param name }으로 활용하여 할당 할 수 있다. 오른쪽에 보면 활용 방법도 자세히 나온다.
sensitive value로 설정한 Param3은 꼭 sensitive value로 설정이 가능한 Property에 설정을 해야한다. 안그러면 오류가 나니 주의 하자. GetHttp에 Password가 sensitive value로 설정이 가능하다 아래와 같이 #{param3}을 넣으면 sensitive 값으로 설정이된다.
자 이제 마지막 값이 잘 할당이 되었는지 확인 해보면 UpdateAttribute에서 FlowFile Attribute를 확인 해보면 아래와 같이 잘 나온 것을 확인 할 수 있다.
정리
여기까지 Parameter Context를 사용법, 설정법, 테스트 해보았다. Parameter Context를 사용하면, 전역변수로 값을 설정하여 할당하는 방식을 사용할 수 있게 되어 편리하게, Processor를 구성 할 수 있다. 그리고 Context는 Processor group 별로 설정이 가능하기 때문에 겹치는 문제점도 없다는 것을 알아 두자
반응형'데이터 엔지니어링 > Nifi' 카테고리의 다른 글
[Apache Nifi] RPG(Remote Processor Group)를 이용하여 모듈처럼 파이프 라인 관리하기, or site to site 구성하기 (0) 2022.06.17 [Apache Nifi]ListenHttp 프로세서 알아보기 (0) 2022.05.26 [Apache NIFi] Template을 이용하여 작업한 패턴 백업하고 사용하기 (0) 2022.05.21 [Apache NIFI] ExecuteStreamCommand Processor 알아보기(Flow 도중 Bash, Script NIFI에서 실행하기) (0) 2022.05.07 [Apache NIFI]RouteOnAttribute Processor 알아보기 (0) 2022.04.29