| 구분 | 참조 문법 | 범위 | 민감 정보 |
|---|---|---|---|
| Parameter Context | #{name} |
Context 를 할당한 Process Group 과 하위 | 암호화 저장 지원 |
| Process Group Variables | ${name} (Expression Language) |
정의한 Process Group 과 하위. 하위에서 재정의하면 오버라이드 | 평문 저장 |
Variables 는 NiFi 1.10 이후 Parameter Context 로 대체되는 방향이라, 새로 만드는 플로우는 Parameter Context 를 쓴다. Variables 값을 바꾸면 그 변수를 참조하는 프로세서가 자동으로 정지 → 적용 → 재시작된다.
Parameter 는 프로세서 속성 값에서만 #{name} 으로 치환되고 FlowFile 속성으로는 들어오지 않는다. AttributesToJSON 은 FlowFile 속성만 JSON 으로 만들기 때문에, Parameter 값을 JSON 에 넣으려면 UpdateAttribute 를 한 단계 거쳐야 한다.
| UpdateAttribute 속성 | 값 |
|---|---|
etl_db |
#{etl_db} |
Variables 도 마찬가지로 UpdateAttribute 에서 ${myVar} 로 받아 속성으로 만든다.
PutKudu 의 Table Name 처럼 Expression Language 를 지원하는 속성에는 두 문법을 함께 쓸 수 있다.
#{etl_db}.${tablename}
#{etl_db} 는 프로세서 설정을 읽을 때 먼저 치환되고 ${tablename} 은 FlowFile 을 처리할 때 치환되어 my_database.my_table 이 된다. 속성 옆에 EL 지원 표시가 없는 속성이면 ${...} 부분은 치환되지 않으며, Parameter 참조는 EL 지원 여부와 관계없이 동작한다.