亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種數據處理方法及裝置與流程

文檔序號:11475793閱讀:195來源:國知局
一種數據處理方法及裝置與流程
本發(fā)明涉及計算機
技術領域
,特別是涉及一種數據處理方法及裝置。
背景技術
:隨著計算機技術以及互聯(lián)網技術的高速發(fā)展,網絡上每天都會產生并更新大量的各種數據。例如,一個視頻網站上視頻搜索的索引數據量目前已達到了5億的海量數據。目前一般都會將大量的數據通過各種數據庫進行保存。并且,可以根據需要,對保存的數據進行相應的處理,并保存處理后的數據。例如,針對數據庫中保存的大量的數據,可以定期的對數據庫中的數據進行批量的處理。數據的處理根據不同的業(yè)務需要可以有多種形式,比如,可以對數據庫中的全部數據進行歸一化的處理,并將處理后的數據進行保存。同時,根據具體的業(yè)務需要,對個別數據還可以進行實時的數據處理,并可以將處理后的數據進行保存。在現(xiàn)有技術中,當數據處理程序進程從數據庫中已經讀取了數據,并正在進行數據處理時,數據庫中的數據有可能會發(fā)生更新。這將導致正在處理的數據過期,從而數據處理程序完成數據處理后,所保存的處理后的數據會與數據庫中更新后的數據不對應,進而導致數據發(fā)生錯誤。技術實現(xiàn)要素:本發(fā)明實施例的目的在于提供一種數據處理方法及裝置,以提高數據庫中保存的數據的準確性,避免發(fā)生數據錯誤。具體技術方案如下:本發(fā)明實施例公開了一種數據處理方法,包括:對數據庫中的目標數據進行處理;完成對所述目標數據的處理后,對比處理后的目標數據的版本號與當前所述數據庫中存儲的目標數據的版本號是否一致,其中,所述數據庫中存儲的各數據的版本號是各數據更新時對應更新的;當所述處理后的目標數據的版本號與當前所述數據庫中存儲的目標數據的版本號不一致時,重新對所述目標數據進行處理。可選的,所述完成對所述目標數據的處理后,對比處理后的目標數據的版本號與當前所述數據庫中存儲的所述目標數據的版本號是否一致的步驟包括:當有多個進程同時對所述目標數據進行處理時,每一個進程完成對所述目標數據的處理之后,對比處理后的目標數據的版本號與當前所述數據庫中存儲的所述目標數據的版本號是否一致??蛇x的,所述方法還包括:監(jiān)測所述數據庫中存儲的數據是否發(fā)生更新;當所述數據發(fā)生更新時,同步更新所述數據的版本號。可選的,所述數據庫為hbase數據庫,所述監(jiān)測所述數據庫中存儲的數據是否發(fā)生更新的步驟包括:通過所述hbase數據庫的協(xié)處理器機制,實時監(jiān)測所述hbase數據庫中的數據是否發(fā)生更新;所述當所述數據發(fā)生更新時,同步更新所述數據的版本號的步驟包括:當所述數據發(fā)生更新時,通過所述協(xié)處理器機制同步更新所述數據的版本號。可選的,所述同步更新所述數據的版本號的步驟包括:根據所述數據的當前版本號,以及預設的版本號排序規(guī)則,獲取所述當前版本號的下一版本號;將所獲取的版本號確定為所述數據的版本號。本發(fā)明實施例還公開了一種數據處理裝置,包括:第一處理模塊,用于對數據庫中的目標數據進行處理;對比模塊,用于完成對所述目標數據的處理后,對比處理后的目標數據的版本號與當前所述數據庫中存儲的目標數據的版本號是否一致,其中,所述數據庫中存儲的各數據的版本號是各數據更新時對應更新的;第二處理模塊,用于當所述處理后的目標數據的版本號與當前所述數據庫中存儲的所述目標數據的版本號不一致時,重新對所述目標數據進行處理。可選的,所述對比模塊,具體用于當有多個進程同時對所述目標數據進行處理時,每一個進程完成對所述目標數據的處理之后,對比處理后的目標數據的版本號與當前所述數據庫中存儲的所述目標數據的版本號是否一致。可選的,所述裝置還包括:監(jiān)測模塊,用于監(jiān)測所述數據庫中存儲的數據是否發(fā)生更新;更新模塊,用于當所述數據發(fā)生更新時,同步更新所述數據的版本號??蛇x的,所述數據庫為hbase數據庫,所述監(jiān)測模塊,具體用于通過所述hbase數據庫的協(xié)處理器機制,實時監(jiān)測所述hbase數據庫中的數據是否發(fā)生更新;所述更新模塊,具體用于當所述數據發(fā)生更新時,通過所述協(xié)處理器機制同步更新所述數據的版本號??蛇x的,所述更新模塊,具體用于根據所述數據的當前版本號,以及預設的版本號排序規(guī)則,獲取所述當前版本號的下一版本號;將所獲取的版本號確定為所述數據的版本號。本發(fā)明實施例提供的一種數據處理方法及裝置,當對數據完成數據處理后,能夠通過數據的版本號,判斷出該數據是否發(fā)生了更新,當完成數據處理后的數據的版本號與此時數據庫中的該數據的版本號不相符時,則表示在對該數據進行處理的過程中,該數據發(fā)生了更新,這種情況下,可以放棄本次已經處理完的數據,并重新使用更新后的數據進行數據處理,進而能夠避免數據錯誤,保證數據的一致性,提高數據庫中保存的數據的準確性,使得在進行大批量的數據處理時能夠同時進行個別數據的更新操作,而不會導致數據發(fā)生錯誤。當然,實施本發(fā)明的任一產品或方法并不一定需要同時達到以上所述的所有優(yōu)點。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1為本法明實施例提供的數據處理方法的一種流程圖;圖2為本法明實施例提供的數據處理裝置的結構示意圖。具體實施方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。參見圖1,圖1為本法明實施例提供的數據處理方法的一種流程圖,包括:步驟101,對數據庫中的目標數據進行處理。本發(fā)明實施例提供的方法可以應用于電子設備。其中,上述電子設備可以為臺式計算機、便攜式計算機、智能移動終端等。數據庫指的是以一定方式儲存在一起、能為多個用戶共享、具有盡可能小的冗余度、與應用程序彼此獨立的數據集合。本發(fā)明實施例中的數據庫可以是目前現(xiàn)有多種數據庫中的一種,例如hbase數據庫,db2數據庫、sqlserver數據庫、sybase數據庫等等。目標數據是指在數據庫中存儲的、需要進行數據處理的一部分或者全部數據。對數據進行處理是指將存儲在數據庫中的數據根據不同的業(yè)務需要,進行相應規(guī)則的數據處理的過程,例如,可以對數據進行歸一化處理,去掉數據所包含的量綱,使之轉化為純數值;或者對數據進行篩選,去除沉余數據等等。根據具體不同的需要,可以對數據進行多種方式的處理,對數據進行處理的具體方法屬于現(xiàn)有技術,在此不再進行贅述。本發(fā)明實施例中,電子設備可以通過各種數據處理程序或數據庫本身的數據處理程序對數據進行處理,在進行數據的處理時,可以先將需要進行處理的目標數據從數據庫中進行讀取。例如,當目標數據在數據庫中以表格的形式存儲時,數據處理程序可以先從數據庫的表格中讀取到目標數據,然后再進行目標數據的處理。當處理完成后,可以將處理后的數據保存在其他數據庫中,或者保存在原數據庫的另一張表中,或者保存在原數據庫中原數據的表格并覆蓋原數據庫中的原數據。步驟102,完成對目標數據的處理后,對比處理后的目標數據的版本號與當前數據庫中存儲的目標數據的版本號是否一致。其中,數據庫中存儲的各數據的版本號是各數據更新時對應更新的。在本發(fā)明實施例中,電子設備可以針對數據庫中的數據對應存儲其版本號。數據的版本號可以用來對應數據的每一次更新,通過不同的版本號可以反映出數據是否發(fā)生了更新。對于不同類型的數據庫,可以為數據添加不同形式的版本號。例如,在hbase數據庫中,數據通常以表格的形式進行存儲,從而可以在現(xiàn)有的數據存儲表格中,新增一列版本號。參見表1,表1為hbase數據庫中的數據存儲表格。表1rowkeya列b列c列版本號rowkey1a12b20c5001rowkey2a15b21c6003表1中rowkey表示hbase數據庫中的行主鍵,用于數據的查詢。表中的每一行表示一組數據。在每一行后,可以添加版本號,版本號可以用數字表示,每當一行中一列或多列數據進行一次更新時,版本號也同步進行一次更新。例如,版本號中的數字可以累加一個預設數值,從而實現(xiàn)版本號的更新。當電子設備完成了對已提取的目標數據的處理之后,其可以判斷在進行目標數據處理期間,數據庫中所存儲的原始的目標數據有沒有發(fā)生更新。由于電子設備在進行目標數據的讀取時,會同時讀取目標數據的版本號,所以當完成了對目標數據的處理后,可以從數據庫中讀取到當前存儲在數據庫中的目標數據的版本號,對比處理后的目標數據的版本號與當前數據庫中存儲的目標數據的版本號是否一致。步驟103,當處理后的目標數據的版本號與當前數據庫中存儲的目標數據的版本號不一致時,重新對目標數據進行處理。經過比對,如果處理后的目標數據的版本號與當前數據庫中存儲的目標數據的版本號不一致,則表示數據處理程序在對目標數據進行處理的期間,數據庫中存儲的目標數據發(fā)生了更新,從而導致了版本號的不一致。此時,由于目標數據發(fā)生了更新,所以已經經過處理的目標數據就已經過期,沒有應用意義。所以電子設備可以舍棄已經經過處理的目標數據,重新從數據庫中讀取經過更新后的目標數據,并重新進行數據的處理。當然,當再次完成對目標數據的處理后,還可以再次進行版本號的比對,以確保處理后的數據的準確性。當處理后的目標數據的版本號與當前數據庫中存儲的目標數據的版本號一致時,表明在數據處理過程中,數據庫中存儲的目標數據未更新。這種情況下,電子設備可以將經過處理后的目標數據進行保存。電子設備可以將將經過處理的目標數據存儲于下一容器。容器在計算機技術用于數據的存儲,在本發(fā)明實施例中,容器可以是存儲目標數據的數據庫的其他存儲位置,也可以是存儲目標數據的數據庫以外的其他數據庫。本發(fā)明實施例中,通過對數據庫中的數據添加版本號,經過處理的目標數據,和對目標數據完成處理的當前時刻的數據庫中存的目標數據進行版本號的比對,能夠及時發(fā)現(xiàn)已經完成處理的目標數據是否發(fā)生了更新,并且導致了已經處理好的目標數據過期,當版本號不一致時,則表示已經處理好的目標數據已經過期,可以對數據庫中的目標數據重新進行處理,從而免了數據錯誤,保證了數據的一致性,提高數據庫中保存的數據的準確性,并且使得在進行大批量的數據處理時能夠同時進行個別數據的更新操作,而不會導致數據發(fā)生錯誤。可選的,本發(fā)明實施例提供的數據處理方法中,完成對目標數據的處理后,對比處理后的目標數據的版本號與當前數據庫中存儲的目標數據的版本號是否一致的步驟可以包括:當有多個進程同時對目標數據進行處理時,每一個進程完成對目標數據的處理之后,對比處理后的目標數據的版本號與當前數據庫中存儲的目標數據的版本號是否一致。在對數據庫中的目標數據進行處理時,時常會出現(xiàn)多個數據處理程序的多個進程同時對目標數據進行處理的情況。例如,在一般應用中,每天都會定時的對數據庫中的所有目標數據進行一次批量的數據處理操作,而且在任何時候還可以對數據庫中的個別目標數據進行實時的數據處理操作。當對所有目標數據進行批量的處理的同時,對其中的個別目標數據進行實時的處理操作時,則會對同樣的目標數據進行處理。這種情況下,每一個進程都可以從數據庫中進行目標數據的讀取,并進行獨立的處理。在完成后處理后,每一個進行都可以對比處理后的目標數據的版本號與當前數據庫中存儲的目標數據的版本號是否一致,當不一致時,重新進行數據的處理。在實際應用中,多個進程對目標數據可能會進行同樣的處理,例如,在上面的例子中,每天定時進行的批量的數據處理操作,和對其中的個別目標數據進行實時的處理操作時可能是對數據進行相同的處理,并且最終完成處理的數據會被保存在同一存儲位置。在這種情況下,當目標數據被處理期間發(fā)生更新時,還會出現(xiàn)數據相互覆蓋的問題。例如,當批量處理進程已經讀取了目標數據,并且開始進行目標數據的處理時,數據庫中存儲的目標數據發(fā)生了更新;實時處理進程讀取了已經更新了的目標數據,并開始進行數據的處理,并且處理完成后將處理好的目標數據保存在數據庫中的預設位置;此時批量處理進程也完成了目標數據的處理,將處理好的目標數據也保存在數據庫中的預設位置,并且覆蓋實時處理進程所保存的完成處理的目標數據。則此時批量處理進程所保存的完成處理的目標數據是根據沒有更新前的目標數據得到的結果,是錯誤的數據,并且還會覆蓋了實時處理進程所保存的正確的處理結果。當每個進程在完成目標數據的處理后,都通過版本號判斷目標數據是否進行了更新,就可以避免上述情況的出現(xiàn)。例如,當批量處理進程已經讀取了目標數據,并且開始進行目標數據的處理時,數據庫中存儲的目標數據發(fā)生了更新,并同步更新目標數據的版本號;實時處理進程讀取了已經更新了的目標數據,并開始進行數據的處理,處理完成后,經過判斷發(fā)現(xiàn)完成處理的目標數據的版本號與當前數據庫中的目標數據的版本號一致,從而將處理完成后將處理好的目標數據保存在數據庫中的預設位置;批量處理進程也完成了目標數據的處理,經過判斷發(fā)現(xiàn)完成處理的目標數據的版本號與當前數據庫中的目標數據的版本號不一致,從而放棄本次已經完成處理的目標數據,并重新進行目標數據的處理,或者也可以放棄本次數據處理的操作。從而避免了保存錯誤的數據。在多進程同時對目標數據進行處理時,每一個進程完成目標數據的處理后,都通過目標數據的版本號判斷目標數據是否發(fā)生了更新,從而避免了錯誤數據對正確數據的覆蓋,進一步避免了數據錯誤。可選的,本發(fā)明實施例提供的數據處理方法中,該方法還包括:第一步,監(jiān)測數據庫中存儲的數據是否發(fā)生更新。在本發(fā)明實施例中,電子設備可以對數據庫中的數據進行實時的監(jiān)測,監(jiān)測數據是否有更新。具體的,不同的數據庫中對數據的監(jiān)測有不同的方式,例如可以通過額外的程序對數據庫進行實時監(jiān)測,或者通過數據庫本身的插件或子程序,來監(jiān)測數據庫中的數據是否發(fā)生了更新。數據的更新與對數據進行各種數據處理之間沒有必然的聯(lián)系,是相互獨立的過程,數據的更新可能會在任何時候進行,所以對于數據更新的監(jiān)測是實時進行的。第二步,當數據發(fā)生更新時,同步更新數據的版本號。當監(jiān)測到數據庫中的數據進行更新時,同步的,可以將版本號進行更新。版本號的更新可以通過預設的更新程序來進行,具體的更新程序可以由本領域技術人員針對不同的數據庫類型,通過各種編程語言進行開發(fā)而得到,屬于現(xiàn)有技術,在此不再進行贅述。本發(fā)明實施例中,通過實時對數據庫中的數據進行監(jiān)測,當數據發(fā)生更新時,能夠及時的更新數據的版本號,并且對數據更新的監(jiān)測以及同步的對版本號的更新都可以通過額外的程序來實現(xiàn),與對數據進行處理的過程不存在耦合,有利于數據庫中數據的管理和對數據的處理,提高了對數據進行處理的效率。可選的,本發(fā)明實施例提供的數據處理方法中,數據庫為hbase數據庫時,監(jiān)測數據庫中存儲的數據是否發(fā)生更新的步驟可以包括:通過hbase數據庫的協(xié)處理器機制,實時監(jiān)測hbase數據庫中的數據是否發(fā)生更新。hbase數據庫,是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng),利用hbase技術可在廉價服務器上搭建起大規(guī)模結構化存儲集群。所以hbase數據庫已經取得了廣泛的應用。hbase數據庫的協(xié)處理器機制可以讓開發(fā)者自定義的代碼在服務器端執(zhí)行,來完成特定的一些功能。通過hbase數據庫的協(xié)處理器機制,可以實時的監(jiān)測hbase數據庫中數據的更新操作,在每一次數據進行更新時,能夠同步的檢測出發(fā)生更新的數據。當數據發(fā)生更新時,同步更新數據的版本號的步驟可以包括:當數據發(fā)生更新時,通過協(xié)處理器機制同步更新數據的版本號。當hbase數據庫的協(xié)處理器機制監(jiān)測到有數據發(fā)生了更新后,可以同步的更新數據的版本號。例如,hbase數據庫的協(xié)處理器機制在hbase數據庫的數據表格中的數據發(fā)生了更新時,可以同步的修改表格中數據對應的版本號。本發(fā)明實施例中,當使用hbase數據庫時,通過hbase數據庫的協(xié)處理器機制實現(xiàn)了對數據庫中數據更新的監(jiān)測,并在數據發(fā)生更新時,同步的更新數據的版本號。通過hbase數據庫的協(xié)處理器機制,可以使得數據處理程序與數據庫之間耦合降低,便于形成統(tǒng)一的規(guī)范。而且以hbase自身特性解決問題,降低了開發(fā)成本。可選的,本發(fā)明實施例提供的數據處理方法中,同步更新數據的版本號的步驟可以包括:第一步,根據數據的當前版本號,以及預設的版本號排序規(guī)則,獲取當前版本號的下一版本號。版本號可以有多種表示方式,例如,版本號可以是數字或者字母。當版本號是數字時,預設的版本號排序規(guī)則可以是將當前版本號累加一個預設值,從而獲取當前版本號的下一版本號。例如,數據剛寫入數據庫時,由于數據在此前不存在,所以初始的版本號可以是0,該數據每發(fā)生一次更新,版本號可以累加1,該數據第一次發(fā)生更新時,當前版本號的下一版本號為1。當版本號是字母時,預設的版本號排序規(guī)則可以是按英文字母的排列順序進行排序,并循環(huán)使用26個英文字母,從而得到當前版本號的下一版本號。例如,數據剛寫入數據庫時,初始的版本號可以是a,該數據第一次發(fā)生更新時,將當前版本號的下一版本號可以為b。第二步,將所獲取的版本號確定為數據的版本號。通過預設的版本號排序規(guī)則,根據當前的版本號獲得下一版本號后,將數據對應的版本號更新為所獲得的下一版本號,從而完成對數據版本號的更新。本發(fā)明實施例中,通過預設的版本號排序規(guī)則根據當前的版本號得到當前版本號的下一版本號,能夠使得版本號的更新更加有序,并且能夠通過版本號得知數據更新的次數,有利于數據庫中數據的管理和應用。參見圖2,圖2為本法明實施例提供的數據處理裝置的結構圖,包括:第一處理模塊201,用于對數據庫中的目標數據進行處理;對比模塊202,用于完成對目標數據的處理后,對比處理后的目標數據的版本號與當前數據庫中存儲的目標數據的版本號是否一致。其中,數據庫中存儲的各數據的版本號是各數據更新時對應更新的;第二處理模塊203,用于當目標數據的版本號與當前數據庫中存儲的目標數據的版本號不一致時,重新對目標數據進行處理。本發(fā)明實施例中,通過對數據庫中的數據添加版本號,經過處理的目標數據,和對目標數據完成處理的當前時刻的數據庫中存的目標數據進行版本號的比對,能夠及時發(fā)現(xiàn)已經完成處理的目標數據是否發(fā)生了更新,并且導致了已經處理好的目標數據過期,當版本號不一致時,則表示已經處理好的目標數據已經過期,可以對數據庫中的目標數據重新進行處理,從而免了數據錯誤,保證了數據的一致性,提高數據庫中保存的數據的準確性,并且使得在進行大批量的數據處理時能夠同時進行個別數據的更新操作,而不會導致數據發(fā)生錯誤。本發(fā)明實施例的裝置是應用上述數據處理方法的裝置,則上述數據處理方法的所有實施例均適用于該裝置,且均能達到相同或相似的有益效果。可選的,本發(fā)明實施例提供的數據處理裝置中,對比模塊202,具體用于當有多個進程同時對目標數據進行處理時,每一個進程完成對目標數據的處理之后,對比處理后的目標數據的版本號與當前數據庫中存儲的目標數據的版本號是否一致??蛇x的,本發(fā)明實施例提供的數據處理裝置中,該裝置還包括:監(jiān)測模塊(圖中未示出),用于監(jiān)測數據庫中存儲的數據是否發(fā)生更新;更新模塊(圖中未示出),用于當數據發(fā)生更新時,同步更新數據的版本號??蛇x的,本發(fā)明實施例提供的數據處理裝置中,數據庫為hbase數據庫時,監(jiān)測模塊,具體用于通過hbase數據庫的協(xié)處理器機制,實時監(jiān)測hbase數據庫中的數據是否發(fā)生更新;更新模塊,具體用于當數據發(fā)生更新時,通過協(xié)處理器機制同步更新數據的版本號??蛇x的,本發(fā)明實施例提供的數據處理裝置中,更新模塊,具體用于根據數據的當前版本號,以及預設的版本號排序規(guī)則,獲取當前版本號的下一版本號。將所獲取的版本號確定為數據的版本號。需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。本說明書中的各個實施例均采用相關的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內。當前第1頁12
當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1