ETL工具-nifi干货系列 第八讲 处理器PutDatabaseRecord 写数据库(详细)

1、本节通过一个小例子来讲解下处理器PutDatabaseRecord,该处理器的作用是将数据写入数据库。

如下流程通过处理器GenerateFlowFile 生成数据,然后通过处理器JoltTransformJSON转换结构,最后通过处理器PutDatabaseRecord将数据写入数据库。如下图所示

2、处理器GenerateFlowFile 生成自定义数据,如下图所示

3、处理器JoltTransformJSON转换结构,将结构转换成适合表字段的结构,此时有两种方式驼峰和下划线两种方式。下图采用驼峰方式

4、处理器PutDatabaseRecord将数据写入数据库,此处理器需要配置两个控制器,Record Reader和Database Connection Pooling Service 两个控制器。

Record Reader

指定用于解析传入数据并确定数据模式的控制器服务。

Database Type

数据库的类型/版本,用于生成特定于数据库的代码。在许多情况下,通用类型应该足够,但某些数据库(例如Oracle)需要自定义的SQL子句。这里我们选择mysql

Statement Type

支持常见的sql语句类型,如增删改查,我们这里选择insert

Data Record Path

指定数据记录的路径,该路径确定了要发送到目标数据库的记录。

Database Connection Pooling Service

配置数据库连接池信息,如下图所

 

Catalog Name

SQL语句应该更新的目录名称

Schema Name

database 名称

Table Name

表名

Translate Field Names

如果设置为 true,处理器将尝试将字段名翻译为指定表格的相应列名。如果设置为 false,字段名必须与列名完全匹配,否则列将不会被更新。

Unmatched Field Behavior

未匹配的字段行为,自己根据要求进行选择。未匹配的字段行为,自己根据要求进行选择策略。

Unmatched Field Behavior

如果传入记录没有数据库表的所有列的字段映射,该属性指定如何处理这种情况。

其他属性如果感兴趣的可以自行尝试配置。

5、大功告成,查看表my_user,数据已经写入,这里为了演示方便,所以user_id 没有设置唯一健。

相关推荐
java1234_小锋3 小时前
【技术专题】Mysql8 数据库 - Mysql8 数据库基本操作
数据库·mysql
其实防守也摸鱼4 小时前
DeepSeek Harness 开源贡献手记:从 Issue 到 Merge 的完整旅程
android·数据库·学习·ai·oracle·自动化
jason.zeng@15022074 小时前
canal做mysql的异步传输工具
数据库·mysql·linq
Ivanqhz4 小时前
BURG(自底向上重写生成器)
服务器·数据库·人工智能·深度学习·算法
仍然.4 小时前
Redis---主从复制
java·数据库·redis
其实防守也摸鱼4 小时前
网安自测题:掌握核心知识点的实用练习
linux·运维·服务器·前端·数据库·sql·xss
数字化顾问4 小时前
(142页PPT)PLM+ERP系统选型及建设方案建议书(附下载方式)
数据库
木白CPP4 小时前
[QNX] 深入理解 Resource Manager 接口设计
linux·服务器·数据库
Shadow(⊙o⊙)4 小时前
MySQL C/C++链接MySQL使用
数据库·sql·mysql
Mortalbreeze4 小时前
MySQL 基础篇(五):数据操作基础 —— CRUD
linux·服务器·数据库·mysql