Flink基礎教程:FlinkX RDB介紹與基本演示

數棧DTinsight發表於2021-03-29

一、RDB模組介紹與演示

針對關係型資料庫,FlinkX-RDB封裝了基於JDBC規範的查詢與插入等公共操作,各個資料來源可透過繼承FlinkX-RDB模組實現各自邏輯,目前已支援絕大部分市面上的RDB資料來源:

    MySQL
    Oracle
    SqlServer
    PostgreSQL
    Db2
    DM
    Gbase
    ClickHouse
    SAPHANA
    Teradata
    Greeplum

二、髒資料原理與演示

資料同步過程中,出現主鍵為空,主鍵衝突等髒資料導致插入失敗時,根據任務配置選擇記錄髒資料並繼續執行後續資料插入或者直接結束任務。生產環境會根據髒資料管理模組對髒資料進行管理,儲存到檔案系統裡,在任務結束後,可以在對應路徑下檢視,目前只支援Hadoop檔案系統儲存。

三、多通道原理與演示

其本質是透過Flink的並行度進行多執行緒併發讀寫以及資料庫函式的mod()方法劃分資料,使得資料不會重複讀取。開啟多通道的引數如下:

    reader外掛parammeter裡配置 splitPk切割鍵
    setting.speed裡配置 channel 通道數量

四、自定義sql使用

FlinkX透過where條件拼接來進行自定義過濾,自定義過濾條件仍然是對table進行資料過濾,而自定義sql則是使用者透過customSql指定sql,將其作為子查詢,其結果作為臨時表進行同步。

五、增量同步

表裡的資料每天都在增加只需要同步增量的資料即可。指定增量欄位來構造sql的where條件語句查詢增量的資料,並將最後一條資料的增量欄位值存到prometheus中,作為下次任務的增量欄位起始值,達到增量資料的每日同步。只有RDB型別的reader外掛支援增量同步並且增量欄位只能為數值型別或者時間型別。

六、斷點續傳

斷點續傳使用場景是在需要資源較多的任務中,如果出現同步失敗,重新同步會耗費大量資源,因此需要在同步失敗的地方開始重新同步,減少資源的佔用。斷點續傳主要透過Flink的Check Point機制儲存任務執行時的狀態以及位置資訊並在CheckPoint時進行事務的提交,避免資料重複插入,這樣在任務失敗的時候,從Check Point處進行恢復執行即可。

七、間隔輪詢

間隔輪詢場景是在表裡的資料不停的插入而不做其他操作,其原理根據配置的增量標識欄位去輪詢資料庫獲取資料,如果獲取到資料則更新增量標識欄位的值,相當於一個無界流,增量標識欄位的型別必須是數值型別或者時間型別。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69995740/viewspace-2765575/,如需轉載,請註明出處,否則將追究法律責任。

相關文章