使用Spring Cloud Data Flow + CDC Debezium源實時實現變更資料捕獲 - SpringIO
在本文中,我們將研究Debezium CDC源,該源使我們能夠從MySQL,PostgreSQL,MongoDB,Oracle,DB2和SQL Server等資料庫捕獲資料庫更改,並透過各種訊息繫結器實時處理這些更改,例如RabbitMQ,Apache Kafka,Azure事件中心,Google PubSub和Solace PubSub +等。演示使用Spring Cloud Data Flow(SCDF)部署流實時響應資料庫更新,將變更事件轉換為分析指標並將其釋出到Prometheus進行分析和視覺化的流水線管道有多麼容易。格拉法納(Grafana)。
更改資料捕獲(CDC)是一種用於觀察寫入資料庫的所有資料更改並將其釋出為可以以流方式處理的事件的技術。由於您的應用程式資料庫總是在變化,因此CDC允許您對這些更改做出反應,並讓您的應用程式按照提交給資料庫的順序來傳輸每個行級更改。
CDC支援多種用例,例如:快取無效,記憶體中的資料檢視,更新搜尋索引,透過使不同資料來源保持同步來複制資料,實時欺詐檢測,儲存審計跟蹤,資料出處等等。
Spring Cloud Data Flow CDC Source應用程式圍繞Debezium構建,Debezium是一種流行的,開源的,基於日誌的CDC實現,支援各種資料庫。
CDC source實現嵌入了Debezium引擎,它不依賴於Apache Kafka或ZooKeeper!您可以將CDC source連同任何受支援的訊息繫結器一起使用!
這是用於連線到MySQL資料庫的示例配置:
# DB type cdc.connector=mysql # DB access cdc.config.database.user=debezium cdc.config.database.password=dbz cdc.config.database.hostname=localhost cdc.config.database.port=3306 # DB source metadata cdc.name=my-sql-connector cdc.config.database.server.id=85744 cdc.config.database.server.name=my-app-connector |
在cdc.name, cdc.config.database.server.id和cdc.config.database.server.name屬性用於識別和排程傳入的事件。
所有開箱即用的Spring Cloud Stream源應用程式已經自動配置了多個開箱即用的通用處理器。您可以將這些處理器啟用為CDC源的一部分。下面這是一個示例,我們在其中執行CDC源並接收資料,然後轉換消耗的資料,然後再將其傳送到中介軟體上的目標。
java -jar cdc-debezium-source.jar --cdc.connector=mysql --cdc.name=my-sql-connector --cdc.config.database.server.name=my-app-connector --cdc.config.database.user=debezium --cdc.config.database.password=dbz --cdc.config.database.hostname=localhost --cdc.config.database.port=3306 --cdc.schema=true --cdc.flattening.enabled=true --spring.cloud.function.definition=cdcSupplier|spelFunction --spel.function.expression=payload.toUpperCase() |
更多參考原文,吐槽:Spring.io的文件非常差,難以理解,這些人有邏輯能力嗎?是搞程式的嗎?
相關文章
- debezium-資料實時捕獲和傳輸管道(CDC)
- 使用SQLServer 2008的CDC功能實現資料變更捕獲SQLServer
- SQL Server 變更資料捕獲(CDC)SQLServer
- 變更資料捕獲CDC的八個實際案例 - Dunith
- Oracle CDC 變更資料捕獲技術Oracle
- Airbnb的變更資料捕獲系統,實現資料突變實時響應AI
- 變更資料捕獲CDC幾種應用場景 - RTInsights
- Debezium結合Kafka Connect實時捕獲MySQL變更事件寫入Elasticsearch實現搜尋流程KafkaMySql事件Elasticsearch
- 如何實現對 Oracle 的實時資料捕獲和效能調優|Flink CDC 專題Oracle
- 資料抽取中的CDC(變化資料捕獲)方式
- 使用嵌入式Debezium和SpringBoot捕獲更改資料事件(CDC) - Sohan GanapathySpring Boot事件
- Spring系列學習之Spring Cloud Data Flow 微服務資料流SpringCloud微服務
- zendesk/maxwell:MySQL的CDC資料更新捕獲者MySql
- 使用IBM InfoSphere CDC Transaction Stage實現高效的資料獲取IBM
- Flink CDC 系列 - 實現 MySQL 資料實時寫入 Apache DorisMySqlApache
- Oracle GoldenGate 12c實時捕獲SQL Server資料OracleGoSQLServer
- 陳胡:Apache SeaTunnel實現 非CDC資料抽取實踐Apache
- 使用Spring Data JDBC實現DDD聚合SpringJDBC
- 使用spring實現資源國際化Spring
- Spring Boot 2 實戰:使用 Flyway 管理你資料庫的版本變更Spring Boot資料庫
- 深入研究Block捕獲外部變數和__block實現原理BloC變數
- spring-data-mongodb多資料庫訪問實現SpringMongoDB資料庫
- Spring多資料來源管理實現原理Spring
- 獲得JD商品評論 API 如何實現實時資料獲取API
- 使用Spring Data Redis 實現訂閱/釋出SpringRedis
- Spring+MyBatis多資料來源配置實現SpringMyBatis
- Spring 的AbstractRoutingDataSource實現多資料來源Spring
- Netflix計劃於2020年開源的資料庫資料複製重器:DBLog,一個類似Oracle OGG的通用的變更資料捕獲CDC框架 - Netflix資料庫Oracle框架
- 用Rust 實現的現代化實時開源資料倉儲Rust
- 在SQL Server 2008中使用變更跟蹤獲得資料變更SQLServer
- 淘寶/天貓獲得淘寶商品詳情 API 如何實現實時資料獲取?API
- 實戰 | 使用 Kotlin Flow 構建資料流 "管道"Kotlin
- LiquiBase 管理資料庫變更實踐UI資料庫
- Spring Cloud Eureka 實現安全控制SpringCloud
- 基於 Flink CDC 的現代資料棧實踐
- 實現Spring動態註冊多資料來源Spring
- Spring實現多資料來源動態切換Spring
- CDC實戰:MySQL實時同步資料到Elasticsearch之陣列集合(array)如何處理【CDC實戰系列十二】MySqlElasticsearch陣列