新聞中心
在上周發(fā)布的“上篇丨數(shù)據(jù)融合平臺DataPipeline的應(yīng)用場景”一文中,我們分別從7個場景介紹了客戶在使用最新2.6版本中遇到的一些情況。接下來,本文將繼續(xù)為大家呈現(xiàn)其它幾個應(yīng)用場景。
目前成都創(chuàng)新互聯(lián)已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管運營、企業(yè)網(wǎng)站設(shè)計、洛龍網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
一、對分庫分表場景的支持
- 場景說明
在同一個數(shù)據(jù)任務(wù)中,對源系統(tǒng)某張表,根據(jù)表中數(shù)據(jù)的業(yè)務(wù)邏輯,將數(shù)據(jù)同步到不同數(shù)據(jù)庫的不同表中,例如:將集團的銷售數(shù)據(jù)按照所屬分公司的不同同步到對應(yīng)的分公司數(shù)據(jù)庫的銷售數(shù)據(jù)表中。
- 場景適用說明
源/目的地:關(guān)系型數(shù)據(jù)庫
讀取模式:無限制
- 操作步驟
(1)根據(jù)設(shè)計確定分庫分表規(guī)則;
(2)根據(jù)已定規(guī)則選擇對應(yīng)數(shù)據(jù)源并創(chuàng)建數(shù)據(jù)源;
(3)目的地將分庫分表規(guī)則按照指定格式寫入CSV文件;
(4)DP將根據(jù)已定義的CSV規(guī)則對源端數(shù)據(jù)進行分庫分表寫入目的地。
注:詳細細節(jié)可聯(lián)系DataPipeline提供開發(fā)文檔說明。
二、自定義數(shù)據(jù)源場景
- 場景說明
目前,許多企業(yè)在數(shù)據(jù)傳輸?shù)男枨髨鼍爸校藦纳嫌尾煌瑯I(yè)務(wù)數(shù)據(jù)庫中實時、定時分配到下游系統(tǒng)外,還需從外部合作商、供應(yīng)商中獲取業(yè)務(wù)數(shù)據(jù)。此時,企業(yè)通常會根據(jù)需要編寫不同的腳本,手動調(diào)用第三方系統(tǒng)提供的API接口,在抓取數(shù)據(jù)后,自行編寫清洗邏輯,最后實現(xiàn)數(shù)據(jù)落地。DataPipeline的自定義數(shù)據(jù)源功能針對上面場景有以下幾點優(yōu)勢:
統(tǒng)一管理數(shù)據(jù)獲取邏輯,快速合并JAR減少腳本開發(fā)量; 2. 當(dāng)上游發(fā)生變化時,無需對每一個數(shù)據(jù)傳輸任務(wù)進行調(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方式進行實時同步。但當(dāng)Slave1掛掉時,為不影響任務(wù),需要切換到Slave2從庫繼續(xù)進行實時同步。
但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ù)庫
讀取模式:實時模式
- 操作步驟
(1)創(chuàng)建數(shù)據(jù)源(Slave1,開啟Binlog同步所需條件);
(2)正常激活任務(wù)即可;
(3)假如該任務(wù)掛掉,回滾操作,拿到某個時間點的GTID值;
(4)新建另一個數(shù)據(jù)源(Slave2,開啟Binlog同步所需條件);
(5)激活起點選擇自定義(填寫Slave1,回滾時所拿到的GTID,并根據(jù)該GTID在Slave2上拿到Binlog position等信息)。
四、多個表同步到一個Kafka Topic
- 場景說明
因為業(yè)務(wù)需求,需要將多個表同步到Kafka Topic中,以便將數(shù)據(jù)供下游使用。在DataPipeline中可以實現(xiàn)該場景,同時也存在一些注意事項。
- 場景適用說明
源/目的地:無限制/Kafka
讀取模式:無限制(建議使用實時或增量識別字段模式,因為Kafka目的地數(shù)據(jù)無法去重)
- 操作步驟
(1)若使用不到DataPipeline的高級清洗功能,可聯(lián)系DataPipeline運維開啟一個全局參數(shù),這樣可以在一個任務(wù)中選擇多張表寫入到同一個Kafka目的地。如果是實時模式,在該參數(shù)下,每條數(shù)據(jù)將額外附加上DML、 Insert timestamp 等字段信息,以供下游使用;
(2)如果需要使用DataPipeline高級清洗功能,則需要將這些表分布在不同任務(wù)中,寫入到同一個Kafka Topic。
五、將多個表同步到一個表
- 場景說明
因為業(yè)務(wù)需求,需要將多個表同步到一個目的地表。在DataPipeline中可以實現(xiàn),但需要注意一些事項。
- 場景適用說明
源/目的地:無限制
讀取模式:無限制
- 操作步驟
(1)2.6.0以前版本需要開啟高級清洗,并在高級清洗中對所添加字段賦默認值;
(2)2.6.0以后版本不需要開啟高級清洗,需要在寫入設(shè)置中添加字段,并將藍色按鈕關(guān)閉(同步字段,但不同步數(shù)據(jù));
(3)要求目的地在DataPipeline上的表結(jié)構(gòu)必須一致,如字段缺少需對應(yīng)添加。并且,需要建多個任務(wù),將源表分布在不同任務(wù)中。
六、如何將圖片同步到HDFS
- 場景說明
需要將各個區(qū)域的圖片統(tǒng)一上傳到HDFS上保存,供后續(xù)計算等使用。
- 場景適用說明
源/目的地:FTP/HDFS
讀取模式:定時模式
- 操作步驟
(1)點擊文件同步;
(2)正常創(chuàng)建任務(wù)即可。
本篇集中介紹了6種場景,如果你在工作中遇到了同樣的問題,歡迎與我們交流。
分享名稱:下篇丨數(shù)據(jù)融合平臺DataPipeline的實際應(yīng)用場景
文章源于:http://www.dlmjj.cn/article/pcpoii.html