当前位置: 首页 > 知识库问答 >
问题:

Apache NiFi中处理器属性和Flowfile属性之间的差异

隗轶
2023-03-14

我目前的理解是,NiFi处理器属性是特定于该处理器的。那么,向处理器添加新属性将只在该处理器内可见,而不会传递到以后的处理器块?

这就是为什么updateAttribute需要添加在flowfile遍历数据流时保留在flowfile中的元数据:

那么,允许用户在处理器中添加定义和执行所需的自定义属性有什么价值呢?它是否类似于创建可以在其他属性中使用的变量?

共有1个答案

曹泉
2023-03-14

这是一个很好的问题,当每个人开始在NIFI中构建数据流时,都会想到这个问题。

第一件事:属性vs FlowFile属性

正如您在问题本身中提到的那样,属性是用于控制处理器行为的东西,而属性是操作流的元数据。

一个简单的例子,让我们以getfile处理器为例。它公开的属性,如输入目录文件筛选器等,告诉处理器查找源数据的位置和方法。当处理器成功地找到与您的配置匹配的源时,它会启动流,这意味着生成flowfile。这个FlowFile将携带源数据的内容和源的一些元数据,如文件的名称、文件的大小、上次修改的时间等。这个元数据实际上可以帮助您与后续的处理器一起处理流,比如检查文件的类型,并相应地路由FlowFile。请注意,元数据不是固定的;它因处理器的不同而不同。

每个处理器添加的核心属性很少,如application.typefilesizeuuidpath等,

当用户没有将自定义属性添加到属性中时,允许用户添加自定义属性的目的是什么?

这是NiFi提供给处理器的一个特性,处理器可以使用或忽略它。并非所有处理器都允许添加自定义属性。只有选择性处理器才这样做。

让我们以invokehttp为例。该处理器允许开发人员创建自定义属性。当用户添加新的自定义属性时,该属性作为头添加到处理器将要进行的HTTP调用中,因为处理器是以这种方式构建的。它查找任何动态(自定义)属性。如果它们存在,它将被认为是用户想要发送的自定义头。

 类似资料:
  • 下面两个属性有什么区别,什么时候用哪个?

  • 和之间有什么区别吗,两者都在Spring启动应用程序application.properties文件中指定。 下面是Spring靴留档的参考资料,不幸的是,它们之间没有显示任何联系,但看起来它们有相同的用途。 https://docs.spring.io/spring-boot/docs/2.6.6/reference/htmlsingle/#features.logging.console-输出

  • 问题内容: 对于“属性”和“属性”之间的区别,我通常感到困惑,并且找不到很好的资源来简洁地详细说明这些区别。 问题答案: 属性是一种特殊的属性。基本上,当Python遇到以下代码时: 它查找中,然后检查,看它是否有一个,或方法- 如果这样做,这是一个性质。如果它 是 一个属性,则不仅会返回该对象(就像对其他任何属性一样),还会调用该方法(因为我们一直在进行查找),并返回该方法返回的内容。 有关Py

  • 本文向大家介绍综合属性和继承属性之间的区别,包括了综合属性和继承属性之间的区别的使用技巧和注意事项,需要的朋友参考一下 合成属性和继承属性都是语言语义的一部分,该语言为其构造提供含义,例如标记和语法结构。语义有助于解释符号,符号的类型及其相互之间的关系,其分析可判断源程序中构造的语法结构是否衍生出任何含义。现在,基于属性的特征,我们可以区分综合属性和继承属性 以下是合成属性和继承属性之间的重要区别

  • 问题内容: 我是Swift的新手。计算属性和设置为闭包的属性之间有什么区别?我知道每次都会重新计算一个计算属性。封盖是否有所不同?即 关闭: 计算: 问题答案: 第一个是通过闭包初始化的存储属性。第二个是计算属性。 存储的属性的初始化关闭被调用一次,只有一次,但你可以改变存储的属性值(除非您更换同)。当您希望封装代码以在单个简洁的代码块中初始化存储的属性时,此功能很有用。 但是,每次引用变量时都会

  • 属性 属性(Attribute)是一种通用的用于表达元数据的特性,借鉴ECMA-334(C#)的语法来实现ECMA-335中描述的Attributes。属性只能应用于Item(元素、项), 例如 use 声明、模块、函数等。 元素 在Rust中,Item是Crate(库)的一个组成部分。它包括 extern crate声明 use声明 模块(模块是一个Item的容器) 函数 type定义 结构体定