999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2021-05-17 15:02:22郭德卿徐國強李娜
汽車實用技術 2021年8期
關鍵詞:數(shù)據(jù)庫作業(yè)方法

郭德卿,徐國強,李娜

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

引言

隨著數(shù)字時代的到來,數(shù)據(jù)科學技術不斷發(fā)展,社會各行各業(yè)都越發(fā)地重視數(shù)據(jù),數(shù)據(jù)使得行業(yè)間更加密切,企業(yè)對數(shù)據(jù)需求的及時性也相應提高。基礎數(shù)據(jù)點對點傳輸、數(shù)據(jù)更新同步則尤為重要。

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

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

1 Kettle作業(yè)和轉換

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

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

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

2 Kettle關鍵技術

Kettle作為ETL工具包含了三方面核心技術功能,即抽取(Extract)、轉換(Transform)、裝載(Load)。

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

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

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

圖2 數(shù)據(jù)轉換

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

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

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

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

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

(2)通過時間戳進行數(shù)據(jù)同步,此方法原理是數(shù)據(jù)發(fā)生變化時,時間戳會記錄數(shù)據(jù)發(fā)生變化的時間,根據(jù)時間比較進行數(shù)據(jù)傳輸同步。

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

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

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

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

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

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

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

計算器功能,做一些簡單的數(shù)學運算及日期相關計算;

字符串處理,替換指定字符,大小寫轉換和特殊字符轉換等;

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

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

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

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

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

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

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

圖4 數(shù)據(jù)轉換

圖5 表輸入

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

圖6 表輸出

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

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

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

5 結束語

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

猜你喜歡
數(shù)據(jù)庫作業(yè)方法
快來寫作業(yè)
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
作業(yè)
故事大王(2016年7期)2016-09-22 17:30:08
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
我想要自由
主站蜘蛛池模板: 99久久国产精品无码| 亚洲欧美成人在线视频| 国产精品视频系列专区| 91成人在线免费观看| 国模沟沟一区二区三区| 在线色国产| 中日无码在线观看| 亚洲无码视频图片| 精品少妇人妻无码久久| 国产精品第一区| 国产成人精品视频一区视频二区| 日韩第一页在线| 一级毛片在线直接观看| 动漫精品中文字幕无码| 99这里精品| 亚洲欧洲日韩综合| 欧美另类视频一区二区三区| 中文字幕色站| 中文字幕第1页在线播| 国产激情无码一区二区APP| 亚洲天堂日韩在线| 精品欧美一区二区三区在线| 国产97区一区二区三区无码| 精品五夜婷香蕉国产线看观看| 亚洲精品高清视频| 久久精品只有这里有| 九色视频在线免费观看| 国产亚洲精品va在线| 国产理论一区| 九色在线视频导航91| 国产91高跟丝袜| 全部免费毛片免费播放| 欧美成人A视频| 久久99蜜桃精品久久久久小说| 久久99国产精品成人欧美| 在线另类稀缺国产呦| 国产精品yjizz视频网一二区| 中文字幕色在线| 久一在线视频| 97在线公开视频| 99热这里只有精品2| 沈阳少妇高潮在线| 国产成人福利在线| 婷婷亚洲综合五月天在线| 国产激情无码一区二区三区免费| 99re精彩视频| 99久久精品无码专区免费| 大香伊人久久| 性欧美在线| 暴力调教一区二区三区| 日日拍夜夜嗷嗷叫国产| 亚洲无码视频图片| 黄色在线不卡| 无码有码中文字幕| 在线观看亚洲精品福利片| 亚洲无码免费黄色网址| 原味小视频在线www国产| 久久青草精品一区二区三区| 亚洲天堂网2014| 日韩中文字幕亚洲无线码| 日本欧美一二三区色视频| 麻豆国产精品一二三在线观看| 国产18页| 精品免费在线视频| 精品国产Ⅴ无码大片在线观看81| 91丝袜美腿高跟国产极品老师| 秋霞一区二区三区| 中文字幕伦视频| 在线免费亚洲无码视频| 国产福利观看| 亚洲欧美不卡| 丁香六月激情综合| 青青极品在线| 久久美女精品| 精品伊人久久久大香线蕉欧美| 色呦呦手机在线精品| 亚洲系列无码专区偷窥无码| 91福利在线看| 亚洲高清中文字幕| 在线欧美a| 天堂岛国av无码免费无禁网站| 精品视频免费在线|