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

相关推荐
Apple_羊先森21 小时前
ORACLE数据库巡检SQL脚本--4、检查锁阻塞
数据库·sql·oracle
2301_8223650321 小时前
实战:用Python分析某电商销售数据
jvm·数据库·python
zhangyifang_00921 小时前
ClickHouse查询报错:Code: 62. DB::Exception: Max query size exceeded:
数据库·clickhouse
2301_7887560621 小时前
Python在2024年的主要趋势与发展方向
jvm·数据库·python
uoKent1 天前
MySQL示例数据库
数据库·mysql
麦聪聊数据1 天前
利用SQL2API模式重构微服务中的数据查询层
数据库·sql·低代码·微服务·架构
占疏1 天前
数据库-BRIN 索引
数据库·mysql
Aloudata1 天前
数据工程实践:智能制造企业如何通过NoETL指标平台为数据资产“瘦身”,实现TCO最优?
sql·数据分析·etl·指标平台
u0109272711 天前
Python虚拟环境(venv)完全指南:隔离项目依赖
jvm·数据库·python
m0_686041611 天前
Python类型提示(Type Hints)详解
jvm·数据库·python