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