下載吧 - 綠色安全的游戲和軟件下載中心

          軟件下載吧

          當前位置:軟件下載吧 > 數據庫 > MS_SQL > SQL基礎:解析SQL?Server?CDC配合Kafka?Connect監聽數據變化的問題

          SQL基礎:解析SQL?Server?CDC配合Kafka?Connect監聽數據變化的問題

          時間:2024-02-08 11:17作者:下載吧人氣:40

          寫在前面

            好久沒更新Blog了,從CRUD Boy轉型大數據開發,拉寬了不少的知識面,從今年年初開始籌備、組建、招兵買馬,到現在穩定開搞中,期間踏過無數的火坑,也許除了這篇還很寫上三四篇。

            進入主題,通常企業為了實現數據統計、數據分析、數據挖掘、解決信息孤島等全局數據的系統化運作管理 ,為BI、經營分析、決策支持系統等深度開發應用奠定基礎,挖掘數據價值 ,企業會開始著手建立數據倉庫,數據中臺。而這些數據來源則來自于企業的各個業務系統的數據或爬取外部的數據,從業務系統數據到數據倉庫的過程就是一個ETL(Extract-Transform-Load)行為,包括了采集、清洗、數據轉換等主要過程,通常異構數據抽取轉換使用Sqoop、DataX等,日志采集Flume、Logstash、Filebeat等。

            數據抽取分為全量抽取和增量抽取,全量抽取類似于數據遷移或數據復制,全量抽取很好理解;增量抽取在全量的基礎上做增量,只監聽、捕捉動態變化的數據。如何捕捉數據的變化是增量抽取的關鍵,一是準確性,必須保證準確的捕捉到數據的動態變化,二是性能,不能對業務系統造成太大的壓力。

          增量抽取方式

            通常增量抽取有幾種方式,各有優缺點。

          1. 觸發器

            在源數據庫上的目標表創建觸發器,監聽增、刪、改操作,捕捉到數據的變更寫入臨時表。

          優點:操作簡單、規則清晰,對源表不影響;

          缺點:對源數據庫有侵入,對業務系統有一定的影響;

          2. 全表比對

            在ETL過程中,抽取方建立臨時表待全量抽取存儲,然后在進行比對數據。

          優點:對源數據庫、源表都無需改動,完全交付ETL過程處理,統一管理;

          缺點:ETL效率低、設計復雜,數據量越大,速度越慢,時效性不確定;

          3. 全表刪除后再插入

            在抽取數據之前,先將表中數據清空,然后全量抽取。

          優點:ETL 操作簡單,速度快。

          缺點:全量抽取一般采取T+1的形式,抽取數據量大的表容易對數據庫造成壓力;

          4. 時間戳

            時間戳的方式即在源表上增加時間戳列,對發生變更的表進行更新,然后根據時間戳進行提取。

          優點:操作簡單,ELT邏輯清晰,性能比較好;

          缺點:對業務系統有侵入,數據庫表也需要額外增加字段。對于老的業務系統可能不容易做變更。

          5. CDC方式

            變更數據捕獲Change Data Capture(簡稱CDC),SQLServer為實時更新數據同步提供了CDC機制,類似于Mysql的binlog,將數據更新操作維護到一張CDC表中。開啟CDC的源表在插入INSERT、更新UPDATE和刪除DELETE活動時會插入數據到日志表中。cdc通過捕獲進程將變更數據捕獲到變更表中,通過cdc提供的查詢函數,可以捕獲這部分數據。詳情可以查看官方介紹:關于變更數據捕獲 (SQL Server)

          SQL基礎:解析SQL?Server?CDC配合Kafka?Connect監聽數據變化的問題

          優點:提供易于使用的API 來設置CDC 環境,縮短ETL 的時間,無需修改業務系統表結構。

          缺點:受數據庫版本的限制,實現過程相對復雜。

          CDC增量抽取

          先決條件

          1. 已搭建好Kafka集群,Zookeeper集群;

          2. 源數據庫支持CDC,版本采用開發版或企業版。

          案例環境:

          Ubuntu 20.04

          Kafka2.13-2.7.0

          Zookeeper 3.6.2

          SQL Server 2012

          步驟

            除了數據庫開啟CDC支持以外,主要還是要將變更的數據通過Kafka Connect傳輸數據,Debezium是目前官方推薦的連接器,它支持絕大多數主流數據庫:MySQL、PostgreSQL、SQL Server、Oracle等等,詳情查看Connectors。

          1. 數據庫步驟

          開啟數據庫CDC支持

            在源數據庫執行以下命令:

          EXEC sys.sp_cdc_enable_db GO

            附上關閉語句:

          exec sys.sp_cdc_disable_db

          查詢是否啟用

          select * from sys.databases where is_cdc_enabled = 1

          標簽MSSQL,SQLServer,技術文檔,數據庫,SQLSERVER

          相關下載

          查看所有評論+

          網友評論

          網友
          您的評論需要經過審核才能顯示

          熱門閱覽

          最新排行

          公眾號

          主站蜘蛛池模板: 538国产精品一区二区在线| 久久99久久无码毛片一区二区| 日本一区二区高清不卡| 国产精久久一区二区三区| 久久精品无码一区二区三区不卡 | 久久精品一区二区三区不卡| 中文字幕日韩欧美一区二区三区| 激情一区二区三区| 国产成人综合精品一区| 风间由美在线亚洲一区| 伊人久久一区二区三区无码| 亚洲电影一区二区三区| 国产婷婷色一区二区三区| 亚洲中文字幕丝袜制服一区 | 国产午夜福利精品一区二区三区| 波霸影院一区二区| 波多野结衣一区在线| 日韩美一区二区三区| 成人精品视频一区二区| 亚洲熟妇成人精品一区| 欧美亚洲精品一区二区| 久久精品国内一区二区三区| 精品视频无码一区二区三区| 亚洲福利一区二区三区| 国产福利一区二区三区在线观看| 精品无码AV一区二区三区不卡| 亚洲一区二区三区四区在线观看| 国产在线一区二区综合免费视频| 日本在线一区二区| 久久精品无码一区二区无码| 精品一区二区三区自拍图片区| 久久综合九九亚洲一区| 偷拍激情视频一区二区三区| 亚洲色偷精品一区二区三区| 国产精品久久久久久一区二区三区| 亚洲乱码av中文一区二区| 国产在线观看一区二区三区| 国产成人精品一区在线| 国产自产V一区二区三区C| 日产亚洲一区二区三区| 韩国资源视频一区二区三区|