国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Flink-CDC】Flink CDC 介紹和原理概述

這篇具有很好參考價值的文章主要介紹了【Flink-CDC】Flink CDC 介紹和原理概述。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

CDC是(Change Data Capture 變更數(shù)據(jù)獲取)的簡稱。

核心思想是,監(jiān)測并捕獲數(shù)據(jù)庫的變動(包括數(shù)據(jù) 或 數(shù)據(jù)表的插入INSERT、更新UPDATE、刪除DELETE等),將這些變更按發(fā)生的順序完整記錄下來,寫入到消息中間件中以供其他服務(wù)進行訂閱及消費。

1)基于查詢的 CDC 和基于日志的 CDC

CDC 主要分為基于查詢和基于 Binlog 兩種方式

【Flink-CDC】Flink CDC 介紹和原理概述,Flink,flink,大數(shù)據(jù),#flinkcdc,#flinkcdc介紹,#flinkcdc原理概述

經(jīng)過以上對比,我們可以發(fā)現(xiàn)基于日志 CDC 有以下這幾種優(yōu)勢:

  • 能夠捕獲所有數(shù)據(jù)的變化,捕獲完整的變更記錄。在異地容災(zāi),數(shù)據(jù)備份等場景中得到廣泛應(yīng)用,如果是基于查詢的 CDC 有可能導(dǎo)致兩次查詢的中間一部分數(shù)據(jù)丟失

  • 每次 DML 操作均有記錄無需像查詢 CDC 這樣發(fā)起全表掃描進行過濾,擁有更高的效率和性能,具有低延遲,不增加數(shù)據(jù)庫負載的優(yōu)勢

  • 無需入侵業(yè)務(wù),業(yè)務(wù)解耦,無需更改業(yè)務(wù)模型

  • 捕獲刪除事件和捕獲舊記錄的狀態(tài),在查詢 CDC 中,周期的查詢無法感知中間數(shù)據(jù)是否刪除

【Flink-CDC】Flink CDC 介紹和原理概述,Flink,flink,大數(shù)據(jù),#flinkcdc,#flinkcdc介紹,#flinkcdc原理概述

在實時性、吞吐量方面占優(yōu),如果數(shù)據(jù)源是 MySQL、PostgreSQL、MongoDB 等常見的數(shù)據(jù)庫實現(xiàn),建議使用 Debezium 來實現(xiàn)變更數(shù)據(jù)的捕獲(下圖來自 Debezium 官方文檔)。如果使用的只有 MySQL,則可以用 Canal。

【Flink-CDC】Flink CDC 介紹和原理概述,Flink,flink,大數(shù)據(jù),#flinkcdc,#flinkcdc介紹,#flinkcdc原理概述

2)Flink CDC

Flink 社區(qū)開發(fā)了 flink-cdc-connectors 組件,這是一個可以直接從 MySQL、PostgreSQL 等數(shù)據(jù)庫直接讀取全量數(shù)據(jù)增量變更數(shù)據(jù)的 source 組件。目前也已開源,開源地址:https://github.com/ververica/flink-cdc-connectors

我們先從之前的數(shù)據(jù)架構(gòu)來看CDC的內(nèi)容

【Flink-CDC】Flink CDC 介紹和原理概述,Flink,flink,大數(shù)據(jù),#flinkcdc,#flinkcdc介紹,#flinkcdc原理概述

以上是之前的 mysql binlog 日志處理流程,例如 canal 監(jiān)聽 binlog 把日志寫入到 kafka 中。而 Flink 實時消費 Kafka 的數(shù)據(jù)實現(xiàn) mysql 數(shù)據(jù)的同步或其他內(nèi)容等。

拆分來說整體上可以分為以下幾個階段。

1、mysql 開啟 binlog

2、canal 同步 binlog 數(shù)據(jù)寫入到 kafka

3、flink 讀取 kakfa 中的 binlog 數(shù)據(jù)進行相關(guān)的業(yè)務(wù)處理。

整體的處理鏈路較長,需要用到的組件也比較多。Flink CDC可以直接從數(shù)據(jù)庫獲取到binlog供下游進行業(yè)務(wù)計算分析,從內(nèi)部實現(xiàn)上講,Flink CDC Connectors 內(nèi)置了一套 Debezium 和 Kafka 組件,但這個細節(jié)對用戶屏蔽,簡單來說鏈路會變成這樣。

【Flink-CDC】Flink CDC 介紹和原理概述,Flink,flink,大數(shù)據(jù),#flinkcdc,#flinkcdc介紹,#flinkcdc原理概述

也就是說數(shù)據(jù)不再通過 canal 與 kafka 進行同步,而 flink 直接進行處理 mysql 的數(shù)據(jù)。節(jié)省了 canal 與 kafka 的過程。

3)Flink CDC原理簡述

在最新 CDC 調(diào)研報告中,DebeziumCanal 是目前最流行使用的 CDC 工具,這些 CDC 工具的核心原理是抽取數(shù)據(jù)庫日志獲取變更。

在經(jīng)過一系列調(diào)研后,目前 Debezium (支持全量、增量同步,同時支持 MySQL、PostgreSQL、Oracle 等數(shù)據(jù)庫),使用較為廣泛。

Flink SQL CDC 內(nèi)置了 Debezium 引擎,利用其抽取日志獲取變更的能力,將 changelog 轉(zhuǎn)換為 Flink SQL 認識的 RowData 數(shù)據(jù)。(以下右側(cè)是 Debezium 的數(shù)據(jù)格式,左側(cè)是 Flink 的 RowData 數(shù)據(jù)格式)。

【Flink-CDC】Flink CDC 介紹和原理概述,Flink,flink,大數(shù)據(jù),#flinkcdc,#flinkcdc介紹,#flinkcdc原理概述
RowData 代表了一行的數(shù)據(jù),在 RowData 上面會有一個元數(shù)據(jù)的信息 RowKind,RowKind 里面包括了插入(+I)、更新前(-U)、更新后(+U)、刪除(-D),這樣和數(shù)據(jù)庫里面的 binlog 概念十分類似。

通過 Debezium 采集的數(shù)據(jù),包含了舊數(shù)據(jù)(before)和新數(shù)據(jù)行(after)以及原數(shù)據(jù)信息(source),op 的 u 表示是update 更新操作標(biāo)識符(op 字段的值 c,u,d,r 分別對應(yīng) create,update,delete,reade),ts_ms 表示同步的時間戳。

4)基于 Flink SQL CDC 的數(shù)據(jù)同步方案實踐

4.1.案例 1 : Flink SQL CDC + JDBC Connector

這個案例通過訂閱我們訂單表(事實表)數(shù)據(jù),通過 Debezium 將 MySQL Binlog 發(fā)送至 Kafka,通過維表 Join 和 ETL 操作把結(jié)果輸出至下游的 PG 數(shù)據(jù)庫。

【Flink-CDC】Flink CDC 介紹和原理概述,Flink,flink,大數(shù)據(jù),#flinkcdc,#flinkcdc介紹,#flinkcdc原理概述

4.2.案例 2 : CDC Streaming ETL

電商公司的訂單表和物流表,需要對訂單數(shù)據(jù)進行統(tǒng)計分析,對于不同的信息需要進行關(guān)聯(lián)后續(xù)形成訂單的大寬表后,交給下游的業(yè)務(wù)方使用 ES 做數(shù)據(jù)分析,這個案例演示了如何只依賴 Flink 不依賴其他組件,借助 Flink 強大的計算能力實時把 Binlog 的數(shù)據(jù)流關(guān)聯(lián)一次并同步至 ES。

【Flink-CDC】Flink CDC 介紹和原理概述,Flink,flink,大數(shù)據(jù),#flinkcdc,#flinkcdc介紹,#flinkcdc原理概述

例如如下的這段 Flink SQL 代碼就能完成實時同步 MySQL 中 orders 表的全量+增量數(shù)據(jù)的目的。

CREATE TABLE orders (
  order_id INT,
  order_date TIMESTAMP(0),
  customer_name STRING,
  price DECIMAL(10, 5),
  product_id INT,
  order_status BOOLEAN
) WITH (
  'connector' = 'mysql-cdc',
  'hostname' = 'localhost',
  'port' = '3306',
  'username' = 'root',
  'password' = '123456',
  'database-name' = 'mydb',
  'table-name' = 'orders'
);
 
SELECT * FROM orders

4.3.案例 3 : Streaming Changes to Kafka

【Flink-CDC】Flink CDC 介紹和原理概述,Flink,flink,大數(shù)據(jù),#flinkcdc,#flinkcdc介紹,#flinkcdc原理概述

參考阿里云:https://developer.aliyun.com/article/777502?utm_content=g_1000202135文章來源地址http://www.zghlxwxcb.cn/news/detail-807949.html

到了這里,關(guān)于【Flink-CDC】Flink CDC 介紹和原理概述的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • flink-cdc同步mysql數(shù)據(jù)到elasticsearch

    flink-cdc同步mysql數(shù)據(jù)到elasticsearch

    CDC是(Change Data Capture 變更數(shù)據(jù)獲?。┑暮喎Q。核心思想是,監(jiān)測并捕獲數(shù)據(jù)庫的變動(包括數(shù)據(jù) 或 數(shù)據(jù)表的插入INSERT、更新UPDATE、刪除DELETE等),將這些變更按發(fā)生的順序完整記錄下來,寫入到消息中間件中以供其他服務(wù)進行訂閱及消費。 cdc項目地址:https://github.com/ver

    2024年02月13日
    瀏覽(22)
  • 【開發(fā)問題】flink-cdc不用數(shù)據(jù)庫之間的,不同類型的轉(zhuǎn)化

    【開發(fā)問題】flink-cdc不用數(shù)據(jù)庫之間的,不同類型的轉(zhuǎn)化

    我一開始是flink-cdc,oracle2Mysql,sql 我一開始直接用的oracle【date】類型,mysql【date】類型,sql的校驗通過了,但是真正操作數(shù)據(jù)的時候報錯,告訴我oracle的數(shù)據(jù)格式的日期數(shù)據(jù),不可以直接插入到mysql格式的日期數(shù)據(jù),說白了就是數(shù)據(jù)格式不一致導(dǎo)致的 我想的是既然格式不對

    2024年02月12日
    瀏覽(25)
  • SpringBoot集成Flink-CDC 采集PostgreSQL變更數(shù)據(jù)發(fā)布到Kafka

    SpringBoot集成Flink-CDC 采集PostgreSQL變更數(shù)據(jù)發(fā)布到Kafka

    最近做的一個項目,使用的是pg數(shù)據(jù)庫,公司沒有成熟的DCD組件,為了實現(xiàn)數(shù)據(jù)變更消息發(fā)布的功能,我使用SpringBoot集成Flink-CDC 采集PostgreSQL變更數(shù)據(jù)發(fā)布到Kafka。 監(jiān)聽數(shù)據(jù)變化,進行異步通知,做系統(tǒng)內(nèi)異步任務(wù)。 架構(gòu)方案(懶得寫了,看圖吧): -- 創(chuàng)建pg 高線數(shù)據(jù)同步用

    2024年02月02日
    瀏覽(31)
  • Flink-CDC——MySQL、SqlSqlServer、Oracle、達夢等數(shù)據(jù)庫開啟日志方法

    目錄 1. 前言 2. 數(shù)據(jù)源安裝與配置 2.1 MySQL 2.1.1 安裝 2.1.2 CDC 配置 2.2 Postgresql 2.2.1 安裝 2.2.2 CDC 配置 2.3 Oracle 2.3.1 安裝 2.3.2 CDC 配置 2.4 SQLServer 2.4.1 安裝 2.4.2 CDC 配置 2.5達夢 2.4.1安裝 2.4.2CDC配置 3. 驗證 3.1 Flink版本與CDC版本的對應(yīng)關(guān)系 3.2 下載相關(guān)包 3.3 添加cdc jar 至lib目錄 3.4 驗

    2024年02月05日
    瀏覽(122)
  • flink-cdc-學(xué)習(xí)筆記(一)

    Flink 1.11 引入了 CDC. Flink CDC 是一款基于 Flink 打造一系列數(shù)據(jù)庫的連接器。Flink 是流處理的引擎,其主要消費的數(shù)據(jù)源是類似于一些點擊的日志流、曝光流等數(shù)據(jù),但在業(yè)務(wù)場景中,點擊流的日志數(shù)據(jù)只是一部分,具有更大價值的數(shù)據(jù)隱藏在用戶的業(yè)務(wù)數(shù)據(jù)庫中。Flink CDC 彌補

    2024年04月10日
    瀏覽(25)
  • flink-cdc,clickhouse寫入,多路輸出

    kafka日志數(shù)據(jù)從kafka讀取 1、關(guān)聯(lián)字典表:完善日志數(shù)據(jù) 2、判斷日志內(nèi)容級別:多路輸出 低級:入clickhouse 高級:入clickhouse的同時推送到kafka供2次數(shù)據(jù)流程處理。

    2024年02月09日
    瀏覽(23)
  • Flinkx/Datax/Flink-CDC 優(yōu)劣勢對比

    Flinkx/Datax/Flink-CDC 優(yōu)劣勢對比

    Flinkx/Datax/Flink-CDC 優(yōu)劣勢對比_HiBoyljw的博客-CSDN博客 ? ? ? ?FlinkX是一款基于Flink的分布式離線/實時數(shù)據(jù)同步插件,可實現(xiàn)多種異構(gòu)數(shù)據(jù)源高效的數(shù)據(jù)同步,其由袋鼠云于2016年初步研發(fā)完成,目前有穩(wěn)定的研發(fā)團隊持續(xù)維護,已在Github上開源(開源地址詳見文章末尾),并維

    2024年02月07日
    瀏覽(21)
  • ApacheStreamPark2.1.0部署及執(zhí)行flink-cdc任務(wù)同步mysql表的數(shù)據(jù)到es的實踐

    ApacheStreamPark2.1.0部署及執(zhí)行flink-cdc任務(wù)同步mysql表的數(shù)據(jù)到es的實踐

    ApacheStreamPark是流處理極速開發(fā)框架,流批一體 湖倉一體的云原生平臺,一站式流處理計算平臺。 ??特性中的簡單易用和文檔詳盡這兩點我也是深有體會的,部署一點都不簡單,照著官方文檔都不一定能搞出來,下面部署環(huán)節(jié)慢慢來吐槽吧。 ??之前我們寫 Flink SQL 基本上

    2024年02月11日
    瀏覽(27)
  • Flink CDC介紹及原理

    CDC (Change Data Capture) 是一種用于 捕捉數(shù)據(jù)庫變更數(shù)據(jù) 的技術(shù),F(xiàn)link 從 1.11 版本開始原生支持 CDC 數(shù)據(jù)(changelog)的處理,目前已經(jīng)是非常成熟的變更數(shù)據(jù)處理方案。 Flink CDC Connectors 是 Flink 的一組 Source 連接器,是 Flink CDC 的核心組件,這些連接器負責(zé)從? MySQL、PostgreSQL、Ora

    2024年02月11日
    瀏覽(14)
  • Flink-CDC Cannot instantiate the coordinator for operator Source

    在使用flink1.14.6版本cdc時出現(xiàn)報錯: Caused by: org.apache.flink.runtime.client.JobInitializationException: Could not start the JobMaster. at org.apache.flink.runtime.jobmaster.DefaultJobMasterServiceProcess.lambda$new$0(DefaultJobMasterServiceProcess.java:97) ~[flink-dist_2.11-1.14.6.jar:1.14.6] at java.util.concurrent.CompletableFuture.uniWhenComp

    2024年02月12日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包