本發明涉及計算機領域,具體而言,涉及一種執行數據恢復操作的方法及裝置。
背景技術:
::開放數據處理服務(opendataprocessingservice,簡稱為odps)由阿里云自主研發的分布式海量數據處理平臺,其提供了豐富的數據處理功能和靈活的編程框架,應用于數據分析、挖掘、商業智能等領域。odps采用抽象的作業處理框架將不同場景的各種計算任務統一在同一個平臺之上,共享安全、存儲、數據管理和資源調度,為來自不同用戶需求的各種數據處理任務提供統一的編程接口和界面。元數據是指描述數據屬性的信息,其用來支持如指示存儲位置、歷史數據、資源查找、文件記錄等功能。換言之,元數據(metadata)是描述其它數據的數據(dataaboutotherdata),或者說是用于提供某種資源的有關信息的結構數據(structureddata)其使用目的在于:識別資源,評價資源,追蹤資源在使用過程中的變化,實現簡單高效地管理大量網絡化數據以及實現信息資源的有效發現、查找、一體化組織和對使用資源的有效管理。元數據的基本特點主要有:a)元數據一經建立,便可共享。元數據的結構和完整性依賴于信息資源的價值和使用環境;元數據的開發與利用環境往往是一個變化的分布式環境;任何一種格式都不可能完全滿足不同團體的不同需要;b)元數據首先是一種編碼體系。元數據是用來描述數字化信息資源,特別是網絡信息資源的編碼體系,這導致了元數據和傳統數據編碼體系的根本區別;元數據的最為重要的特征和功能是為數字化信息資源建立一種機器可理解框架。元數據體系構建了電子政務的邏輯框架和基本模型,從而決定了電子政務的功能特征、運行模式和系統運行的總體性能。電子政務的運作都基于元數據來實現,其主要作用有:描述功能、整合功能、控制功能和代理功能。由于元數據也是數據,因此可以用類似數據的方法在數據庫中進行存儲和獲取。如果提供數據元的組織同時提供描述數據元的元數據,將會使數據元的使用變得準確而高效。用戶在使用數據時可以首先查看其元數據以便能夠獲取自己所需的信息。目前,在分布式數據處理平臺系統中,已經存在一種大規模或超大規模數據集合場景下的數據版本化系統,用戶可以通過這個系統輕易地實現數據恢復、時間點還原、更改撤銷以及數據重做等操作。圖1是根據相關技術提供的分布式數據處理平臺系統生成數據版本管理記錄過程的示意圖。如圖1所示,該系統在數據恢復過程中,如果采用鏈式的數據恢復方式,那么彼此的數據恢復操作之間便會存在依賴關系,換言之,如果用戶需要恢復的版本比較舊時,則必須根據當前的變更日志(changelog,其是指對數據操作的變更日志,其可用于數據恢復)記錄,依次回滾到指定的版本。例如:表1是相關技術中采用鏈式的數據恢復方式進行數據恢復的示例。如表1所示:表1以上述表1為例,相關技術中所采用的數據恢復方式通常是基于分布式數據庫中的changelog機制來完成的,其具體實施過程如下:第一步.用戶通過具有日志記錄查詢功能的指令查看到當前記錄的表(table)的數據版本。第二步.若用戶指定其中特定的changelogid(1452216975272855351),并使用具有日志記錄回滾功能的指令,則需要啟動數據恢復機制,恢復到指定版本。第三步.掃描table的版本記錄,獲取到從當前的狀態到指定版本的所有操作記錄,倒序的依次生成恢復計劃。如表1所示,當用戶指定恢復到1452216975272855351這個數據版本時,需要從1452407775639627693開始依次逆序地恢復每個版本,直到恢復到1452216975272855351這個版本。第四步.按照已經生成的恢復計劃開始恢復,其實現方式即為按照順序操作數據和元數據的處理邏輯。目前的數據版本以及恢復機制,其實質上都是一次作業,會操作數據和元數據,這同用戶的作業以及內部的跨集群復制作業的最后處理從原理上來看都是一致的。然而,由于現有的恢復機制需要從當前狀態依次倒序恢復,直至恢復到指定版本。上述示例僅是簡單地列舉了其中少量的數據版本,如果線上的表操作執行過于頻繁,可能會出現從1452407775639627693這個數據版本到1452216975272855351,中間的版本狀態成千上萬,也就是在恢復到一個指定版本時,可能中間過程需要依次處理數千次的操作。目前,相關技術中所能夠提供的海量數據處理平臺(例如:hive等數據倉庫)不具備數據恢復的管理模塊,而傳統的數據庫(例如:mysql)所采用的解決方案是獲取每次操作的差異數據進行保存,以便于在執行后續恢復操作的過程中能夠按照存儲的差異數據進行恢復,這在海量數據處理系統中,帶來了很大的依賴性,恢復數據發雜性高,而且風險高。綜上所述,針對目前相關技術中所能夠提供的數據恢復方式,還是很有可能會帶來以下亟待解決的技術難題:數據恢復的復雜度大大提升,其中涉及的數據和元數據操作較多,由此會帶來數據不一致的風險以及造成數據恢復的失敗率提升,進而直接導致數據恢復失敗,甚至是由于發生數據和元數據不匹配的情況而造成數據丟失;另外,此種依次倒序的恢復方式還會極大地增加所需恢復時間的開銷。由此可見,依賴版本依次逆序恢復的數據恢復方式,不僅能夠造成恢復時間的大幅提升,而且,該恢復數據的行為由于需要通過對數據和元數據的一系列操作來完成,由此加大了用戶操作的復雜度,此外,還有可能增加系統內部復制等機制的沖突概率,進而加大用戶操作異常或者恢復異常可能性,帶來數據恢復失敗風險。針對上述的問題,目前尚未提出有效的解決方案。技術實現要素:本發明實施例提供了一種執行數據恢復操作的方法及裝置,以至少解決相關技術中的所提到的分布式數據處理平臺系統恢復機制需要從當前最新的變更日志經過多個中間變更日志依次回滾才能恢復至指定的目標變更日志,操作較為繁瑣且易造成數據丟失的技術問題。根據本發明實施例的一個方面,提供了一種執行數據恢復操作的方法,包括:獲取待恢復到的第一變更日志的標識信息;根據標識信息查找第一變更日志;通過最新記錄的第二變更日志中記錄的用戶數據信息與元數據信息以及第一變更日志中記錄的用戶數據信息與元數據信息將第二變更日志恢復至第一變更日志,其中,在第二變更日志與第一變更日志之間存在多條待撤銷的變更日志。可選地,通過第二變更日志中記錄的用戶數據信息與元數據信息以及第一變更日志中記錄的用戶數據信息與元數據信息將第二變更日志恢復至第一變更日志包括:從第一變更日志中解析出第一原始用戶數據和第一原始元數據;從第二變更日志中解析出第二原始用戶數據和第二原始元數據,并將第二原始用戶數據恢復至第一原始用戶數據以及將第二原始元數據恢復至第一原始元數據。可選地,通過第二變更日志中記錄的用戶數據信息與元數據信息以及第一變更日志中記錄的用戶數據信息與元數據信息將第二變更日志恢復至第一變更日志包括:從第二變更日志中解析出已修改用戶數據和已修改元數據,并將已修改用戶數據恢復至第一原始用戶數據以及將已修改元數據恢復至第一原始元數據,其中,已修改用戶數 據和已修改元數據是按照第二變更日志中記錄的修改對象的操作類型對第二變更日志中記錄的原始用戶數據和原始元數據進行修改后得到的。可選地,根據標識信息查找第一變更日志包括以下之一:通過在變更日志查詢命令中添加列表名稱獲取變更日志列表信息或者通過在變更日志查詢命令中添加分區名稱獲取變更日志分區信息,并根據標識信息從變更日志列表信息或者變更日志分區信息中查找第一變更日志;通過在變更日志查詢命令中添加列表名稱和標識信息或者通過在變更日志查詢命令中添加分區名稱和標識信息,查找第一變更日志。可選地,獲取第一變更日志的標識信息包括:接收觸發數據恢復操作的控制指令,其中,控制指令中攜帶有標識信息;對控制指令執行鑒權操作,并在鑒權成功的情況下,從控制指令中獲取標識信息。可選地,在通過第二變更日志中記錄的用戶數據信息與元數據信息以及第一變更日志中記錄的用戶數據信息與元數據信息將第二變更日志恢復至第一變更日志之后,還包括:返回與控制指令對應的提示信息,其中,提示信息用于表示第二變更日志已經成功恢復至第一變更日志。根據本發明實施例的另一方面,還提供了一種執行數據恢復操作的裝置,包括:獲取模塊,用于獲取待恢復到的第一變更日志的標識信息;查找模塊,用于根據標識信息查找第一變更日志;恢復模塊,用于通過最新記錄的第二變更日志中記錄的用戶數據信息與元數據信息以及第一變更日志中記錄的用戶數據信息與元數據信息將第二變更日志恢復至第一變更日志,其中,在第二變更日志與第一變更日志之間存在多條待撤銷的變更日志。可選地,恢復模塊包括:解析單元,用于從第一變更日志中解析出第一原始用戶數據和第一原始元數據;恢復單元,用于從第二變更日志中解析出第二原始用戶數據和第二原始元數據,并將第二原始用戶數據恢復至第一原始用戶數據以及將第二原始元數據恢復至第一原始元數據。可選地,恢復模塊包括:解析單元,用于從第一變更日志中解析出第一原始用戶數據和第一原始元數據;恢復單元,用于從第二變更日志中解析出已修改用戶數據和已修改元數據,并將已修改用戶數據恢復至第一原始用戶數據以及將已修改元數據恢復至第一原始元數據,其中,已修改用戶數據和已修改元數據是按照第二變更日志中記錄的修改對象的操作類型對第二變更日志中記錄的原始用戶數據和原始元數據進行修改后得到的。可選地,查找模塊,用于通過在變更日志查詢命令中添加列表名稱獲取變更日志 列表信息或者通過在變更日志查詢命令中添加分區名稱獲取變更日志分區信息,并根據標識信息從變更日志列表信息或者變更日志分區信息中查找第一變更日志;或者,通過在變更日志查詢命令中添加列表名稱和標識信息或者通過在變更日志查詢命令中添加分區名稱和標識信息,查找第一變更日志。可選地,獲取模塊包括:接收單元,用于接收觸發數據恢復操作的控制指令,其中,控制指令中攜帶有標識信息;獲取單元,用于對控制指令執行鑒權操作,并在鑒權成功的情況下,從控制指令中獲取標識信息。可選地,上述裝置還包括:反饋模塊,用于返回與控制指令對應的提示信息,其中,提示信息用于表示第二變更日志已經成功恢復至第一變更日志。在本發明實施例中,采用從當前最新記錄的變更日志僅通過執行一次恢復操作便恢復至指定的目標變更日志的方式,通過最新記錄的變更日志中記錄的用戶數據信息與元數據信息以及目標變更日志中記錄的用戶數據信息與元數據信息將最新記錄的變更日志直接恢復至目標變更日志而省略了對最新記錄的變更日志與目標變更日志之間存在多條待撤銷的變更日志的依次回滾的處理過程,從而實現了降低分布式數據庫恢復機制的操作復雜度,提高分布式數據庫恢復機制的成功率以及減少分布式數據庫恢復機制的時間開銷的技術效果,進而解決了相關技術中的所提到的分布式數據處理平臺系統恢復機制需要從當前最新的變更日志經過多個中間變更日志依次回滾才能恢復至指定的目標變更日志,操作較為繁瑣且易造成數據丟失的技術問題。附圖說明此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:圖1是根據相關技術提供的分布式數據處理平臺系統生成數據版本管理記錄過程的示意圖;圖2是本發明實施例的一種執行數據恢復操作的方法的計算機終端的硬件結構框圖;圖3是根據本發明實施例的執行數據恢復操作的方法的流程圖;圖4是根據本發明優選實施例的采用不同方式查詢日志變更記錄的對比示意圖;圖5是根據本發明實施例的執行數據恢復操作的裝置的結構框圖;圖6是根據本發明優選實施例的執行數據恢復操作的裝置的結構框圖;圖7是根據本發明實施例的一種計算機終端的結構框圖。具體實施方式為了使本
技術領域:
:的人員更好地理解本發明方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分的實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本發明保護的范圍。需要說明的是,本發明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數據在適當情況下可以互換,以便這里描述的本發明的實施例能夠以除了在這里圖示或描述的那些以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。實施例1根據本發明實施例,還提供了一種執行數據恢復操作的方法的方法實施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執行指令的計算機系統中執行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執行所示出或描述的步驟。本申請實施例一所提供的方法實施例可以在移動終端、計算機終端或者類似的運算裝置中執行。以運行在計算機終端上為例,圖2是本發明實施例的一種執行數據恢復操作的方法的計算機終端的硬件結構框圖。如圖2所示,計算機終端10可以包括一個或多個(圖中僅示出一個)處理器102(處理器102可以包括但不限于微處理器mcu或可編程邏輯器件fpga等的處理裝置)、用于存儲數據的存儲器104、以及用于通信功能的傳輸裝置106。本領域普通技術人員可以理解,圖2所示的結構僅為示意,其并不對上述電子裝置的結構造成限定。例如,計算機終端10還可包括比圖2中所示更多或者更少的組件,或者具有與圖2所示不同的配置。存儲器104可用于存儲應用軟件的軟件程序以及模塊,如本發明實施例中的執行數據恢復操作的方法對應的程序指令/模塊,處理器102通過運行存儲在存儲器104內的軟件程序以及模塊,從而執行各種功能應用以及數據處理,即實現上述的執行數據恢復操作的方法。存儲器104可包括高速隨機存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態存儲器。在一些實例中,存儲器104可進一步包括相對于處理器102遠程設置的存儲器,這些遠程存儲器可以通過網絡連接至計算機終端10。上述網絡的實例包括但不限于互聯網、企業內部網、局域網、移動通信網及其組合。傳輸裝置106用于經由一個網絡接收或者發送數據。上述的網絡具體實例可包括計算機終端10的通信供應商提供的無線網絡。在一個實例中,傳輸裝置106包括一個網絡適配器(networkinterfacecontroller,簡稱為nic),其可通過基站與其他網絡設備相連從而可與互聯網進行通訊。在一個實例中,傳輸裝置106可以為射頻(radiofrequency,簡稱為rf)模塊,其用于通過無線方式與互聯網進行通訊。在上述運行環境下,本申請提供了如圖3所示的執行數據恢復操作的方法。圖3是根據本發明實施例的執行數據恢復操作的方法的流程圖。如圖3所示,該方法可以包括以下處理步驟:步驟s302:獲取待恢復到的第一變更日志的標識信息;步驟s304:根據標識信息查找第一變更日志;步驟s306:通過最新記錄的第二變更日志中記錄的用戶數據信息與元數據信息以及第一變更日志中記錄的用戶數據信息與元數據信息將第二變更日志恢復至第一變更日志,其中,在第二變更日志與第一變更日志之間存在多條待撤銷的變更日志。通過本發明實施例所提供的技術方案,采用從當前最新記錄的變更日志(相當于上述第二變更日志)僅通過執行一次恢復操作便恢復至指定的目標變更日志(相當于上述第一變更日志)的方式,通過最新記錄的變更日志中記錄的用戶數據信息與元數據信息以及目標變更日志中記錄的用戶數據信息與元數據信息將最新記錄的變更日志直接恢復至目標變更日志而省略了對最新記錄的變更日志與目標變更日志之間存在多條待撤銷的變更日志的依次回滾的處理過程,從而實現了降低分布式數據庫恢復機制的操作復雜度,提高分布式數據庫恢復機制的成功率的技術效果,進而解決了相關技術中的所提到的分布式數據處理平臺系統恢復機制需要從當前最新的變更日志經過多個中間變更日志依次回滾才能恢復至指定的目標變更日志,操作較為繁瑣且易造成數據丟失的技術問題。在使用分布式數據處理平臺系統執行數據處理的過程中往往會遇到因誤操作而引起的數據被誤刪除或者被誤覆蓋,為此,分布式數據處理平臺系統的數據版本管理恢復模塊(例如:changelogs)提供了一種海量數據版本化的機制和數據恢復的工具,即,可以使用數據版本管理恢復模塊將海量數據撤銷或者恢復至數據的任意歷史版本、查看每個版本修改的內容。因此,通過數據版本管理恢復模塊可以實現數據在被誤刪除或者被誤覆蓋之后能夠及時得到恢復,以確保數據維護的安全性。通過數據版本管理恢復模塊的保存時間可以確定數據版本管理恢復模塊功能是否開啟,例如:當數據版本管理恢復模塊的保存時間小于預設時長時,則表示數據版本管理恢復模塊功能關閉,不記錄數據版本管理恢復模塊;當數據版本管理恢復模塊的保存時間大于或等于預設時長時,則表示當前數據版本管理恢復模塊功能開啟,會自動記錄數據版本管理恢復模塊。在數據版本管理恢復模塊的保存時間范圍內,已經執行的任意修改操作都可以得到即時恢復。數據版本管理恢復模塊中的每條變更日志完整地記錄了修改表或分區的操作類型、用戶、查詢、環境信息、原始的元數據和數據全量快照以及修改后的元數據和數據全量快照,用戶可以利用數據版本管理恢復模塊執行回滾或者數據恢復等操作。可選地,在步驟s306中,通過第二變更日志中記錄的用戶數據信息與元數據信息以及第一變更日志中記錄的用戶數據信息與元數據信息將第二變更日志恢復至第一變更日志可以包括以下執行步驟:步驟s3061:從第一變更日志中解析出第一原始用戶數據和第一原始元數據;考慮到第一變更日志中記錄的用戶數據信息包括:在對處理對象(分區或者列表)執行與第一變更日志中包含的操作類型對應的修改操作前的第一原始用戶數據和第一原始元數據以及在執行與第一變更日志中包含的操作類型對應的修改操作后的已修改用戶數據和已修改元數據。而如果需要將當前最新記錄的變更日志恢復到用戶指定的變更日志,那么最終結果便是需要將當前最新記錄的變更日志中用戶數據信息和元數據信息恢復至在對處理對象(分區或者列表)執行與第一變更日志中包含的操作類型對應的修改操作前的第一原始用戶數據和第一原始元數據。因此,需要從第一變更日志中解析(或提取)出第一原始用戶數據和第一原始元數據。即,待恢復到的目標對象為第一原始用戶數據和第一原始元數據。步驟s3062:從第二變更日志中解析出第二原始用戶數據和第二原始元數據,并將第二原始用戶數據恢復至第一原始用戶數據以及將第二原始元數據恢復至第一原始元數據;或者,從第二變更日志中解析出已修改用戶數據和已修改元數據,并將已修 改用戶數據恢復至第一原始用戶數據以及將已修改元數據恢復至第一原始元數據,其中,已修改用戶數據和已修改元數據是按照第二變更日志中記錄的修改對象的操作類型對第二變更日志中記錄的原始用戶數據和原始元數據進行修改后得到的。相對于上述待恢復到的目標對象而言,被恢復的源對象既可以是在對處理對象(分區或者列表)執行與第二變更日志中包含的操作類型對應的修改操作前的第二原始用戶數據和第二原始元數據,也可以是在執行與第二變更日志中包含的操作類型對應的修改操作后的已修改用戶數據和已修改元數據,進而在確定出待恢復到的目標對象以及被恢復的源對象的基礎上,通過僅執行一次數據恢復操作,便可以直接將第二原始用戶數據恢復至第一原始用戶數據以及將第二原始元數據恢復至第一原始元數據;或者,將已修改用戶數據恢復至第一原始用戶數據以及將已修改元數據恢復至第一原始元數據。例如:用戶在2016-01-0809:36:15在支付寶上執行第一次操作,創建一個個人賬戶,此時將產生第一個變更記錄,其用戶數據信息主要包括:user,2016-01-0809:36:15,新建賬戶內的具體金額(0元),相應的元數據信息則主要包括:用戶名、創建時間以及賬戶余額等描述用戶數據屬性的信息。由于該賬戶為新建賬戶,因此,該新建賬戶的余額為0元。如果用戶在2016-01-0809:57:23執行第二次操作,向支付寶的新建賬戶存入200元人民幣,那么此時將產生第二個變更記錄,其用戶數據信息主要包括:user,2016-01-0809:57:23,新建賬戶內的具體金額(200元)以及人民幣,相應的元數據信息則主要包括:用戶名、創建時間、賬戶余額以及幣種等描述用戶數據屬性的信息。如果用戶在2016-01-0909:52:20執行第三次操作,從支付寶的新建賬戶提取50元人民幣,那么此時將產生第三個變更記錄,其用戶數據信息主要包括:user,2016-01-0909:52:20,新建賬戶內的具體金額(150元)以及人民幣,相應的元數據信息則主要包括:用戶名、創建時間、賬戶余額以及幣種等描述用戶數據屬性的信息。通過此次操作,當前變更記錄可以包括:對用戶賬戶存儲記錄表進行修改操作前的原始用戶數據(user,2016-01-0809:57:23,200元以及人民幣)以及原始元數據(用戶名、創建時間、賬戶余額以及幣種);對用戶賬戶存儲記錄表進行修改操作后的已修改用戶數據(user,2016-01-0909:52:20,150元以及人民幣)以及已修改元數據(用戶名、創建時間、賬戶余額以及幣種)。在中間經歷過n-1次操作后,如果用戶在2016-01-1014:32:28執行第n次操作,需要將賬戶內的100元人民幣轉成日元,那么此時將產生第n個變更記錄,其元數據信息在現有的用戶名、創建時間、賬戶余額以及幣種等屬性信息的基礎上還可能需要 增加匯率屬性,相應地,用戶數據信息在幣種屬性下除了人民幣以外又新增了日元數據以及匯率值(1人民幣=17.4825日元)。通過此次操作,當前變更記錄可以包括:對用戶賬戶存儲記錄表進行修改操作前的原始用戶數據(user,2016-01-1009:40:50,200元以及人民幣)以及原始元數據(用戶名、創建時間、賬戶余額以及幣種);對用戶賬戶存儲記錄表進行修改操作后的已修改用戶數據(user,2016-01-1014:32:28,200元,人民幣以及日元)以及已修改元數據(用戶名、創建時間、賬戶余額、幣種以及匯率)。如果用戶需要將第n個變更記錄恢復至第三個變更記錄,那么首先,需要從第三個變更記錄中提取對用戶賬戶存儲記錄表進行修改操作前的原始用戶數據(user,2016-01-0809:57:23,200元以及人民幣)以及原始元數據(用戶名、創建時間、賬戶余額以及幣種)。其次,再從第n個變更記錄中提取對用戶賬戶存儲記錄表進行修改操作前的原始用戶數據(user,2016-01-1009:40:50,200元以及人民幣)以及原始元數據(用戶名、創建時間、賬戶余額以及幣種);或者,對用戶賬戶存儲記錄表進行修改操作后的已修改用戶數據(user,2016-01-1014:32:28,200元,人民幣以及日元)以及已修改元數據(用戶名、創建時間、賬戶余額、幣種以及匯率)。然后,既可以將原始用戶數據(user,2016-01-1009:40:50,200元以及人民幣)以及原始元數據(用戶名、創建時間、賬戶余額以及幣種)恢復至原始用戶數據(user,2016-01-0809:57:23,200元以及人民幣)以及原始元數據(用戶名、創建時間、賬戶余額以及幣種),也可以將已修改用戶數據(user,2016-01-1014:32:28,200元,人民幣以及日元)以及已修改元數據(用戶名、創建時間、賬戶余額、幣種以及匯率)恢復至原始用戶數據(user,2016-01-0809:57:23,200元以及人民幣)以及原始元數據(用戶名、創建時間、賬戶余額以及幣種)。可選地,在步驟s304中,根據標識信息查找第一變更日志可以包括以下方式之一:方式一、通過在變更日志查詢命令中添加列表名稱獲取變更日志列表信息或者通過在變更日志查詢命令中添加分區名稱獲取變更日志分區信息,并根據標識信息從變更日志列表信息或者變更日志分區信息中查找第一變更日志;作為分布式數據處理平臺系統用戶可以通過showchangelogsfortable<表名>[partition(<分區名>)]語法結構查詢特定表或分區的數據版本管理恢復模塊。然后,再根據logid從特定表或分區的數據版本管理恢復模塊查詢到對應的變更記錄。方式二、通過在變更日志查詢命令中添加列表名稱和標識信息或者通過在變更日志查詢命令中添加分區名稱和標識信息,查找第一變更日志。作為分布式數據處理平臺系統用戶也可以通過showchangelogsfortable<表名>[partition(<分區名>)]<logid>語法直接查詢到特定表或分區的變更記錄。其中,上述<logid>是每一條數據版本管理恢復模塊的唯一id,其本質上是一個不會重復的精確到納秒的時間戳。在showchangelogs列表中可以看到,當因為誤操作造成數據被誤刪除或者被誤覆蓋發生異常時,便可以通過上述兩條命令查找到特定的變更記錄,以便于用戶及時發現問題,恢復數據版本。可選地,在步驟s302中,獲取第一變更日志的標識信息可以包括以下執行步驟:s3021:接收觸發數據恢復操作的控制指令,其中,控制指令中攜帶有標識信息;s3022:對控制指令執行鑒權操作,并在鑒權成功的情況下,從控制指令中獲取標識信息。在優選實施例中,用戶可以指定需要恢復到的logid,并可以使用undo語法結構(即undotable<表名>[partition(<分區名>)]to<logid>)啟動數據恢復機制,僅通過執行一次數據恢復操作直接將最新記錄的變更日志恢復至需要保留的變更日志。因此,無論是分區或列表數據被誤刪除或者被誤覆蓋,都可以使用上述命令進行恢復。當然,在用戶指定需要恢復到的logid并啟動數據恢復機制后,需要預先對用戶進行分布式數據處理平臺系統鑒權,判斷用戶是否具有對變更日志執行恢復操作的權限,如果用戶具有對變更日志執行恢復操作的權限,則從用戶提交的觸發數據恢復機制的命令中獲取logid;而如果用戶不具有對變更日志執行恢復操作的權限,則直接向用戶發出告警或拒絕用戶對數據版本管理恢復模塊進行訪問。可選地,在通過第二變更日志中記錄的用戶數據信息與元數據信息以及第一變更日志中記錄的用戶數據信息與元數據信息將第二變更日志恢復至第一變更日志之后,還包括:返回與控制指令對應的提示信息,其中,提示信息用于表示第二變更日志已經成功恢復至第一變更日志。如果在用戶指定需要恢復到的logid,并使用undo語法結構(即undotable<表名>[partition(<分區名>)]to<logid>)啟動數據恢復機制,然后僅通過執行一次數據恢復操作便成功將最新記錄的變更日志恢復至需要保留的變更日志后,可以向用戶返回數據恢復操作執行成功,最新記錄的變更日志已經恢復至用戶指定的目標變更日志的提示信息,進而結束整個數據恢復流程。為了更加突出本發明實施例所提供的技術方案與現有解決方案的區別,將結合圖3所示的示例作進一步的比對。圖4是根據本發明優選實施例的采用不同方式查詢日 志變更記錄的對比示意圖。如圖4所示,假設當前最新存儲的日志記錄表中包括標識信息依次為:1452216975272855351,1452216989166724482,1452217464192642287,…,1452407625046628818,1452407726812625638,1452407775639627693。假設當前需要恢復至標識信息為1452216989166724482這個版本的日志記錄,那么按照相關技術中提供的恢復方案:1452407775639627693→1452407726812625638→1452407625046628818→…→1452217464192642287→1452216989166724482;即按照變更記錄的記錄順序依次回滾至1452216989166724482。與之相比,采用本發明實施例所提供的技術方案:1452407775639627693→1452216989166724482;即從當前最新記錄的1452407775639627693直接恢復至指定版本1452216989166724482。需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明并不受所描述的動作順序的限制,因為依據本發明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優選實施例,所涉及的動作和模塊并不一定是本發明所必須的。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到根據上述實施例的執行數據恢復操作的方法可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,或者網絡設備等)執行本發明各個實施例所述的方法。實施例2根據本發明實施例,還提供了一種用于實施上述執行數據恢復操作的裝置,圖5是根據本發明實施例的執行數據恢復操作的裝置的結構框圖。如圖5所示,該裝置包 括:獲取模塊10,用于獲取待恢復到的第一變更日志的標識信息;查找模塊20,用于根據標識信息查找第一變更日志;恢復模塊30,用于通過最新記錄的第二變更日志中記錄的用戶數據信息與元數據信息以及第一變更日志中記錄的用戶數據信息與元數據信息將第二變更日志恢復至第一變更日志,其中,在第二變更日志與第一變更日志之間存在多條待撤銷的變更日志。可選地,圖6是根據本發明優選實施例的執行數據恢復操作的裝置的結構框圖。如圖6所示,恢復模塊30包括:解析單元300,用于從第一變更日志中解析出第一原始用戶數據和第一原始元數據;恢復單元302,用于從第二變更日志中解析出第二原始用戶數據和第二原始元數據,并將第二原始用戶數據恢復至第一原始用戶數據以及將第二原始元數據恢復至第一原始元數據。可選地,解析單元300,用于從第一變更日志中解析出第一原始用戶數據和第一原始元數據;恢復單元302,用于從第二變更日志中解析出已修改用戶數據和已修改元數據,并將已修改用戶數據恢復至第一原始用戶數據以及將已修改元數據恢復至第一原始元數據,其中,已修改用戶數據和已修改元數據是按照第二變更日志中記錄的修改對象的操作類型對第二變更日志中記錄的原始用戶數據和原始元數據進行修改后得到的。可選地,查找模塊20,用于通過在變更日志查詢命令中添加列表名稱獲取變更日志列表信息或者通過在變更日志查詢命令中添加分區名稱獲取變更日志分區信息,并根據標識信息從變更日志列表信息或者變更日志分區信息中查找第一變更日志;或者,通過在變更日志查詢命令中添加列表名稱和標識信息或者通過在變更日志查詢命令中添加分區名稱和標識信息,查找第一變更日志。可選地,如圖6所示,獲取模塊10可以包括:接收單元100,用于接收觸發數據恢復操作的控制指令,其中,控制指令中攜帶有標識信息;獲取單元102,用于對控制指令執行鑒權操作,并在鑒權成功的情況下,從控制指令中獲取標識信息。可選地,如圖6所示,上述裝置還可以包括:反饋模塊40,用于返回與控制指令對應的提示信息,其中,提示信息用于表示第二變更日志已經成功恢復至第一變更日志。實施例3本發明的實施例可以提供一種計算機終端,該計算機終端可以是計算機終端群中的任意一個計算機終端設備。可選地,在本實施例中,上述計算機終端也可以替換為 移動終端等終端設備。可選地,在本實施例中,上述計算機終端可以位于計算機網絡的多個網絡設備中的至少一個網絡設備。可選地,圖7是根據本發明實施例的一種計算機終端的結構框圖。如圖7所示,該計算機終端可以包括:一個或多個(圖中僅示出一個)處理器以及存儲器。其中,存儲器可用于存儲軟件程序以及模塊,如本發明實施例中的執行數據恢復操作方法和裝置對應的程序指令/模塊,處理器通過運行存儲在存儲器內的軟件程序以及模塊,從而執行各種功能應用以及數據處理,即實現上述的執行數據恢復操作的方法。存儲器可包括高速隨機存儲器,還可以包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態存儲器。在一些實例中,存儲器可進一步包括相對于處理器遠程設置的存儲器,這些遠程存儲器可以通過網絡連接至終端。上述網絡的實例包括但不限于互聯網、企業內部網、局域網、移動通信網及其組合。處理器可以通過傳輸裝置調用存儲器存儲的信息及應用程序,以執行下述步驟:s1,獲取待恢復到的第一變更日志的標識信息;s2,根據標識信息查找第一變更日志;s3,通過最新記錄的第二變更日志中記錄的用戶數據信息與元數據信息以及第一變更日志中記錄的用戶數據信息與元數據信息將第二變更日志恢復至第一變更日志,其中,在第二變更日志與第一變更日志之間存在多條待撤銷的變更日志。可選的,上述處理器還可以執行如下步驟的程序代碼:從第一變更日志中解析出第一原始用戶數據和第一原始元數據;從第二變更日志中解析出第二原始用戶數據和第二原始元數據,并將第二原始用戶數據恢復至第一原始用戶數據以及將第二原始元數據恢復至第一原始元數據。可選的,上述處理器還可以執行如下步驟的程序代碼:從第一變更日志中解析出第一原始用戶數據和第一原始元數據;從第二變更日志中解析出已修改用戶數據和已修改元數據,并將已修改用戶數據恢復至第一原始用戶數據以及將已修改元數據恢復至第一原始元數據,其中,已修改用戶數據和已修改元數據是按照第二變更日志中記錄的修改對象的操作類型對第二變更日志中記錄的原始用戶數據和原始元數據進行修改后得到的。可選的,上述處理器還可以執行如下步驟的程序代碼:通過在變更日志查詢命令中添加列表名稱獲取變更日志列表信息或者通過在變更日志查詢命令中添加分區名稱 獲取變更日志分區信息,并根據標識信息從變更日志列表信息或者變更日志分區信息中查找第一變更日志;或者,通過在變更日志查詢命令中添加列表名稱和標識信息或者通過在變更日志查詢命令中添加分區名稱和標識信息,查找第一變更日志。可選的,上述處理器還可以執行如下步驟的程序代碼:接收觸發數據恢復操作的控制指令,其中,控制指令中攜帶有標識信息;對控制指令執行鑒權操作,并在鑒權成功的情況下,從控制指令中獲取標識信息。可選的,上述處理器還可以執行如下步驟的程序代碼:返回與控制指令對應的提示信息,其中,提示信息用于表示第二變更日志已經成功恢復至第一變更日志。采用本發明實施例,采用從當前最新記錄的變更日志僅通過執行一次恢復操作便恢復至指定的目標變更日志的方式,通過最新記錄的變更日志中記錄的用戶數據信息與元數據信息以及目標變更日志中記錄的用戶數據信息與元數據信息將最新記錄的變更日志直接恢復至目標變更日志而省略了對最新記錄的變更日志與目標變更日志之間存在多條待撤銷的變更日志的依次回滾的處理過程,從而實現了降低分布式數據庫恢復機制的操作復雜度,提高分布式數據庫恢復機制的成功率以及減少分布式數據庫恢復機制的時間開銷的技術效果,進而解決了相關技術中的所提到的分布式數據處理平臺系統恢復機制需要從當前最新的變更日志經過多個中間變更日志依次回滾才能恢復至指定的目標變更日志,操作較為繁瑣且易造成數據丟失的技術問題。本領域普通技術人員可以理解,圖7所示的結構僅為示意,計算機終端也可以是智能手機(如android手機、ios手機等)、平板電腦、掌聲電腦以及移動互聯網設備(mobileinternetdevices,mid)、pad等終端設備。圖7其并不對上述電子裝置的結構造成限定。例如,計算機終端還可包括比圖7中所示更多或者更少的組件(如網絡接口、顯示裝置等),或者具有與圖7所示不同的配置。本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令終端設備相關的硬件來完成,該程序可以存儲于一計算機可讀存儲介質中,存儲介質可以包括:閃存盤、只讀存儲器(read-onlymemory,rom)、隨機存取器(randomaccessmemory,ram)、磁盤或光盤等。實施例4本發明的實施例還提供了一種存儲介質。可選地,在本實施例中,上述存儲介質可以用于保存上述實施例一所提供的執行數據恢復操作的方法所執行的程序代碼。可選地,在本實施例中,上述存儲介質可以位于計算機網絡中計算機終端群中的任意一個計算機終端中,或者位于移動終端群中的任意一個移動終端中。可選地,在本實施例中,存儲介質被設置為存儲用于執行以下步驟的程序代碼:s1,獲取待恢復到的第一變更日志的標識信息;s2,根據標識信息查找第一變更日志;s3,通過最新記錄的第二變更日志中記錄的用戶數據信息與元數據信息以及第一變更日志中記錄的用戶數據信息與元數據信息將第二變更日志恢復至第一變更日志,其中,在第二變更日志與第一變更日志之間存在多條待撤銷的變更日志。可選地,在本實施例中,存儲介質還被設置為存儲用于執行以下步驟的程序代碼:從第一變更日志中解析出第一原始用戶數據和第一原始元數據;從第二變更日志中解析出第二原始用戶數據和第二原始元數據,并將第二原始用戶數據恢復至第一原始用戶數據以及將第二原始元數據恢復至第一原始元數據。可選地,在本實施例中,存儲介質還被設置為存儲用于執行以下步驟的程序代碼:從第一變更日志中解析出第一原始用戶數據和第一原始元數據;從第二變更日志中解析出已修改用戶數據和已修改元數據,并將已修改用戶數據恢復至第一原始用戶數據以及將已修改元數據恢復至第一原始元數據,其中,已修改用戶數據和已修改元數據是按照第二變更日志中記錄的修改對象的操作類型對第二變更日志中記錄的原始用戶數據和原始元數據進行修改后得到的。可選地,在本實施例中,存儲介質還被設置為存儲用于執行以下步驟的程序代碼:通過在變更日志查詢命令中添加列表名稱獲取變更日志列表信息或者通過在變更日志查詢命令中添加分區名稱獲取變更日志分區信息,并根據標識信息從變更日志列表信息或者變更日志分區信息中查找第一變更日志;或者,通過在變更日志查詢命令中添加列表名稱和標識信息或者通過在變更日志查詢命令中添加分區名稱和標識信息,查找第一變更日志。可選地,在本實施例中,存儲介質還被設置為存儲用于執行以下步驟的程序代碼:接收觸發數據恢復操作的控制指令,其中,控制指令中攜帶有標識信息;對控制指令執行鑒權操作,并在鑒權成功的情況下,從控制指令中獲取標識信息。可選地,在本實施例中,存儲介質還被設置為存儲用于執行以下步驟的程序代碼:返回與控制指令對應的提示信息,其中,提示信息用于表示第二變更日志已經成功恢復至第一變更日志。上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。在本發明的上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。在本申請所提供的幾個實施例中,應該理解到,所揭露的技術內容,可通過其它的方式實現。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。所述集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可為個人計算機、服務器或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質。以上所述僅是本發明的優選實施方式,應當指出,對于本
技術領域:
:的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。當前第1頁12當前第1頁12