使用表达式语言 | 学习笔记

简介: 快速学习使用表达式语言

开发者学堂课程【NiFi 知识精讲与项目实战(第二阶段):使用表达式语言】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/706/detail/12538


使用表达式语言

内容介绍:

1.为什么需要 NiFi 表达式

2.表达式语言介绍

3.NiFi 表达式的结构

4.使用表达式语言修改内容

5.查看替换内容


一、为什么需要 NiFi 表达式

nifi 表达式语言阶段,nifi 表达式,它的主要作用,就是在 file 文本内容,提取到的处理器属性当中,或者是添加一些flow file 属性的时候,会非常的灵活。


二、表达式语言介绍

表达式语言有什么作用,可以看见当从 flow file 的内容当中来提取属性的时候,并且可以去新增或更新一些自定义属性的时候,必须要有一种方法来获取它的值,这个时候就可以使用这个 NiFi 表达式,更新的自定义属性,哪一些属性它支持表达式语言,之前讲解了通过这个问号的图标,就可以发现,比如这个截图当中问号,鼠标放在问号以后,如果提示的是 expressionlanguage school 如果是支持的话,就可以在这个属性当中去使用的 nifi 表达式,如果提示是这个 note support,这个时候就没有办法在这个属性当中使用 NiFi 表达式,去使用也不支持,读取到的只能是一个字符串。


三、NiFi 表达式的结构

NiFi 表达式它的结构是用这个 Dollar 大括号这样的形式来进行包含的,比如这个 file name,就可以通过 Dollar 大括号加上 file name。这样的方式,就可以获取到这个付费的,它的一个文件名,

还有一些稍微复杂的案例,比如说 file name.,通过冒号来调用它的一些函数,这个函数也是可以进行嵌套调用的,比如 file name equals,这就可以判断是否相等,然后,入参也是通过小括号儿来进行传递。

通常如果需要将两个不同属性的值进行比较的时候,就可以通过 equal 方法来进行,那在 equal 的方法当中,也可以把字符串,变更成为另外的 nifi 表达式,也就是表达式当中还可以再嵌套表达式。通过这样的用法,就可以很灵活的来进行一些操作。另外,需要注意表达式语言会忽略掉的空格儿,比如这里面第一个用法当中,在大括号后面加了一个空格,在冒号后面也加了一个空格,这样的方式,也可以正常被解析,它和这样的写法意思是一样的,但是要注意一点,如果在的变量名当中加上空格的话,会识别错误,比如这样的一个用法,在的 file name 这个变量当中加了一个空格,这个时候就会解析为这是两个不同的变量,而不是单独的一个变量,所以一定要注意,单独这个变量名中间是不能加空格的。


四、使用表达式语言修改内容

如何去使用的表达式语言来修改的流程,实际的操作应该怎么操作。在之前所运行的这个流程当中,replace text 直接把流失数据文件直接替换成了 ABCD 这样的一个字符串,就可以通过表达式语言大括号。Dollar 服务,然后写上 H的名称,这样的方式来获取值,并且把这个值赋到的 replace text 这个属性当中,然后由此来动态的获取到想要变更的值,这一项的话,就会把的实际数据,变更成这样的一个结果。


五、查看替换内容

image.png

打开的主面板,选中的 replace X,点击编辑可以看到通过的 NIFI 表达式来获取到属性的值,通过 Dollar 大括号,CSV.1来获取一的数据,然后再通过二获取二的数据,通过三获取三的数据,通过这样的方式来获取,然后进行重新的变更,原始的数据已经看过,接下来运行、操作,数据已经运行完了停止,停止完以后,查看这个队列当中的数据,如下图是属性文件,这是这四个变量。

image.png

然后点击可以看到,这里面获取到的值分别是 ABCD,已经成功的把 flow field content 的内容改变了。

image.png

相关文章
|
5天前
|
前端开发 JavaScript 索引
Thymeleaf基础语法讲解【详解版】
该内容介绍了Thymeleaf模板引擎的一些基本表达式和语法。主要包括: 1. 变量表达式 `${}` 和 `*{}`,用于获取对象属性,`*{}` 需先通过 `th:object` 指定对象。 2. 链接表达式 `@{}`,用于构建应用路径并引入静态资源,但可能暴露版本号带来安全问题。 3. 迭代循环使用 `th:each`,可获取状态变量如索引、序号、奇偶性等。 4. 条件判断用 `th:if` 和 `th:unless`,基于不同类型的值进行逻辑判断。 示例代码包括了遍历集合、设置表单输入值、条件渲染等场景。
|
3月前
|
XML 前端开发 Java
掌握Spring EL表达式的基础知识
掌握Spring EL表达式的基础知识
38 1
|
3月前
|
机器学习/深度学习 算法 前端开发
深入浅出剖析EL表达式和JSTL
深入浅出剖析EL表达式和JSTL
27 0
深入浅出剖析EL表达式和JSTL
|
5月前
|
XML 前端开发 Java
Spring Boot的Web开发之Thymeleaf模板引擎的解析及使用(Thymeleaf的基础语法以及常用属性)
Spring Boot的Web开发之Thymeleaf模板引擎的解析及使用(Thymeleaf的基础语法以及常用属性)
64 0
|
6月前
|
Java Spring
Spring中的表达式语言SpEL详解
Spring中的表达式语言SpEL详解
66 0
|
9月前
|
XML 安全 Java
SpEL(Spring表达语言)表达式详述
SpEL全称是Spring Expression Language是一种强大的表达式语言。在Spring产品组合中,它是表达式计算的基础。它支持在运行时查询和操作对象图,它可以与基于XML和基于注解的Spring配置还有bean定义一起使用。由于它能够在运行时动态分配值,因此可以为我们节省大量Java代码。
81 0
|
12月前
|
XML Java 数据库
Sping-Spring表达式语言SpEL
Sping-Spring表达式语言SpEL
66 0
|
设计模式 Java
Ognl 语法基础教程
本文将力求用最简单的语言和实例,介绍一下 OGNL 的语法规则,文章主要内容参考自官方文档commons.apache.org/proper/comm… 本篇主要是语法介绍篇,实战放在一下篇 因为本篇文章将是后 quick-fix 2.0 版本支持 ognl 的前导篇,先提前放出
345 0
|
前端开发
Thymeleaf 语法学习
Thymeleaf 语法学习,要学习语法,还是参考官网文档最为准确,我们找到对应的版本看一下;
Thymeleaf 语法学习
|
Java Spring
Spring框架:第五章:Spring EL表达式
Spring框架:第五章:Spring EL表达式
151 0