nifi
文章平均质量分 79
zhangjin1222
这个作者很懒,什么都没留下…
展开
-
ETL工具-nifi干货系列 第十八讲 nifi Funnel实战教程
在这种情况下,可以与优先级处理器一起使用过期机制,确保最高优先级的数据首先得到处理,然后任何在一定时间段内无法处理的数据(例如一个小时)可以被丢弃。换句话说,如果在给定连接上设置了文件过期时间为“1小时”,并且一个已在NiFi实例中一个小时的文件到达该连接,它将会过期。1)处理器GenerateFlowFile1生成2条数据,处理器GenerateFlowFile2生成2条数据,经过组件Funnel汇合之后将数据传递给LogMessae处理器(或者其他处理器),此时LogMessae处理器将收到4条数据。原创 2024-04-26 17:01:35 · 471 阅读 · 0 评论 -
ETL工具-nifi干货系列 第十七讲 nifi Input Port&Out Port 实战教程
Receive From:数据流来源的选项,有Local connections,Remote connections (site-to-site)两个选项。Send To:数据流发送目的地选项,有Local connections,Remote connections (site-to-site)两个选项。拖动处理组【用户信息表同步】➡️标记至处理组【交易订单表同步】,两个处理组直接进行关联。上图设计处理组【用户信息表同步】流向处理组【交易订单表同步】处理组和处理组之间可以通过使用端口来进行连接。原创 2024-04-25 08:00:00 · 536 阅读 · 0 评论 -
ETL工具-nifi干货系列 第十六讲 nifi Process Group实战教程,一文轻松搞定
将出站策略设置为“批量输出”,并结合使用“单个节点每次一个流文件”的FlowFile并发性,允许用户轻松摄取单个流文件(该流文件本身可能代表一批数据),然后等待直到该流文件的所有处理完成后再继续数据流的下一步(即流程组之外的下一个组件)。当FlowFile并发性配置为“单个节点每次一个批次”时,输入端口的行为方式与“单个节点每次一个流文件”模式类似,但是当摄取一个流文件时,输入端口将继续摄取所有数据,直到所有馈送输入端口的队列已被清空。3)选中某个处理组,可以单独启动或者暂停该处理组,而不影响其他处理组。原创 2024-04-24 21:25:49 · 938 阅读 · 0 评论 -
ETL工具-nifi干货系列 第十五讲 nifi处理器ConsumeKafka实战教程
如果两条消息具有相同标题的不同值,并且该标题由提供的正则表达式选择,则这两条消息必须添加到不同的 FlowFiles 中。因此,如果消息预期具有每个消息唯一的标题值(例如标识符或时间戳),用户在使用类似于 ".*" 的正则表达式时应谨慎,因为它将阻止 NiFi 将消息有效地捆绑在一起。如果此值设置为 true,则 NiFi 将不会接收任何生产者事务被取消的消息,但这可能会导致一些延迟,因为消费者必须等待生产者完成整个事务,而不是在消息可用时立即拉取。指定要拉取数据的 Kafka 主题的名称。原创 2024-04-23 08:00:00 · 741 阅读 · 0 评论 -
ETL工具-nifi干货系列 第十四讲 nifi处理器PublishKafka实战教程
如果未指定,则如果存在流文件属性 'kafka.key',则将其用作消息密钥。可以很清楚的看到PublishKafka处理器支持多个版本的kafka,选择时要根据自己的kafka 版本选择相匹配的PublishKafka处理器,由于本人使用的是kafka2.x,所以这里选择PublishKafka_2_0处理器。Message Header Encoding:对于作为消息标头添加的任何属性,通过 属性配置,此属性指示用于序列化标头的字符编码。原创 2024-04-22 08:00:00 · 1084 阅读 · 0 评论 -
ETL工具-nifi干货系列 第十四讲 nifi处理器QueryDatabaseTableRecord查询表数据实战教程
1、处理器QueryDatabaseTableRecord和处理器QueryDatabaseTable比较相似,该组件生成一个 SQL 查询,或者使用用户提供的语句,并执行它以获取所有在指定的最大值列中值大于先前所见最大值的行。处理器QueryDatabaseTableRecord属性配置和处理器QueryDatabaseTable属性配置基本一样,不了解的可以参考上一篇文章。唯独多了Record Writer属性。原创 2024-04-17 10:00:00 · 602 阅读 · 0 评论 -
ETL工具-nifi干货系列 第十三讲 nifi处理器QueryDatabaseTable查询表数据实战教程
如果启用,则使用逻辑类型并按其底层类型写入,具体来说,DECIMAL/NUMBER 作为逻辑 ‘decimal’:按字节写入,并附加精度和比例元数据,DATE 作为逻辑 ‘date-millis’:按整数写入,表示自 Unix 纪元(1970-01-01)以来的天数,TIME 作为逻辑 ‘time-millis’:按整数写入,表示自 Unix 纪元以来的毫秒数,以及 TIMESTAMP 作为逻辑 ‘timestamp-millis’:按长整数写入,表示自 Unix 纪元以来的毫秒数。原创 2024-04-16 12:38:31 · 983 阅读 · 0 评论 -
ETL工具-nifi干货系列 第十二讲 nifi处理器UpdateRecord使用教程
指定要用于写出记录的控制器服务,根据情况选择合适的控制器服务,这里由于输出数据是json格式,所以选择JsonRecordSetWrite进行输出数据,当然也可以选取其他控制器服务。例如,如果你想name字段的值改为固定的"Java大金刚",你可以在Literal Value中写入这个值,如上图所示。指定要用于读取传入数据的控制器服务,根据情况选择合适的控制器服务,这里由于输入数据是json格式,所以选择JsonTreeReader进行加载数据。本节教程比较简单,涉及处理器流程如下。原创 2024-04-15 10:00:00 · 567 阅读 · 0 评论 -
ETL工具-nifi干货系列 第十一讲 处理器UpdateAttribute使用教程
选择有状态的选项将不仅存储流文件上的属性,还会存储在处理器的状态中。(user.*|host.*|.*Date) - 将删除 "user"、"username"、"userName"、"hostInfo"、"hosts" 和 "updateDate",但不会删除 "User"、"HOST"、"update" 或 "updatedate"。user.* - 将删除以 "user" 开头的属性,例如 "username"、"userName"、"userID" 和 "users"。原创 2024-04-12 15:37:22 · 920 阅读 · 0 评论 -
ETL工具-nifi干货系列 第十讲 处理器RouteOnAttribute使用教程,方便灵活控制数据流向
之后connection 连线配置的关联选项只有matched和unmatched两个选项,如userId=1或者userId=100路由到LogMessage-kkk,相当于java中的if(userId.equals('1')||name.equals('Java小金刚')){print('我路由到LogMessage-kkk')}相当于switch-case,多路分支。:针对一条路由规则进行控制,如userId=1时路由到LogMessage-1,相当于java中的switch-case。原创 2024-04-09 08:00:00 · 841 阅读 · 0 评论 -
ETL工具-nifi干货系列 第九讲 处理器EvaluateJsonPath,根据JsonPath提取字段
下拉选项有auto-detect、json、scalar,默认值为auto-detect,用于指示 JSON Path 表达式的期望返回类型属性。选择 'auto-detect' 会根据目标的设置来确定返回类型:对于目标为 'flowfile-content' 的情况,返回类型将设置为 'json';:下拉选项有warn、ignore、skip,默认值为ignore,目标设置为 'flowfile-attribute' 时,如何处理缺失的 JSON Path 表达式的方式。原创 2024-04-08 10:08:54 · 1057 阅读 · 1 评论 -
ETL工具-nifi干货系列 第八讲 处理器PutDatabaseRecord 写数据库(详细)
4、处理器PutDatabaseRecord将数据写入数据库,此处理器需要配置两个控制器,Record Reader和Database Connection Pooling Service 两个控制器。如下流程通过处理器GenerateFlowFile 生成数据,然后通过处理器JoltTransformJSON转换结构,最后通过处理器PutDatabaseRecord将数据写入数据库。3、处理器JoltTransformJSON转换结构,将结构转换成适合表字段的结构,此时有两种方式驼峰和下划线两种方式。原创 2024-04-03 22:47:25 · 1136 阅读 · 4 评论 -
ETL工具-nifi干货系列 第七讲 处理器JoltTransformJSON(续)
4、Modify - Define:修改字段的值,如果字段不存在则创建该字段并赋值,测试结果同Modify - Define。3、Modify -Default:修改字段的值,如果字段不存在则添加默认值,如果字段存在不做处理。5、Modify - Overwrite:修改字段的值,如果字段不存在则忽略,存在的话强制覆盖。"nameArry": ["Javax 小金刚", "Javax 大金刚"]"name": "Javax 小金刚""name": "Javax 小金刚"原创 2024-04-02 17:13:19 · 1389 阅读 · 0 评论 -
ETL工具-nifi干货系列 第六讲 处理器JoltTransformJSON
Jolt Specification 设置为[{"operation":"shift","spec":{"id":"person.id","name":"person.name"}}]Jolt:JSON 到 JSON 转换库,用 Java 编写,其中转换的 "规范" 或者描述文件本身就是一个 JSON 文档。处理器GenerateFlowFile 产生json字符串{"id":"1","name":"Java小金刚"}Modify - Define:修改字段的值,如果字段不存在则创建该字段并赋值。原创 2024-04-01 21:00:51 · 804 阅读 · 0 评论 -
kettle从入门到精通 第四十五课 ETL之 kettle redis
步骤【生成记录】生成一笔测试数据,步骤【Java代码-redis-set】往redis里面写数据,步骤【Java代码-redis-get】从redis读取数据,如下图所示。1、kettle 9.3/9.4 spoon客户端中默认是没有redis步骤的,首先想到在kettle的插件市场进行下载redis步骤。2、可能因为网络原因,直接下载失败了。索性放弃redis原有插件步骤,改为自己通过java代码进行实现,(下面代码中标红的部分为关键代码,其他为模版代码。下面代码中标红的部分为关键代码,其他为模版代码。原创 2024-02-23 22:13:31 · 950 阅读 · 0 评论 -
ETL工具-nifi干货系列 第五讲 处理器GenerateFlowFile
1、今天我们一起来学习处理器GenerateFlowFile。这个处理器创建带有随机数据或自定义内容的 FlowFiles。GenerateFlowFile 对于负载非常有用。从工具栏拖动处理器到画布,然后选择GenerateFlowFile即可。2、点击add按钮或者双击 GenerateFlowFile可将此处理器添加到画布。3、此时GenerateFlowFile 有个感叹号的图标,标记处理器存在无效的配置。上图的提示意思是当此处理器处理成功之后没有设置流向组件(其他处理器)同时页面设置自动终止。原创 2024-03-28 08:29:37 · 1315 阅读 · 0 评论 -
ETL工具-nifi干货系列 第四讲 Avro schema 序列化框架
这意味着数据的结构和类型在传输过程中是明确的,可以提供更强的数据验证和类型安全性。{"name":"java小金刚","age":20,"skill":["java","go","python","kafka"],"other":{"interests":"basketball"}}需要注意的是:当为union类型的字段指定默认值时,默认值的类型必须与union第一个元素匹配,因此,对于包含"null"的union,通常先列出"null",因为此类型的union的默认值通常为空。原创 2024-03-27 07:00:00 · 1247 阅读 · 0 评论 -
ETL工具-nifi干货系列 第三讲 nifi web ui 使用教程
(Locally Modifyed and Stale Versioned Process Groups)画布上每个处于本地修改且过时状态下存在的版本化处理组数量。(Start)启动,点击此按钮启动,如果页面中状态栏中的感叹号数量大于0的话是无法启动的,必须根据感叹号提示内容修正感叹号数量为0时才可以正常启动。拖拉处理器到画布中,出现处理器选择列表,可以根据处理器来源,标签,类型,用途等进行检索自己需要的处理器,如下图所示。(Invalid Components)画布上每个处于无效状态下存在的处理器数量。原创 2024-03-25 07:00:00 · 1315 阅读 · 0 评论 -
ETL工具-nifi干货系列 第二讲 nifi下载&安装
官方下载地址:https://archive.apache.org/dist/nifi/,最新的版本是2.X,但是需要jdk版本比较高,可以下载1.X版本,可以直接使用jdk8。本系列讲解的版本是1.25.0,直接点击。找到conf目录中的nifi.properties,设置nifi.security.allow.anonymous.authentication=true,nifi服务启动之后无需用户名和密码直接进入,跳过登录页面。./nifi.sh install,可以通过如下命令和服务交互。原创 2024-03-24 07:00:00 · 954 阅读 · 0 评论 -
ETL工具-nifi干货系列 第一讲 揭开nifi神秘面纱
是 NiFi 中的扩展点,在用户界面中由数据流管理者(DFM)添加和配置后,会在 NiFi 启动时启动,并为其他组件(例如处理器或其他控制器服务)提供信息。NiFi为所有接收到的数据提供了细粒度的数据溯源,包括接收、分叉、连接、克隆、修改、发送以及最终到达配置的最终状态时被丢弃的过程。因此,可以将几个组件合并在一起,形成一个更大的构建模块,用来创建数据流。通过报告任务,数据流管理者可以实时监控和评估 NiFi 实例的健康状态和运行情况,从而及时采取必要的措施以确保系统的稳定性和高效性。原创 2024-03-23 13:03:20 · 1183 阅读 · 0 评论