NIFI-CaptureChangeMySQL-mysqlBinlog增量同步處理器

1.簡介

從MySQL數(shù)據(jù)庫中檢索更改數(shù)據(jù)捕獲(CDC)事件。CDC事件包括插入、更新、刪除操作。事件作為單獨的流文件輸出,按操作發(fā)生的時間排序。


image

2.主要應(yīng)用方向

讀取mysql的binlog,將binlog以json形式形成流,供后續(xù)節(jié)點處理,比如將其寫入其他的數(shù)據(jù)庫(同步),寫入hdfs?均可!

3.主要配置

這里只介紹部分常用的配置,全量配置可參考官方提供的文檔

ame Description
MySQL Hosts 數(shù)據(jù)庫連接 如:192.168.3.70:3306
MySQL Driver Class Name 驅(qū)動:com.mysql.jdbc.Driver
MySQL Driver Location(s) 驅(qū)動所在位置:/tmp/mysql-connector-java-5.1.32-bin.jar
Username 數(shù)據(jù)庫用戶名
Password 密碼
Database/Schema Name Pattern DB名
Table Name Pattern 表名
Distributed Map Cache Client *重點:這里要為處理器配置一個存儲客戶端,一般選擇redis,下文會詳細介紹
Initial Binlog Filename 設(shè)置起始binglog文件名-不設(shè)置默認從第一個開始
Initial Binlog Position 設(shè)置binlog點位

下圖為配置樣例

image

4.Distributed Map Cache Client配置

Distributed Map Cache Client一定要設(shè)置,我最開始理解錯誤以為需要依賴第三方的存儲來實現(xiàn)這個功能,而且我沒有了解到這個配置的重要性.,我手欠的刪除了.引發(fā)慘痛的教訓(xùn)如下:
不用Distributed Map Cache Client讀取到的binlog里的字符串類型信息(數(shù)據(jù)庫名,數(shù)據(jù)表名,字符串類的字段內(nèi)容會是null,還會缺失mysql字段名稱)

詳細配置如下:

1.點擊這個配置,選擇創(chuàng)建一個客戶端作為處理器狀態(tài)數(shù)據(jù)存儲(如果你已有創(chuàng)建好的可以直接用,我的圖片是有我自己已經(jīng)創(chuàng)建好的一個redis服務(wù),其實就是創(chuàng)建個數(shù)據(jù)存儲的連接)

image

2.單擊->按鈕進入redis服務(wù)的配置
image

3.進入配置后如圖,這里我將其命名為-TEST和我另一個redis服務(wù)作為區(qū)分,可以看到State還未生效,因為還沒配置完成
image

4.點擊配置圖標,為你的redis客戶端配置server連接信息
image

5.此時你會發(fā)現(xiàn)多了一個RedisConnectionPoolService
image

6.繼續(xù)配置RedisConnectionPoolService
image

7.RedisConnectionPoolService配置好了后點擊生效(那個小閃電圖標)(注意:如果前面有黃色??說明你沒配置好,可以鼠標懸停在標志上看錯誤描述,一般都能看懂)

image

8.配置好binlog采集器后,我們再介入一個文件處理器,用于將我們采集的日志 輸出到某個文件中(這里僅因為是測試,也可以將流直接通過其他相關(guān)的處理器比如直接導(dǎo)入到另一個數(shù)據(jù)庫)
image

關(guān)于Putfile配置比較簡單,我們測試的話,只要寫好文件路徑即可,這里不做詳細介紹了

9.點擊啟動binglog采集處理器


image

10.觀察Putfile生成的文件內(nèi)容

image

11.你可以操作你的數(shù)據(jù)庫。并查看是否有對應(yīng)操作文件產(chǎn)生。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容