【NIFI】实现ORACLE->ORACLE数据同步

ops/2024/12/28 19:58:16/

【NIFI】实现ORACLE->ORACLE数据同步

需求

  • 使用nifi实现 oracle->oracle 不同数据库之间的数据同步, 如果想实现 oracle->oracle技术有很多,例如使用oracle golden gate或者是kettle等,或者是使用oralce的dblink技术也能实现。当让如果使用dblink就不是数据同步了,属于数据共享了。

配置如下

在这里插入图片描述

1、QueryDatabaseTable:用于读取数据
2、ConvertAvroToJSON:读取数据转换JSON
3、ConvertJSONToSQL: 转换插入语句
4、PutSQL: 执插入语句
5、ConvertJSONToSQL: 转换更新语句
6、PutSQL: 执更新语句

1、QueryDatabaseTable 配置

在这里插入图片描述

  • Database Connection Pooling Service:数据库连接池,点击后面红色的按钮可以添加:
    在这里插入图片描述
    在这里插入图片描述

Database Connection URL:jdbc:oracle:thin:@<ip>:<port>/<db>
DatabaseDriver Class Name:oracle.jdbc.driver.OracleDriver
Database DriverLocation(s):/app/nifi-1.27.0/extensions/ojdbc6-11.2.0.4.0-atlassian-hosted.jar
Database User:<username>
Password:<password>

以上根据实际情况配置,如果存在多个jar可以只填写到文件夹;
在这里插入图片描述
点击小闪电可以启动获取是关闭连接池

  • JDBC Connection Pool:ORACLE-TEST-CA-155
  • Database Type:ORALCE
  • Table Name:application_20230210
  • Maximum-value Columns:OID

Maximum-value Columns:填写了意味着每次只比上一次同步记录值大的数据;

2、ConvertAvroToJSON 配置

在这里插入图片描述
不用做任何调整,使用默认位置

3、ConvertJSONToSQL 配置

在这里插入图片描述

  • JDBC Connection Pool:ORACLE-DEV-PO-119
  • Statement Type:INSERT
  • Table Name:APPLICATION_20230210
  • Update Keys:OID

注意避坑:Table Name 必须大写,ORACLE 默认大小写不敏感的,否则无法实现数据同,ConvertJSONToSQL 在生成sql时候去读的是oracle表的字段

4、PutSQL 配置

在这里插入图片描述

  • JDBC Connection Pool:ORACLE-DEV-PO-119

5、ConvertJSONToSQL 配置

在这里插入图片描述

  • JDBC Connection Pool:ORACLE-DEV-PO-119
  • Statement Type:UPDATE
  • Table Name:APPLICATION_20230210
  • Update Keys:OID

注意避坑:Table Name 必须大写,ORACLE 默认大小写不敏感的,否则无法实现数据同,ConvertJSONToSQL 在生成sql时候去读的是oracle表的字段

6、PutSQL 配置

在这里插入图片描述

  • JDBC Connection Pool:ORACLE-DEV-PO-119

连线配置

1、QueryDatabaseTable:用于读取数据
2、ConvertAvroToJSON:读取数据转换JSON
3、ConvertJSONToSQL: 转换插入语句
4、PutSQL: 执插入语句
5、ConvertJSONToSQL: 转换更新语句
6、PutSQL: 执更新语句

1->2 QueryDatabaseTable -> ConvertAvroToJSON

在这里插入图片描述

2->3 ConvertAvroToJSON-> ConvertJSONToSQL

在这里插入图片描述

3->4ConvertJSONToSQL -> PutSQL

在这里插入图片描述

2->5 ConvertAvroToJSON -> ConvertJSONToSQL

在这里插入图片描述

5->6ConvertJSONToSQL -> PutSQL

在这里插入图片描述
其他场景的均终止即可
在这里插入图片描述
最后节点的关系是全部终止
在这里插入图片描述

启动流程

对流程中的每个步骤进行启动
在这里插入图片描述
这样就完成了同步的配置,接下来就能去检查数据表中的数据了


http://www.ppmy.cn/ops/145729.html

相关文章

01.HTTPS的实现原理-HTTPS的概念

01.HTTPS的实现原理-HTTPS的概念 简介1. HTTPS的概念和安全性2. HTTPS的实现原理3. HTTPS和HTTP的区别4. OSI七层协议模型5. SSL和TLS的区别 简介 该系列文章主要讲述了HTTPS协议与HTTP协议的区别&#xff0c;以及HTTPS如何实现安全传输。内容分为三部分&#xff1a;HTTPS的实…

D类音频应用EMI管理

1、前言 对于EMI&#xff0c;首先需要理解天线。频率和波长之间的关系&#xff0c;如下图所示。   作为有效天线所需的最短长度是λ/4。在空气中&#xff0c;介电常数是1&#xff0c;但是在FR4或玻璃环氧PCB的情况下&#xff0c;介电常数大约4.8。这种效应会导致信号在FR4材…

2020数字中国创新大赛-虎符网络安全赛道丨Web Writeup

本文是i春秋论坛作家「OPLV1H」表哥参加2020数字中国创新大赛-虎符网络安全赛道线上初赛的赛后总结&#xff0c;关于Web的Writeup记录&#xff0c;感兴趣的小伙伴快来学习吧。 1、hash_file — 是使用给定文件的内容生成哈希值&#xff0c;和文件名称无关。 2、jwt令牌结构和j…

C++线程同步和互斥

【欢迎关注编码小哥&#xff0c;学习更多实用的编程方法和技巧】 1、互斥锁基本使用 #include <mutex> #include <thread> #include <iostream>class Counter { private:int value 0;std::mutex mtx;public:// 使用互斥锁保护临界区void increment() {// …

Vue3入门(9)

1. 【 replace属性】 作用&#xff1a;控制路由跳转时操作浏览器历史记录的模式。 浏览器的历史记录有两种写入方式&#xff1a;分别为push和replace&#xff1a; - push是追加历史记录&#xff08;默认值&#xff09;。 - replace是替换当前记录。 . 开启replace模式&#xff…

【ES6复习笔记】Spread 扩展运算符(8)

在现代前端开发中&#xff0c;JavaScript 的扩展运算符&#xff08;Spread Operator&#xff09;是一个非常有用的特性&#xff0c;它允许你将数组或对象展开&#xff0c;以便在函数调用、数组拼接、对象复制等场景中更方便地处理数据。扩展运算符&#xff08;spread&#xff0…

NAT 技术如何解决 IP 地址短缺问题?

NAT 技术如何解决 IP 地址短缺问题&#xff1f; 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 随着互联网的普及和发展&#xff0c;IP 地址的需求量迅速增加。尤其是 IPv4 地址&…

SpringBoot3-第十篇(整合Web安全)

系列文章目录 SpringBoot3-第一篇&#xff08;快速入门&#xff09; SpringBoot3-第二篇&#xff08;Web开发&#xff09; SpringBoot3-第三篇&#xff08;数据访问&#xff09; SpringBoot3-第四篇&#xff08;基础特性&#xff09; SpringBoot3-第五篇&#xff08;核心原理&…