亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Kettle數(shù)據(jù)傳輸與同步方法的研究

        2021-05-17 15:02:22郭德卿徐國(guó)強(qiáng)李娜
        汽車(chē)實(shí)用技術(shù) 2021年8期
        關(guān)鍵詞:觸發(fā)器數(shù)據(jù)源插件

        郭德卿,徐國(guó)強(qiáng),李娜

        (中國(guó)汽車(chē)技術(shù)研究中心有限公司 中汽數(shù)據(jù)(天津)有限公司,天津 300300)

        引言

        隨著數(shù)字時(shí)代的到來(lái),數(shù)據(jù)科學(xué)技術(shù)不斷發(fā)展,社會(huì)各行各業(yè)都越發(fā)地重視數(shù)據(jù),數(shù)據(jù)使得行業(yè)間更加密切,企業(yè)對(duì)數(shù)據(jù)需求的及時(shí)性也相應(yīng)提高?;A(chǔ)數(shù)據(jù)點(diǎn)對(duì)點(diǎn)傳輸、數(shù)據(jù)更新同步則尤為重要。

        數(shù)據(jù)傳輸和同步的方法多種多樣,本文將介紹以Kettle作為工具的一些使用方法。

        Kettle是一款開(kāi)源的ETL工具,主要用來(lái)完成數(shù)據(jù)的抽取,清洗、轉(zhuǎn)換和加載等數(shù)據(jù)處理方面的工作。Kettle不僅提供了簡(jiǎn)單明了的圖形界面,它的流程式設(shè)計(jì)也非常方便易用。功能特點(diǎn)方面,Kettle支持全面的數(shù)據(jù)訪(fǎng)問(wèn)及多平臺(tái)部署,擁有優(yōu)秀的插件架構(gòu)擴(kuò)展性,經(jīng)過(guò)長(zhǎng)期的優(yōu)化升級(jí),全面實(shí)現(xiàn)高效穩(wěn)定的數(shù)據(jù)處理[1]。

        1 Kettle作業(yè)和轉(zhuǎn)換

        Kettle的控件包含兩個(gè)部分,即作業(yè)(Job)和轉(zhuǎn)換(Trans-form)。

        作業(yè)屬于步驟流,是將若干獨(dú)立的步驟,按照先后的執(zhí)行順序形成一個(gè)工作流。生活中大部分事務(wù)都可以形成工作流,比如我們沖咖啡這一舉動(dòng),需要經(jīng)過(guò)以下步驟:燒水、準(zhǔn)備咖啡杯、倒入咖啡,開(kāi)水沖泡。每個(gè)步驟有著先后順序,按照順序組合后,就完成了沖咖啡的舉動(dòng)。Kettle作業(yè)原理也是如此,作業(yè)中的每一個(gè)步驟,都必須等前面的步驟執(zhí)行完畢,后面的步驟才會(huì)執(zhí)行,如此待完成全部步驟后就完成了此作業(yè)。

        轉(zhuǎn)換屬于數(shù)據(jù)流,是指從輸入(Input)到輸出(Output)之間的數(shù)據(jù)流動(dòng),針對(duì)的是在數(shù)據(jù)流動(dòng)過(guò)程中的每一條記錄的處理,比如通過(guò)一定邏輯的輸入,經(jīng)過(guò)轉(zhuǎn)換,再輸出為我們想要的數(shù)據(jù)。轉(zhuǎn)換通常作為作業(yè)中的一個(gè)步驟而存在。轉(zhuǎn)換是Kettle開(kāi)發(fā)的基礎(chǔ),也是本文主要介紹的功能模塊[2]。

        2 Kettle關(guān)鍵技術(shù)

        Kettle作為ETL工具包含了三方面核心技術(shù)功能,即抽?。‥xtract)、轉(zhuǎn)換(Transform)、裝載(Load)。

        數(shù)據(jù)抽取是所有工作的前提,是將各種生產(chǎn)環(huán)境中的數(shù)據(jù)提取到開(kāi)發(fā)環(huán)境中,一般情況下,企業(yè)在生產(chǎn)制造過(guò)程中,會(huì)產(chǎn)生大量的相關(guān)生產(chǎn)數(shù)據(jù),而我們的生產(chǎn)環(huán)境通常包含多個(gè)不同的數(shù)據(jù)源。Kettle可以支持多種數(shù)據(jù)源輸入,通常我們用到的有兩種:數(shù)據(jù)庫(kù)輸入和文本文件輸入。

        圖1 數(shù)據(jù)輸入

        然后通過(guò)預(yù)設(shè)定的邏輯進(jìn)行數(shù)據(jù)轉(zhuǎn)換處理,通常有:字段選擇、過(guò)濾、排序和字段處理等。

        圖2 數(shù)據(jù)轉(zhuǎn)換

        最后輸出結(jié)果數(shù)據(jù),主要包括表輸出、插入/更新、文本輸出等(圖3)。

        3 Kettel數(shù)據(jù)傳輸與同步的方法

        Kettle以工作流的方式定義數(shù)據(jù)傳輸與同步的規(guī)則,通過(guò)執(zhí)行任務(wù)實(shí)現(xiàn)對(duì)數(shù)據(jù)的更新加載。此過(guò)程有多種方案可以采納,如:

        (1)通過(guò)觸發(fā)器進(jìn)行數(shù)據(jù)同步,此方法實(shí)現(xiàn)了實(shí)時(shí)數(shù)據(jù)同步,但由于要在生產(chǎn)環(huán)境建立觸發(fā)器,可能會(huì)對(duì)生產(chǎn)環(huán)境產(chǎn)生一定影響。

        圖3 數(shù)據(jù)輸出

        (2)通過(guò)時(shí)間戳進(jìn)行數(shù)據(jù)同步,此方法原理是數(shù)據(jù)發(fā)生變化時(shí),時(shí)間戳?xí)涗洈?shù)據(jù)發(fā)生變化的時(shí)間,根據(jù)時(shí)間比較進(jìn)行數(shù)據(jù)傳輸同步。

        (3)通過(guò)數(shù)據(jù)比較進(jìn)行同步,此方法原理是兩邊數(shù)據(jù)比對(duì)進(jìn)行數(shù)據(jù)傳輸同步,相對(duì)時(shí)間戳法效率較低,一般用于實(shí)時(shí)性較低的需求場(chǎng)景。

        (4)通過(guò)全表拷貝進(jìn)行同步,此方法是定期清空目標(biāo)數(shù)據(jù)源,并將源數(shù)據(jù)整體導(dǎo)入目標(biāo)數(shù)據(jù)源,此方案開(kāi)發(fā)簡(jiǎn)單,但只適用于體積較小的數(shù)據(jù)[3]。

        以上四種方法,我們會(huì)根據(jù)不同的業(yè)務(wù)場(chǎng)景,酌情進(jìn)行使用。在數(shù)據(jù)同步過(guò)程中,包含以下幾點(diǎn)核心處理環(huán)節(jié):

        (1)數(shù)據(jù)庫(kù)連接:Kettle提供了多種數(shù)據(jù)庫(kù)連接方式,打開(kāi)Kettle的DB連接中,可以配置所有數(shù)據(jù)庫(kù)的連接,包括JDBC、ODBC和JNDI,多數(shù)情況下,我們使用JDBC和ODBC兩種方式。值得注意的是在成功配置數(shù)據(jù)源之后,該數(shù)據(jù)源默認(rèn)為局部數(shù)據(jù)源,可將此數(shù)據(jù)源共享為全局?jǐn)?shù)據(jù)源,在創(chuàng)建其他新轉(zhuǎn)換時(shí)可直接使用。

        (2)抽取數(shù)據(jù):Kettle數(shù)據(jù)抽取主要使用輸入模塊的表輸入來(lái)實(shí)現(xiàn),通過(guò)SELECT語(yǔ)句,從數(shù)據(jù)庫(kù)抽取輸入數(shù)據(jù)。提取表中數(shù)據(jù)后,選擇、比對(duì)、修改需要同步的數(shù)據(jù),根據(jù)業(yè)務(wù)邏輯進(jìn)行相應(yīng)的新增、修改、刪除目標(biāo)表的數(shù)據(jù),需要注意的是前后數(shù)據(jù)表需要同步數(shù)據(jù)的字段必須一一對(duì)應(yīng)。

        (3)數(shù)據(jù)轉(zhuǎn)換:Kettle里面沒(méi)有單一的數(shù)據(jù)轉(zhuǎn)換步驟,是有許多步驟組合起來(lái)完成數(shù)據(jù)轉(zhuǎn)換的功能。由于各業(yè)務(wù)系統(tǒng)數(shù)據(jù)格式不統(tǒng)一、數(shù)據(jù)不規(guī)范,需要使用大量的數(shù)據(jù)清洗轉(zhuǎn)換工作來(lái)實(shí)現(xiàn)數(shù)據(jù)規(guī)范化,針對(duì)具體數(shù)據(jù)內(nèi)容,通過(guò)建立數(shù)據(jù)標(biāo)準(zhǔn)化邏輯,完成對(duì)基礎(chǔ)數(shù)據(jù)的規(guī)范化處理。Kettle一整套的數(shù)據(jù)處理轉(zhuǎn)換組件功能十分強(qiáng)大,下面就我們經(jīng)常用到的功能進(jìn)行介紹:

        增加常量,經(jīng)常用到ID作為主鍵,我們可以在Kettle中增加序列,并且能夠自定義序列步長(zhǎng);

        計(jì)算器功能,做一些簡(jiǎn)單的數(shù)學(xué)運(yùn)算及日期相關(guān)計(jì)算;

        字符串處理,替換指定字符,大小寫(xiě)轉(zhuǎn)換和特殊字符轉(zhuǎn)換等;

        行列轉(zhuǎn)換,先進(jìn)行數(shù)據(jù)聚合排序,然后進(jìn)行列轉(zhuǎn)換;

        字段篩選,常用作數(shù)據(jù)轉(zhuǎn)換條件,當(dāng)滿(mǎn)足條件時(shí)可執(zhí)行其他轉(zhuǎn)換。

        (4)數(shù)據(jù)校驗(yàn):基于各業(yè)務(wù)場(chǎng)景的數(shù)據(jù)質(zhì)量問(wèn)題,實(shí)現(xiàn)數(shù)據(jù)項(xiàng)的基礎(chǔ)邏輯關(guān)系校驗(yàn),剔除不符合校驗(yàn)規(guī)則的數(shù)據(jù),完成數(shù)據(jù)質(zhì)量檢查,解決業(yè)務(wù)數(shù)據(jù)排查困難的問(wèn)題。

        (5)數(shù)據(jù)輸出:Kettle數(shù)據(jù)輸出主要使用輸出模塊的表輸出來(lái)實(shí)現(xiàn),但根據(jù)業(yè)務(wù)需求不同,我們可以選擇需要的插件,比如插入/更新插件具備更新、插入等功能,但此插件相對(duì)于表輸出來(lái)說(shuō)效率相對(duì)較低[4]。

        4 Kettel數(shù)據(jù)傳輸與同步的應(yīng)用

        對(duì)于數(shù)據(jù)及時(shí)性有較高要求的業(yè)務(wù)場(chǎng)景中,比如我們汽車(chē)產(chǎn)業(yè)中的生產(chǎn)制造數(shù)據(jù),每時(shí)每刻都會(huì)有汽車(chē)下線(xiàn),這就是說(shuō)汽車(chē)生產(chǎn)數(shù)據(jù)是實(shí)時(shí)變化的,要求我們數(shù)據(jù)同步相應(yīng)迅速快捷,此業(yè)務(wù)場(chǎng)景需要使用觸發(fā)器來(lái)實(shí)現(xiàn)數(shù)據(jù)的同步傳輸。以insert為例,我們?cè)谏a(chǎn)環(huán)境的源表中建立一個(gè)insert觸發(fā)器和一個(gè)表結(jié)構(gòu)與源表相同的臨時(shí)表,每當(dāng)有新數(shù)據(jù)插入時(shí),都會(huì)將新插入的數(shù)據(jù)自動(dòng)的導(dǎo)入臨時(shí)表,然后使用全表拷貝的方法將臨時(shí)表同步到開(kāi)發(fā)環(huán)境中,并將臨時(shí)表插入目標(biāo)表中,這樣就完成了數(shù)據(jù)庫(kù)之間增量數(shù)據(jù)的更新。除了insert可以建立觸發(fā)器,還可以在update和delete時(shí)建立觸發(fā)器,原理是一樣的。

        在日常工作中,我們用到最多的數(shù)據(jù)同步方法是時(shí)間戳法。相較于觸發(fā)器的使用,時(shí)間戳開(kāi)發(fā)和使用上更加簡(jiǎn)單,不足之處就是時(shí)間戳必須在兩邊增加一個(gè)時(shí)間字段,會(huì)占用存儲(chǔ)空間,并且此方法不能進(jìn)行delete的同步操作。時(shí)間戳法使用上,我們首先要?jiǎng)?chuàng)建一個(gè)時(shí)間戳表,記錄每一次抽取數(shù)據(jù)的時(shí)間。然后,每次獲取時(shí)間戳中最后一次抽取數(shù)據(jù)的時(shí)間,我們采用大于max(取數(shù)時(shí)間)作為同步條件,取到上次抽取以后的數(shù)據(jù),再將其插入到目標(biāo)表中。最后將本次取數(shù)時(shí)間插入時(shí)間戳表,完成時(shí)間戳的更新,為下一次數(shù)據(jù)同步做準(zhǔn)備。具體工作流程如下:

        圖4 數(shù)據(jù)轉(zhuǎn)換

        圖5 表輸入

        數(shù)據(jù)比較的同步方法,多數(shù)情況在需要將新老數(shù)據(jù)對(duì)比,做相應(yīng)操作轉(zhuǎn)換中進(jìn)行數(shù)據(jù)同步,可根據(jù)數(shù)據(jù)比對(duì)變化做相應(yīng)的刪除,插入和更新操作。相對(duì)時(shí)間戳法,數(shù)據(jù)比較法是一個(gè)更加完善的數(shù)據(jù)同步方法,但由于同步效率較低,我們一般用于數(shù)據(jù)體量相對(duì)較小的數(shù)據(jù)庫(kù)中。它的核心思想是將新老數(shù)據(jù)合并處理,根據(jù)主鍵判斷兩表對(duì)應(yīng)數(shù)據(jù)是否一致,合并記錄后會(huì)形成標(biāo)識(shí)位,用于判斷每一條數(shù)據(jù)的狀態(tài),即更新、刪除、新增和不變。最后根據(jù)數(shù)據(jù)狀態(tài)標(biāo)識(shí)來(lái)對(duì)目標(biāo)表進(jìn)行刪除、插入和更新等相對(duì)應(yīng)的操作。

        圖6 表輸出

        圖7 數(shù)據(jù)同步

        全表拷貝法,顧名思義,就是清空目標(biāo)表,將源表整體插入到目標(biāo)表中,此種方法多數(shù)用于維度表同步方案中,要求更新頻次較低,數(shù)據(jù)量較少,同時(shí)開(kāi)發(fā)維護(hù)也最為簡(jiǎn)單便捷。

        在進(jìn)行數(shù)據(jù)同步之前,我們需要根據(jù)業(yè)務(wù)需求,制訂一套專(zhuān)業(yè)的數(shù)據(jù)傳輸與同步方案,編譯為Kettle可識(shí)別的流程和規(guī)則,從而持續(xù)高效地實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)同步[5]。

        5 結(jié)束語(yǔ)

        本文通過(guò)對(duì)Kettle工具在數(shù)據(jù)傳輸與同步的應(yīng)用研究,針對(duì)四種數(shù)據(jù)傳輸與同步方法,進(jìn)行了詳細(xì)的解析說(shuō)明。實(shí)現(xiàn)了數(shù)據(jù)庫(kù)中新老數(shù)據(jù)表的同步更新,構(gòu)建了業(yè)務(wù)數(shù)據(jù)庫(kù)的正常維護(hù)流程。Kettle允許用戶(hù)管理來(lái)自不同數(shù)據(jù)庫(kù)的數(shù)據(jù),通過(guò)提供一個(gè)圖形化的開(kāi)發(fā)環(huán)境,實(shí)現(xiàn)數(shù)據(jù)傳輸與同步。Kettle支持絕大部分?jǐn)?shù)據(jù)庫(kù),可以做到不同類(lèi)型的多個(gè)數(shù)據(jù)庫(kù)之間數(shù)據(jù)的同步更新,既滿(mǎn)足了業(yè)務(wù)場(chǎng)景需求,降低了運(yùn)維管理人員成本,提高了數(shù)據(jù)庫(kù)使用效率,解決了不同數(shù)據(jù)庫(kù)之間的共享問(wèn)題。

        猜你喜歡
        觸發(fā)器數(shù)據(jù)源插件
        自編插件完善App Inventor與樂(lè)高機(jī)器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
        主從JK觸發(fā)器邏輯功能分析
        電子世界(2017年22期)2017-12-02 03:03:45
        基于不同網(wǎng)絡(luò)數(shù)據(jù)源的期刊評(píng)價(jià)研究
        使用觸發(fā)器,強(qiáng)化安全性
        MapWindowGIS插件機(jī)制及應(yīng)用
        基于真值發(fā)現(xiàn)的沖突數(shù)據(jù)源質(zhì)量評(píng)價(jià)算法
        基于Revit MEP的插件制作探討
        分布式異構(gòu)數(shù)據(jù)源標(biāo)準(zhǔn)化查詢(xún)?cè)O(shè)計(jì)與實(shí)現(xiàn)
        對(duì)觸發(fā)器邏輯功能轉(zhuǎn)換的分析
        中国黄色偷拍视频二区| av色综合久久天堂av色综合在| 激情综合婷婷色五月蜜桃| 久久天堂av综合合色| 色综合av综合无码综合网站| 欧洲熟妇色xxxx欧美老妇多毛| 一本一道久久综合狠狠老| 亚洲精品毛片一区二区三区| 在线视频制服丝袜中文字幕| 伊香蕉大综综综合久久| 99精品又硬又爽又粗少妇毛片| 亚洲国产一区二区三区| 99热这里有精品| 99久久精品国产成人综合| 欧美国产亚洲日韩在线二区| 偷拍激情视频一区二区| 国产精品一区二区蜜臀av| 国产不卡视频在线观看| 国产精品沙发午睡系列| 337p人体粉嫩胞高清视频| 最近日本免费观看高清视频| 妺妺窝人体色www在线图片 | 中国猛少妇色xxxxx| 国产思思久99久精品| 亚洲福利av一区二区| 亚洲一区二区av天堂| 精品亚洲一区二区区别在线观看| 午夜福利一区在线观看中文字幕| 和外国人做人爱视频| 美女裸体自慰在线观看| 日韩av在线不卡一区二区三区| 国产精品人妻熟女男人的天堂| 日韩欧美成人免费观看| 曰本女人牲交全视频免费播放| 久久青草国产免费观看| 新久久国产色av免费看| 国产又粗又黄又爽的大片| 国产无套护士在线观看| 成人特黄特色毛片免费看| 国产伦理一区二区久久精品| 性刺激的大陆三级视频|