• Nifi06 Nifi基础操作


    Nifi属性及基础操作

    一、Nifi属性介绍

    1 使用属性

    每个FlowFile都拥有多个属性,这些属性在FlowFile的生命周期中发生了变化。FlowFile的概念非常强大,并提供三个主要优点:

    • 第一个,允许用户在流中做路由决策,以满足某些条件的FlowFiles可以与其他FlowFiles进行不同的处理。这可以通过RouteOnAttribute和其他类似的处理器实现。
    • 第二个,利用属性配置处理器:处理器的配置依赖于数据本身。例如:PutFile能够使用Attributes来知道每个FlowFiles的存储位置,而每个FlowFile的目录和文件名属性可能不同(结合表达式语言,比如每个流都有FileName属性,组件中就可以这样配置文件名:${filename},就可以获得当前FlowFile中filename的属性值)。
    • 第三个,属性提供了有关数据的极有价值的上下文。在查看FlowFile的Provenance数据时非常有用,允许用户搜索符合特定条件的Provenance数据,并且还允许用户在检查Provenance时间的详细信息时查看上下文。通过简单的浏览该上下文用户能够知道为什么以这样或者那样的方式处理数据。

    2 共同属性

    每个FlowFile都有一组属性:

    • filename: 可用于将数据存储到本地或远程文件系统的文件名
    • path: 可用于将数据存储到本地或远程文件系统的目录的名称
    • uuid: 一个通用唯一标识符,用于区分FlowFile与系统中其他FlowFiles
    • entryDate: FlowFile进入系统的日期和时间。此属性值是一个数字,标识自1970年1月1日午夜(UTC)以来的毫秒数。
    • lineageStartDate: 任何时候克隆、合并或拆分FlowFile,都会创建子FlowFile。该值表示当前FlowFile最早的祖先进入系统的日期和时间。此属性值是一个数字,标识自1970年1月1日午夜(UTC)以来的毫秒数。
    • fileSize: 此属性表示FlowFile内容占用的字节数。

    3 提取属性

      NiFi提供了几种不同的处理器,用于从FlowFiles中提取属性。我们在之前的处理器分类中已经提到过。这是构建自定义处理器的一个非常常见的用例,其实编写处理器是为了理解特定的数据格式,并从FlowFile的内容中提取相关信息,创建属性来保存该信息,以便可以决定如何路由或处理数据。

    4 添加用户自定义的属性

      Nifi除了提供能够提取特定属性的处理器外,还支持用户自定义属性。用户可以通过单机属性卡右上角的+按钮添加新的属性。属性的值也包含表达式语言(Nifi有自己的表达式语言,可以系统的学习一下),这样就允许其他属性或添加属性。

    5 属性路由

      Nifi的一个强大功能是能够根据属性路由FlowFiles。执行此操作的主要机制是RouteOnAttribute。通过添加自定义属性进行配置,属性名可用于分发路由,属性值可以用来控制分发的数据。例如属性名insert属性值${type:equals('INSERT')}

    6 FlowFile拓扑:内容和属性

    FlowFile包括两部分:第一个是属性:记录FlowFile的元数据,保存关于内容的信息,比如什么时候创建、从哪来、代表什么。第二个内容:FlowFile的实际内容,比如GetFile读取数据时,读取到的实际文本。

    对FlowFile的操作:

    第一:更新、添加、删除FlowFile属性。

    	例如UpdateAttribute,该处理器使用属性表达式语言更新流文件的属性,并且/或则基于正则表达式删除属性。
    
    • 1

    第二:改变FlowFile内容。

    二、Nifi基础操作

    1 主页面

    打开Nifi Web页面后,即为主页面,如下图所示:可以创建组,创建任务流。

    在这里插入图片描述

    2 组

    2.1 创建组

    从常用功能模块,拖动组到画布上,自定义组名。可以通过鼠标移动组在画布位置。

    在这里插入图片描述

    2.2 进入、退出组

    选中某一个组,单击右键选择enter group或者双击组进入组内,在组内单击右键选择leave group退出组。

    在这里插入图片描述

    3 组件

    3.1 创建组件

    在常用功能模块,拖动processor,通过搜索选择你需要的组件

    在这里插入图片描述

    3.2 调整配置

    配置数据库,选择要执行的SQL语句。

    在这里插入图片描述

    3.3 单节点执行

    Execution有两个选项,分别是All nodes和Primary node,如果选择All nodes,那么在nifi集群中的所有节点都会执行一遍。

    在这里插入图片描述

    3.4 组件定时任务

    nifi定时任务,可通过timer driver、cron driver、event driver定时调度任务,timer调度可设定调度时间(sec),cron调度需要配置cron表达式,event调度暂时还不能使用。

    在这里插入图片描述

    3.4 组件流自处理

    当这个组件任务执行后,可能出现两种情况,一种是success一种是failure。因为我们没有后续的流,所以通过这样设置然其自身消化即可。

    在这里插入图片描述

    3.5 组件启动暂停

    在这里插入图片描述

    3.4 组件启用禁用

    组件处理禁用状态时,不可以有启动暂停操作

    在这里插入图片描述

    4 模板

    4.1 创建模板

    通过shift键,可选择需要的所有组件和连接关系,然后点击create template即可创建模板。

    在这里插入图片描述

    6.2 应用模板

    从历史创建的模板中选择需要的模板,ADD即可。

    在这里插入图片描述

    6.3 下载模板

    nifi支持下载模板,可以将已创建的模板下载到本地。

    在这里插入图片描述

    6.4 上传模板

    已下载的模板,可以导入任意的nifi实例中。

    在这里插入图片描述

  • 相关阅读:
    Ubuntu 安装 npm 和 node
    Shell 编程之免交互
    [附源码]java毕业设计拾穗在线培训考试系统
    分布式系统部署Redis
    PaddleOCR服务部署-并通过Java进行调用
    前端项目中使用插件prettier/jscodeshift/json-stringify-pretty-compact格式化代码或json数据
    【电源专题】电压源
    产品团队的需求验证和确认
    Oracle内存结构
    Linux更新g++
  • 原文地址:https://blog.csdn.net/m0_51197424/article/details/127121602