您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)DataPipeline的應(yīng)用場景。小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí)。如下資料是關(guān)于DataPipeline的內(nèi)容。
一、對分庫分表場景的支持
在同一個數(shù)據(jù)任務(wù)中,對源系統(tǒng)某張表,根據(jù)表中數(shù)據(jù)的業(yè)務(wù)邏輯,將數(shù)據(jù)同步到不同數(shù)據(jù)庫的不同表中,例如:將集團(tuán)的銷售數(shù)據(jù)按照所屬分公司的不同同步到對應(yīng)的分公司數(shù)據(jù)庫的銷售數(shù)據(jù)表中。
源/目的地:關(guān)系型數(shù)據(jù)庫
讀取模式:無限制
(1)根據(jù)設(shè)計(jì)確定分庫分表規(guī)則;
(2)根據(jù)已定規(guī)則選擇對應(yīng)數(shù)據(jù)源并創(chuàng)建數(shù)據(jù)源;
(3)目的地將分庫分表規(guī)則按照指定格式寫入CSV文件;
(4)DP將根據(jù)已定義的CSV規(guī)則對源端數(shù)據(jù)進(jìn)行分庫分表寫入目的地。
注:詳細(xì)細(xì)節(jié)可聯(lián)系DataPipeline提供開發(fā)文檔說明。
二、自定義數(shù)據(jù)源場景
目前,許多企業(yè)在數(shù)據(jù)傳輸?shù)男枨髨鼍爸校藦纳嫌尾煌瑯I(yè)務(wù)數(shù)據(jù)庫中實(shí)時、定時分配到下游系統(tǒng)外,還需從外部合作商、供應(yīng)商中獲取業(yè)務(wù)數(shù)據(jù)。此時,企業(yè)通常會根據(jù)需要編寫不同的腳本,手動調(diào)用第三方系統(tǒng)提供的API接口,在抓取數(shù)據(jù)后,自行編寫清洗邏輯,最后實(shí)現(xiàn)數(shù)據(jù)落地。DataPipeline的自定義數(shù)據(jù)源功能針對上面場景有以下幾點(diǎn)優(yōu)勢:
統(tǒng)一管理數(shù)據(jù)獲取邏輯,快速合并JAR減少腳本開發(fā)量; 2. 當(dāng)上游發(fā)生變化時,無需對每一個數(shù)據(jù)傳輸任務(wù)進(jìn)行調(diào)整; 3. 可結(jié)合DataPipeline的數(shù)據(jù)解析功能、清洗工具和目標(biāo)初始化功能減少整體開發(fā)量,并提供監(jiān)控和預(yù)警。
源:自定義數(shù)據(jù)源
目的地:無限制
讀取模式:定時模式
(1)創(chuàng)建自定義數(shù)據(jù)源,并上傳JAR包(或調(diào)取已上傳過的JAR包);
(2)選擇數(shù)據(jù)存放的目的地;
(3)使用清洗工具完成數(shù)據(jù)解析邏輯;
(4)配置目的地表結(jié)構(gòu),即可完成所有配置。
注:詳情參考「自定義」數(shù)據(jù)源,解決復(fù)雜請求邏輯外部數(shù)據(jù)獲取難題請?zhí)砑渔溄用枋?/p>
三、MySQL源Slave1掛掉后,使用Slave2同步如何保證數(shù)據(jù)不丟失
為避免對MySQL主庫產(chǎn)生影響,DataPipeline連接MySQL Slave1從庫通過解析Binlog方式進(jìn)行實(shí)時同步。但當(dāng)Slave1掛掉時,為不影響任務(wù),需要切換到Slave2從庫繼續(xù)進(jìn)行實(shí)時同步。
但Slave2拿到的Binlog日志相較于Slave1有延遲,會導(dǎo)致缺失數(shù)據(jù)。
DataPipeline提供了回滾功能,用戶可在DataPipeline上將原任務(wù)回滾到到某個時間段,確保不會缺失數(shù)據(jù),拿到對應(yīng)GTID,再通過該GTID找到Slave2對應(yīng)的Binlog position等信息。該操作不會缺失數(shù)據(jù),但可能會產(chǎn)生重復(fù)數(shù)據(jù)(如果目的地是關(guān)系型數(shù)據(jù)庫且有主鍵,可根據(jù)主鍵去重)。
源/目的地:MySQL/關(guān)系型數(shù)據(jù)庫
讀取模式:實(shí)時模式
(1)創(chuàng)建數(shù)據(jù)源(Slave1,開啟Binlog同步所需條件);
(2)正常激活任務(wù)即可;
(3)假如該任務(wù)掛掉,回滾操作,拿到某個時間點(diǎn)的GTID值;
(4)新建另一個數(shù)據(jù)源(Slave2,開啟Binlog同步所需條件);
(5)激活起點(diǎn)選擇自定義(填寫Slave1,回滾時所拿到的GTID,并根據(jù)該GTID在Slave2上拿到Binlog position等信息)。
四、多個表同步到一個Kafka Topic
因?yàn)闃I(yè)務(wù)需求,需要將多個表同步到Kafka Topic中,以便將數(shù)據(jù)供下游使用。在DataPipeline中可以實(shí)現(xiàn)該場景,同時也存在一些注意事項(xiàng)。
源/目的地:無限制/Kafka
讀取模式:無限制(建議使用實(shí)時或增量識別字段模式,因?yàn)镵afka目的地?cái)?shù)據(jù)無法去重)
(1)若使用不到DataPipeline的高級清洗功能,可聯(lián)系DataPipeline運(yùn)維開啟一個全局參數(shù),這樣可以在一個任務(wù)中選擇多張表寫入到同一個Kafka目的地。如果是實(shí)時模式,在該參數(shù)下,每條數(shù)據(jù)將額外附加上DML、 Insert timestamp 等字段信息,以供下游使用;
(2)如果需要使用DataPipeline高級清洗功能,則需要將這些表分布在不同任務(wù)中,寫入到同一個Kafka Topic。
五、將多個表同步到一個表
因?yàn)闃I(yè)務(wù)需求,需要將多個表同步到一個目的地表。在DataPipeline中可以實(shí)現(xiàn),但需要注意一些事項(xiàng)。
源/目的地:無限制
讀取模式:無限制
(1)2.6.0以前版本需要開啟高級清洗,并在高級清洗中對所添加字段賦默認(rèn)值;
(2)2.6.0以后版本不需要開啟高級清洗,需要在寫入設(shè)置中添加字段,并將藍(lán)色按鈕關(guān)閉(同步字段,但不同步數(shù)據(jù));
(3)要求目的地在DataPipeline上的表結(jié)構(gòu)必須一致,如字段缺少需對應(yīng)添加。并且,需要建多個任務(wù),將源表分布在不同任務(wù)中。
六、如何將圖片同步到HDFS
需要將各個區(qū)域的圖片統(tǒng)一上傳到HDFS上保存,供后續(xù)計(jì)算等使用。
源/目的地:FTP/HDFS
讀取模式:定時模式
(1)點(diǎn)擊文件同步;
(2)正常創(chuàng)建任務(wù)即可。
以上就是DataPipeline的六種應(yīng)用場景,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊,感謝你的閱讀。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。