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 没有设置唯一健。

相关推荐
陌上丨12 小时前
Redis的Key和Value的设计原则有哪些?
数据库·redis·缓存
AI_567812 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
ccecw13 小时前
Mysql ONLY_FULL_GROUP_BY模式详解、group by非查询字段报错
数据库·mysql
JH307313 小时前
达梦数据库与MySQL的核心差异解析:从特性到实践
数据库·mysql
数据知道13 小时前
PostgreSQL 核心原理:如何利用多核 CPU 加速大数据量扫描(并行查询)
数据库·postgresql
麦聪聊数据14 小时前
Web 原生架构如何重塑企业级数据库协作流?
数据库·sql·低代码·架构
未来之窗软件服务14 小时前
数据库优化提速(四)新加坡房产系统开发数据库表结构—仙盟创梦IDE
数据库·数据库优化·计算机软考
Goat恶霸詹姆斯16 小时前
mysql常用语句
数据库·mysql·oracle
大模型玩家七七16 小时前
梯度累积真的省显存吗?它换走的是什么成本
java·javascript·数据库·人工智能·深度学习
曾经的三心草16 小时前
redis-9-哨兵
数据库·redis·bootstrap