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

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點位 |
下圖為配置樣例

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ù)存儲的連接)

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

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

5.此時你會發(fā)現(xiàn)多了一個
RedisConnectionPoolService
6.繼續(xù)配置
RedisConnectionPoolService
7.RedisConnectionPoolService配置好了后點擊生效(那個小閃電圖標)(注意:如果前面有黃色??說明你沒配置好,可以鼠標懸停在標志上看錯誤描述,一般都能看懂)

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

關(guān)于Putfile配置比較簡單,我們測試的話,只要寫好文件路徑即可,這里不做詳細介紹了
9.點擊啟動binglog采集處理器

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

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