ETL工具-nifi干货系列 第十讲 处理器RouteOnAttribute(数据流路由)
1、今天我们一起来学习下处理器RouteOnAttribute,此处理器的作用是根据属性值进行路由进而来控制数据流的走向。类似于java中的if-else或者switch-case。如下图所示。
GenerateFlowFile 产生测试数据,{"name":"Javax 小金刚","id":"2"}
JoltTransformJSON 转换json结构:{"person":{"name":"Javax 小金刚","id":"2"}}
EvaluateJsonPath 提取指定字段userId,不了解EvaluateJsonPath 可以参考上篇文章
RouteOnAttribute 根据userId属性进行路由,为了演示方便这里仅仅是判断userId=1路由到LogMessage-1,userId=2路由到LogMessage-2,其他数据路由到LogMessage-default
2、RouteOnAttribute处理器功能很明显,根据flowFile的属性进行路由,如下图所示。
Routing Strategy:路由策略,有Route to Property name(本次演示选择此路由策略) 、Route to 'matched' if all match 、Route to 'matched' if any matches 三个选项。
Route to Property name :针对一条路由规则进行控制,如userId=1时路由到LogMessage-1,相当于java中的switch-case。
Route to 'matched' if all match :针对多条路由规则进行控制,如userId=1并且name=Java小金刚路由到LogMessage-xxx,相当于java中的if(userId.equals('1')&&name.equals('Java小金刚')){print('我路由到LogMessage-xxx')}
Route to 'matched' if any matches :针对多条路由规则进行控制,如userId=1或者userId=100路由到LogMessage-kkk,相当于java中的if(userId.equals('1')||name.equals('Java小金刚')){print('我路由到LogMessage-kkk')}
点击+号进行添加路由规则,可以添加一条或者多条。value支持el表达式,el表达式后续专题讲解。
3、双击RouteOnAttribute和LogMessage中间的连线,配置关联关系,此时RouteOnAttribute中配置的test1、test2路由条件会在这里显示,同时还会有一个unmatched选项处理未匹配默认值。
当Routing Strategy路由策略选择Route to Property name时,test1、test2、unmatched三个选项只勾选一个。相当于switch-case,多路分支。
选择Route to 'matched' if all match 或者Route to 'matched' if any matches 之后connection 连线配置的关联选项只有matched和unmatched两个选项,如userId=1或者userId=100路由到LogMessage-kkk,相当于java中的if(userId.equals('1')||name.equals('Java小金刚')){print('我路由到LogMessage-kkk')}
4、LogMessage处理器,该处理器作用是记录日志,相当于kettle中的写日志步骤。设置比较简单,这里不做过多介绍。
5、下图为处理器LogMessage打印的日志信息,在日志文件nifi-app.log 中查看。
ETL工具-nifi干货系列 第十讲 处理器RouteOnAttribute(数据流路由)的更多相关文章
- WP8.1学习系列(第十九章)——事件和路由事件概述
我们将介绍在使用 C#.Visual Basic 或 Visual C++ 组件扩展 (C++/CX) 作为编程语言并使用 XAML 进行 UI 定义时,针对 Windows 运行时应用的事件的编程概 ...
- Spring Boot干货系列:(十二)Spring Boot使用单元测试(转)
前言这次来介绍下Spring Boot中对单元测试的整合使用,本篇会通过以下4点来介绍,基本满足日常需求 Service层单元测试 Controller层单元测试 新断言assertThat使用 单元 ...
- 开源ETL工具kettle系列之常见问题
开源ETL工具kettle系列之常见问题 摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. J ...
- 数据仓库系列之ETL过程和ETL工具
上周因为在处理很多数据源集成的事情一直没有更新系列文章,在这周后开始规律更新.在维度建模中我们已经了解数据仓库中的维度建模方法以及基本要素,在这篇文章中我们将学习了解数据仓库的ETL过程以及实用的ET ...
- etl学习系列1——etl工具安装
ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可 ...
- ETL工具的功能和kettle如何来提供这些功能
不多说,直接上干货! 大家会有一个疑惑,本系列博客是Kettle,那怎么扯上ETL呢? Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行. 说白了 ...
- Web 开发人员和设计师必读文章推荐【系列三十】
<Web 前端开发精华文章推荐>2014年第9期(总第30期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...
- Web 开发人员和设计师必读文章推荐【系列二十九】
<Web 前端开发精华文章推荐>2014年第8期(总第29期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...
- 【转】ETL介绍与ETL工具比较
本文转载自:http://blog.csdn.net/u013412535/article/details/43462537 ETL,是英文 Extract-Transform-Load 的缩写,用来 ...
- ElasticStack系列之十六 & ElasticSearch5.x index/create 和 update 源码分析
开篇 在ElasticSearch 系列十四中提到的问题即 ElasticStack系列之十四 & ElasticSearch5.x bulk update 中重复 id 性能骤降,继续这个问 ...
随机推荐
- ASP.NET Core Web API下基于Keycloak的多租户用户授权的实现
在上文<Keycloak中授权的实现>中,以一个实际案例介绍了Keycloak中用户授权的设置方法.现在回顾一下这个案例: 服务供应商(Service Provider)发布/Weathe ...
- Oracle 将字符中含有的字母或特殊字符去除并将字符串置换成数字
将字符中含有的字母或特殊字符去除并将字符串置换成数字 将字符中含有的字母或特殊字符去除并将字符串置换成数字 to_number(nvl(TRANSLATE(u.scsqrbzl, 'qwertyuio ...
- 力扣1068(MySQL)-产品销售分析Ⅰ(简单)
题目: 销售表 Sales: 产品表 Product: 写一条SQL 查询语句获取 Sales 表中所有产品对应的 产品名称 product_name 以及该产品的所有 售卖年份 year 和 价格 ...
- 基于 Serverless 架构的头像漫画风处理小程序
简介: 当一个程序员想要个漫画风的头像时... 前言 我一直都想要有一个漫画版的头像,奈何手太笨,用了很多软件 "捏不出来",所以就在想着,是否可以基于 AI 实现这样一个功能, ...
- 带你体验云原生场景下 Serverless 应用编程模型
简介: 阿里云 Knative 基于 ASK 之上,在完全兼容社区 Knaitve 的同时对 FC.ECI 工作负载进行统一应用编排,支持事件驱动.自动弹性,为您提供统一的 Serverless 应 ...
- [Go] Golang Context 包的注意点
Golang context 包,定义了context 类型,携带截止日期,取消信号,和其它跨API请求作用域及进程间的值. 到服务器的请求应该创建一个 Context,服务器对外的调用应该接受一个C ...
- vue应用el-tabel封装
<template> <div class="table"> <el-table :data="tableList" style= ...
- AI编译器CINN v.s TVM 中CodeGen 源码解读
如下的技术点梳理仅以「日常优化工作」为牵引点,涉及哪个模块,就具体去看哪个模块的代码. 一.CINN 框架 CINN 中CodeGen之后的代码编译主要交给了Compiler类来负责.核心的函数主要是 ...
- 【源码】蚁群算法TSP问题可视化
ACO.Visualization项目 本项目演示蚁群算法求解旅行商问题的可视化过程,包括路径上的信息素浓度.蚁群的运动过程等.项目相关的代码:https://github.com/anycad/AC ...
- vite.config.js 无法使用__dirname的解决方法
__dirname 是commonjs规范的内置变量.如果使用了esm 是不会自动注入这个变量的. 在commonjs中,注入了__dirname,__filename, module, export ...