说明
NIFI中的变量(variables)和参数(parameters)在引用的时候是有区别的。
参数的引用是使用#{参数名}的形式。
变量是使用${变量名}的形式来引用。
nifi版本:1.23.2(docker镜像)
Variables:出于兼容性目的,仍支持通过变量和 nifi.properties 文件的自定义属性,和参数的功能不同,变量不支持敏感属性,变量值不能引用其他变量或使用表达式语言。变量和属性将在未来的版本中删除。因此强力推荐使用参数(Parameter Contexts)。
关于参数的使用可以参考:NIFI关于Parameter Contexts的使用
添加Variables
在画布空白位置鼠标右键,选择Variables
在弹出的页面点击右上角的+添加需要的变量
这里以添加MySQL相关参数为例,输入变量名和对应的值
添加完成后,最后点击APPLY。我这里添加了5个变量
右侧四个分表代表的含义
Variables:当前变量的名称
Referencing Processors :被哪个处理器引用,这里就会显示对应的名称
Referencing Controller Services :被哪个控制器服务引用
Unauthorized Referencing Components :被哪个未授权的组件引用
点击APPLY后会对当前的变量进行以下几个步骤的处理:
确定受影响的组件=>停止受影响的处理器=>禁用受影响的控制器服务=>应用更新=>启用受影响的控制器服务=>重启受影响的处理器。每次更新变量的时候都会执行以上几个步骤。
测试变量是否生效
添加DBCPConnectionPool控制器服务
以添加DBCPConnectionPool为例测试刚才添加的MySQL变量,在画布空白位置鼠标右键选择Configure,然后在弹出的页面点击右上角的加号+
在新的页面中筛选出DBCPConnectionPool,最后点击ADD添加控制器服务
点击刚才新添加的控制器服务右侧的小齿轮,开始配置
在弹出的页面切换到PROPERTIES页面,分别配置以下几个属性的值,Password因为是敏感属性,所以填入值之后是不会显示的,变量的引用要使用${变量名}的形式
校验变量是否生效
点击控制器服务右上角的验证属性是否有效,在弹出的页面直接点击VERIFY进行验证
如果验证失败的话会有报错提示,根据报错提示修改即可
所有项全部验证通过会显示绿色对钩
结束语
以上便是NIFI中关于Variables(变量)的使用,如果有问题欢迎大家评论。