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

【大數(shù)據(jù)精講】全量同步與CDC增量同步方案對比

這篇具有很好參考價值的文章主要介紹了【大數(shù)據(jù)精講】全量同步與CDC增量同步方案對比。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

背景

名詞解釋

問題與挑戰(zhàn)

FlinkCDC

DataX

工作原理

調(diào)度流程

五、DataX 3.0六大核心優(yōu)勢

性能優(yōu)化


背景

名詞解釋

CDC

? ? ? ?CDC又稱變更數(shù)據(jù)捕獲(Change Data Capture),開啟cdc的源表在插入INSERT、更新UPDATE和刪除DELETE活動時會插入數(shù)據(jù)到日志表中。CDC通過捕獲進程將變更數(shù)據(jù)捕獲到變更表中,通過cdc提供的查詢函數(shù),我們可以捕獲這部分數(shù)據(jù)。

ETL

? ? ? ?ETL數(shù)據(jù)倉庫技術(Extract-Transform-Load),它是將數(shù)據(jù)從源系統(tǒng)加載到數(shù)據(jù)倉庫的過程。用來描述將數(shù)據(jù)從來源端經(jīng)過萃?。╡xtract)、轉置(transform)、加載(load)至目的端的過程。使用到的工具包含(kettle、flume、sqoop)。

問題與挑戰(zhàn)

CDC乃至數(shù)據(jù)集成領域面臨的技術挑戰(zhàn):

  • 歷史數(shù)據(jù)規(guī)模大:數(shù)據(jù)庫的歷史數(shù)據(jù)規(guī)模大,100T+ 規(guī)模很常見

  • 增量數(shù)據(jù)實時性要求高:數(shù)據(jù)庫的增量數(shù)據(jù)業(yè)務價值高,且價值隨時間遞減,需要實時處理

  • 數(shù)據(jù)的保序性:CDC 數(shù)據(jù)的加工結果通常需要強一致性語義,需要處理工具支持全局保序

  • 表結構動態(tài)變化:增量數(shù)據(jù)隨時間增長,數(shù)據(jù)對應的表結構會不斷演進

FlinkCDC

????????Flink CDC 是以 Debezium 作為底層采集工具。Debezium 支持全量同步,也支持增量同步,也支持全量 + 增量的同步,非常靈活,同時基于日志的 CDC 技術使得提供 Exactly-Once 成為可能。

架構設計

????????傳統(tǒng)的CDC ETL鏈路中,采集到的數(shù)據(jù)一般輸出到消息中間件如 Kafka,然后 Flink 計算引擎再去消費這一部分數(shù)據(jù)寫入到目的端,目的端可以是各種 DB,數(shù)據(jù)湖,實時數(shù)倉和離線數(shù)倉等:

【大數(shù)據(jù)精講】全量同步與CDC增量同步方案對比,面試,大數(shù)據(jù),大數(shù)據(jù)

Flink CDC

【大數(shù)據(jù)精講】全量同步與CDC增量同步方案對比,面試,大數(shù)據(jù),大數(shù)據(jù)

參考:Flink CDC 1.0至3.0回憶錄

DataX

工作原理

【大數(shù)據(jù)精講】全量同步與CDC增量同步方案對比,面試,大數(shù)據(jù),大數(shù)據(jù)

DataX本身作為離線數(shù)據(jù)同步框架,采用Framework + plugin架構構建。將數(shù)據(jù)源讀取和寫入抽象成為Reader/Writer插件,納入到整個同步框架中。

  • Reader:Reader為數(shù)據(jù)采集模塊,負責采集數(shù)據(jù)源的數(shù)據(jù),將數(shù)據(jù)發(fā)送給Framework。
  • Writer: Writer為數(shù)據(jù)寫入模塊,負責不斷向Framework取數(shù)據(jù),并將數(shù)據(jù)寫入到目的端。
  • Framework:Framework用于連接reader和writer,作為兩者的數(shù)據(jù)傳輸通道,并處理緩沖,流控,并發(fā),數(shù)據(jù)轉換等核心技術問題。

在講解datax原理之前,需要明確一些概念:

  • Job: Job是DataX用以描述從一個源頭到一個目的端的同步作業(yè),是DataX數(shù)據(jù)同步的最小業(yè)務單元。比如:從一張mysql的表同步到hive的一個表的特定分區(qū)。
  • Task: Task是為最大化而把Job拆分得到的最小執(zhí)行單元。比如:讀一張有1024個分表的mysql分庫分表的Job,拆分成1024個讀Task,若干個任務并發(fā)執(zhí)行?;蛘邔⒁粋€大表按照id拆分成1024個分片,若干個分片任務并發(fā)執(zhí)行。
  • TaskGroup: 描述的是一組Task集合。在同一個TaskGroupContainer執(zhí)行下的Task集合稱之為TaskGroup。
  • JobContainer: Job執(zhí)行器,負責Job全局拆分、調(diào)度、前置語句和后置語句等工作的工作單元。
  • TaskGroupContainer: TaskGroup執(zhí)行器,負責執(zhí)行一組Task的工作單元。
  • job和task是datax兩種維度的抽象,后面源碼分析中還會涉及到。

【大數(shù)據(jù)精講】全量同步與CDC增量同步方案對比,面試,大數(shù)據(jù),大數(shù)據(jù)

datax的處理過程可描述為:

  1. DataX完成單個數(shù)據(jù)同步的作業(yè),我們稱之為Job,DataX接受到一個Job之后,將啟動一個進程來完成整個作業(yè)同步過程。DataX Job模塊是單個作業(yè)的中樞管理節(jié)點,承擔了數(shù)據(jù)清理、子任務切分(將單一作業(yè)計算轉化為多個子Task)、TaskGroup管理等功能。
  2. DataXJob啟動后,會根據(jù)不同的源端切分策略,將Job切分成多個小的Task(子任務),以便于并發(fā)執(zhí)行。Task便是DataX作業(yè)的最小單元,每一個Task都會負責一部分數(shù)據(jù)的同步工作。
  3. 切分多個Task之后,DataX Job會調(diào)用Scheduler模塊,根據(jù)配置的并發(fā)數(shù)據(jù)量,將拆分成的Task重新組合,組裝成TaskGroup(任務組)。每一個TaskGroup負責以一定的并發(fā)運行完畢分配好的所有Task,默認單個任務組的并發(fā)數(shù)量為5。
  4. 每一個Task都由TaskGroup負責啟動,Task啟動后,會固定啟動Reader—>Channel—>Writer的線程來完成任務同步工作。
  5. DataX作業(yè)運行起來之后, Job監(jiān)控并等待多個TaskGroup模塊任務完成,等待所有TaskGroup任務完成后Job成功退出。否則,異常退出,進程退出值非0。

調(diào)度流程

舉例來說,用戶提交了一個DataX作業(yè),并且配置了20個并發(fā),目的是將一個100張分表的mysql數(shù)據(jù)同步到odps里面。 DataX的調(diào)度決策思路是:

  1. DataXJob根據(jù)分庫分表切分成了100個Task。
  2. 根據(jù)20個并發(fā),DataX計算共需要分配4個TaskGroup(默認單個任務組的并發(fā)數(shù)量為5)。
  3. 4個TaskGroup平分切分好的100個Task,每一個TaskGroup負責以5個并發(fā)共計運行25個Task。

性能優(yōu)化

最直接的方式就是提高mysql和hdfs的硬件性能如cpu、內(nèi)存、IOPS、網(wǎng)絡帶寬等。當硬件資源受限的情況下,可以有如下幾種辦法:

將不同的集群劃分到同一個網(wǎng)絡或者區(qū)域內(nèi),減少跨網(wǎng)絡的不穩(wěn)定性,如將阿里云集群遷移到amazon集群,或者同一個amazon集群中不同區(qū)域劃分到同一個子網(wǎng)絡內(nèi)。

對數(shù)據(jù)庫按照主鍵劃分。datax對單個表默認一個通道,如果指定拆分主鍵,將會大大提升同步并發(fā)數(shù)和吞吐量。

在cpu、內(nèi)存以及mysql負載滿足的情況下,提升通道并發(fā)數(shù)。通道并發(fā)數(shù)意味著更多的內(nèi)存開銷,jvm調(diào)優(yōu)是重中之重。

當無法提升通道數(shù)量時,而且每個拆分依然很大的時候,可以考慮對每個拆分再次拆分。

設定合適的參數(shù),如mysql超時等。文章來源地址http://www.zghlxwxcb.cn/news/detail-821199.html

到了這里,關于【大數(shù)據(jù)精講】全量同步與CDC增量同步方案對比的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 如何選擇離線數(shù)據(jù)集成方案 - 全量&增量

    如何選擇離線數(shù)據(jù)集成方案 - 全量&增量

    1 前言 我在上一篇中介紹了實時集成與離線集成該怎么選擇,接著介紹一下離線集成中的增量與全量的選擇問題。 要設計方案,我們先分析一下數(shù)據(jù)產(chǎn)生的方式。我們把音視頻流這種非結構化的數(shù)據(jù)集成從這里排除出去,因為這種音視頻流一般都是專業(yè)的廠商和系統(tǒng)來處理。

    2024年02月02日
    瀏覽(19)
  • elasticsearch+canal增量、全量同步

    elasticsearch+canal增量、全量同步

    目錄 一、搭建環(huán)境: 1.1 下載軟件上傳到linux目錄/data/soft下 1.2? 把所有軟件解壓到/data/es-cluster 二、單節(jié)點(多節(jié)點同理)集群部署elasticsearch 2.1 創(chuàng)建es用戶 2.2 準備節(jié)點通訊證書 2.3 配置elasticsearch,編輯/data/es-cluster/elasticsearch-7.9.0-node1/config/elasticsearch.yml文件 2.4 在每一臺集群

    2024年01月24日
    瀏覽(23)
  • DataEase開源BI工具安裝_數(shù)據(jù)全量_增量同步_大屏拖拽自動生成_多數(shù)據(jù)源支持_數(shù)據(jù)血緣分析---大數(shù)據(jù)工作筆記0183

    DataEase開源BI工具安裝_數(shù)據(jù)全量_增量同步_大屏拖拽自動生成_多數(shù)據(jù)源支持_數(shù)據(jù)血緣分析---大數(shù)據(jù)工作筆記0183

    我這里用的是Centos7.9安裝的 可以通過uname -p來查看一下我們的電腦架構,可以看到是x86_64架構的 ?我們下第一個,這個是x86架構的,第二個arm架構的? ? 然后解壓到/opt/module中 ? 然后再去重命名一下文件夾.? 推薦200G? 本地模式的功能比較多 推薦100G ?

    2024年02月15日
    瀏覽(18)
  • DataX-阿里開源離線同步工具在Windows上實現(xiàn)Sqlserver到Mysql全量同步和增量同步

    DataX-阿里開源離線同步工具在Windows上實現(xiàn)Sqlserver到Mysql全量同步和增量同步

    Kettle-開源的ETL工具集-實現(xiàn)SqlServer到Mysql表的數(shù)據(jù)同步并部署在Windows服務器上: Kettle-開源的ETL工具集-實現(xiàn)SqlServer到Mysql表的數(shù)據(jù)同步并部署在Windows服務器上_etl實現(xiàn)sqlserver報表服務器_霸道流氓氣質的博客-CSDN博客 上面講過Kettle的使用,下面記錄下阿里開源異構數(shù)據(jù)源同步工具

    2024年02月08日
    瀏覽(27)
  • 數(shù)據(jù)同步工具調(diào)研選型:SeaTunnel 與 DataX 、Sqoop、Flume、Flink CDC 對比

    數(shù)據(jù)同步工具調(diào)研選型:SeaTunnel 與 DataX 、Sqoop、Flume、Flink CDC 對比

    Apache SeaTunnel 是一個非常易用的超高性能分布式數(shù)據(jù)集成產(chǎn)品,支持海量數(shù)據(jù)的離線及實時同步。每天可穩(wěn)定高效同步萬億級數(shù)據(jù),已應用于數(shù)百家企業(yè)生產(chǎn),也是首個由國人主導貢獻到 Apache 基金會的數(shù)據(jù)集成頂級項目。 SeaTunnel 主要解決數(shù)據(jù)集成領域的常見問題: * 數(shù)據(jù)源

    2024年02月04日
    瀏覽(28)
  • 離線數(shù)據(jù)倉庫-關于增量和全量

    離線數(shù)據(jù)倉庫-關于增量和全量

    應用系統(tǒng)所產(chǎn)生的業(yè)務數(shù)據(jù)是數(shù)據(jù)倉庫的重要數(shù)據(jù)來源,我們需要每日定時從業(yè)務數(shù)據(jù)庫中抽取數(shù)據(jù),傳輸?shù)綌?shù)據(jù)倉庫中,之后再對數(shù)據(jù)進行分析統(tǒng)計。 為了方便上層指標的統(tǒng)計,數(shù)據(jù)的同步策略有 全量同步 和 增量同步 。 同步方式是針對對應的表而言的! 為什么要做數(shù)據(jù)

    2024年01月17日
    瀏覽(37)
  • 全量、增量數(shù)據(jù)在HBase遷移的多種技巧實踐

    全量、增量數(shù)據(jù)在HBase遷移的多種技巧實踐

    作者經(jīng)歷了多次基于HBase實現(xiàn)全量與增量數(shù)據(jù)的遷移測試,總結了在使用HBase進行數(shù)據(jù)遷移的多種實踐,本文針對全量與增量數(shù)據(jù)遷移的場景不同,提供了1+2的技巧分享。 1.背景 在HBase使用過程中,使用的HBase集群經(jīng)常會因為某些原因需要數(shù)據(jù)遷移。大多數(shù)情況下,可以用離線

    2024年02月06日
    瀏覽(18)
  • 什么是全量數(shù)據(jù)、增量數(shù)據(jù)?如何統(tǒng)一一套系統(tǒng)?

    一、什么是全量數(shù)據(jù)、增量數(shù)據(jù)? 1.全量數(shù)據(jù) 2.增量數(shù)據(jù) 二、如何統(tǒng)一一套系統(tǒng) 1.為什么需要統(tǒng)一一套系統(tǒng)來處理全量數(shù)據(jù)和增量數(shù)據(jù)? 2.如何實踐? 全量數(shù)據(jù)和增量數(shù)據(jù)是在數(shù)據(jù)庫系統(tǒng)遷移時的概念。 ? ? ? ? 當前需要遷移的數(shù)據(jù)庫系統(tǒng)的全部數(shù)據(jù)。 ? ? ? ? 在數(shù)據(jù)庫系

    2024年02月05日
    瀏覽(26)
  • Flink CDC、OGG、Debezium等基于日志開源CDC方案對比

    Flink CDC、OGG、Debezium等基于日志開源CDC方案對比

    先上一張圖,后面再慢慢介紹: CDC 的全稱是? Change Data Capture ?,在廣義的概念上,只要能捕獲數(shù)據(jù)變更的技術,我們都可以稱為 CDC 。我們目前通常描述的CDC 技術主要面向數(shù)據(jù)庫的變更,是一種用于捕獲數(shù)據(jù)庫中數(shù)據(jù)變更的技術。 基于查詢的 CDC: 優(yōu)點是實現(xiàn)簡單,是通過

    2024年02月10日
    瀏覽(21)
  • 實戰(zhàn)Java springboot 采用Flink CDC操作SQL Server數(shù)據(jù)庫獲取增量變更數(shù)據(jù)

    目錄 前言: 1、springboot引入依賴: 2、yml配置文件 3、創(chuàng)建SQL server CDC變更數(shù)據(jù)監(jiān)聽器 4、反序列化數(shù)據(jù),轉為變更JSON對象 5、CDC 數(shù)據(jù)實體類 6、自定義ApplicationContextUtil 7、自定義sink 交由spring管理,處理變更數(shù)據(jù) ? ? ? ? 我的場景是從SQL Server數(shù)據(jù)庫獲取指定表的增量數(shù)據(jù),查

    2024年02月10日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包