<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

一種數據檢測方法和裝置與流程

文檔序號:11154804閱讀:357來源:國知局
一種數據檢測方法和裝置與制造工藝

本申請涉及數據處理技術領域,特別是涉及一種數據檢測方法和一種數據檢測裝置。



背景技術:

在各種web應用中,會有很多日志文件不斷產生,比如頁面上用于記錄用戶行為的埋點日志等。這些日志分布在很多臺服務器上,可以多達10W臺服務器,每臺機器上又有多個日志文件。業務上需要將這些日志文件同步到數據倉庫系統中進行分析,那么,在同步過程中需要保證數據不丟失,才能為業務提供真正的保障。

目前,在海量數據的同步過程中,有兩種方案用于檢測數據是否丟失。一種是抽樣檢查,在日志中定時輸出有規律的日志,然后在目標地(數據倉庫系統)檢測這些規律日志是否存在。如果這些規律日志不存在,就認為數據丟失。另外一種是最終一致性檢查,在數據收集過程中將文件的最后記錄數發送給目標地,然后在目標地統計出最終收到的記錄數,如記錄數不一致則認為數據丟失。

然而,對于抽樣檢查,由于存在一定的抽樣率,極易出現數據丟失但無法檢測到的情況。對于最終一致性檢查,在數據傳輸的過程中,時常出現數據重復的情況,如果沒有去重,那么在目標地統計出來的最終記錄數很多情況下是不準確的。由此可見,上述檢測方式對丟失數據的檢測準確度較低。

因此,目前需要本領域技術人員迫切解決的一個技術問題就是:如何提高對丟失數據的檢測準確度。



技術實現要素:

本申請實施例所要解決的技術問題是提供一種數據檢測方法,能夠提高對丟失數據的檢測準確度。

相應的,本申請實施例還提供了一種數據檢測裝置,用以保證上述方法 的實現及應用。

為了解決上述問題,本申請公開了一種數據檢測方法,包括:

當對指定文件的數據進行同步時,獲取同步數據的參數信息,所述參數信息與所述同步數據相關聯;

確定已獲取的所述指定文件對應的各參數信息是否存在空缺;

若是,則確定所述指定文件存在數據丟失。

進一步,所述確定已獲取的所述指定文件對應的各參數信息是否存在空缺,包括:

將獲取的所述同步數據的參數信息插入所述指定文件的參數信息鏈表中,所述參數信息鏈表中包含有在先獲取的所述指定文件對應的參數信息;

將所述參數信息鏈表中相鄰的參數信息進行合并;

按照預置條件查找合并后的所述參數信息鏈表中是否存在空缺的參數信息。

進一步,按照預置條件查找合并后的所述參數信息鏈表中是否存在空缺的參數信息,包括:

按照預設的次數閾值重復查找合并后的所述參數信息鏈表中是否存在空缺的參數信息,當查找結果為存在空缺的參數信息且查找次數達到所述次數閾值時,判定所述已獲取的所述指定文件對應的參數信息存在空缺。

進一步,所述方法還包括:

將所述合并后的所述參數信息鏈表中空缺的參數信息對應的數據確定為所述指定文件丟失的數據。

進一步,所述同步數據的參數信息包括偏移量和數據長度,且下一次同步數據的偏移量為本次同步數據的偏移量與數據長度的和。

本申請實施例還公開了一種數據檢測裝置,包括:

參數獲取單元,被配置為當對指定文件的數據進行同步時,獲取同步數據的參數信息,所述參數信息與所述同步數據相關聯;

參數確認單元,被配置為確定已獲取的所述指定文件對應的各參數信息是否存在空缺;

結果確認單元,被配置為當所述參數確認單元確定存在空缺時,確定所述指定文件存在數據丟失。

進一步,所述參數確認單元包括:

插入子單元,被配置為將獲取的所述同步數據的參數信息插入所述指定文件的參數信息鏈表中,所述參數信息鏈表中包含有在先獲取的所述指定文件對應的參數信息;

合并子單元,被配置為將所述參數信息鏈表中相鄰的參數信息進行合并;

確認子單元,被配置為按照預置條件查找合并后的所述參數信息鏈表中是否存在空缺的參數信息。

進一步,所述確認子單元,被配置為按照預設的次數閾值重復查找合并后的所述參數信息鏈表中是否存在空缺的參數信息,當查找結果為存在空缺的參數信息且查找次數達到所述次數閾值時,判定所述已獲取的所述指定文件對應的參數信息存在空缺。

進一步,所述裝置還包括:

丟失數據確定單元,被配置為將所述合并后的所述參數信息鏈表中空缺的參數信息對應的數據確定為所述指定文件丟失的數據。

進一步,所述同步數據的參數信息包括偏移量和數據長度,且下一次同步數據的偏移量為本次同步數據的偏移量與數據長度的和。

與現有技術相比,本申請實施例包括以下優點:

本申請實施例通過利用指定文件的參數信息,以及參數信息與指定文件的同步數據之間的關聯關系,只需確定已獲取的參數信息是否存在空缺,即可確定出指定文件在數據同步時是否存在數據丟失。該方法中由于每次指定文件的數據同步都會攜帶參數信息,因此不會存在抽樣檢查中抽樣率的問題,所以避免了沒有抽樣到的數據存在數據丟失時無法檢測到的問題,而且,由于參數信息與指定文件的同步數據相關聯,參數信息可以表征指定文件在不同同步次數的數據,所以相對于最終一致性檢查,解決了數據重復傳輸時目標地統計記錄數有誤而導致的檢測不準確的問題。本申請實施例公開的方 法不僅提高了對丟失數據的檢測準確度,而且檢測過程簡單易行,檢測效率較高。

附圖說明

圖1是本申請的一種數據檢測方法實施例的步驟流程圖;

圖2是本申請中的一種確定已獲取的所述指定文件對應的各參數信息是否存在空缺的方法實施例的步驟流程圖;

圖3是本申請中的一種參數信息鏈表的示意圖;

圖4是本申請的一種數據檢測裝置實施例的結構框圖;

圖5是本申請中的一種參數確認單元的結構框圖;

圖6是本申請的另一種數據檢測裝置實施例的結構框圖。

具體實施方式

為使本申請的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本申請作進一步詳細的說明。

參照圖1,示出了本申請的一種數據檢測方法實施例的步驟流程圖,具體可以包括如下步驟:

步驟101,當對指定文件的數據進行同步時,獲取同步數據的參數信息,該參數信息與同步數據相關聯。

本申請實施例中,該用于檢測數據是否丟失的裝置(以下簡稱該裝置)可以是進行數據同步時的目標服務器本身,或者是設置在該目標服務器內的一模塊,也可以是獨立于目標服務器之外且可以與目標服務器進行交互的裝置。

在對指定文件的數據進行同步時,例如對日志的更新數據進行同步,發送數據的源服務器可以將指定文件的數據連同本次數據的參數信息一并發送至目標服務器,該裝置向目標服務器請求獲得該同步數據的參數信息;或者,源服務器可以將指定文件的數據和本次數據的參數信息分別發送至目標服務器和該裝置。

其中,該參數信息可以是新增的信息,由源服務器和該裝置約定,源服 務器每次對指定文件進行數據同步,就攜帶本次數據的參數信息。參數信息與同步數據相關聯,不同數據的參數信息不同,參數信息之間可以遵循一定的規律,例如連續發送的同步數據的參數信息是連續的。

該參數信息也可以是現有文件自帶的信息,例如,偏移量和數據長度。每一次文件的讀取都會有偏移量(offset)和數據長度(length)兩個參數信息,在源服務器讀取該文件的更新數據進行數據同步時,同時傳輸該同步數據在本次讀取的偏移量和數據長度。該參數信息與同步數據相關聯,下一次同步數據的偏移量為本次同步數據的偏移量與數據長度的和,即:

offsetnext=offsetnow+lengthnow

其中,每次同步數據的length可能相同也可能不同。

該參數信息也可以是其它內容的信息,只要該參數信息與指定文件的同步數據相關聯,可以用于區分指定文件在每次同步時的同步數據即可。

步驟102,確定已獲取的指定文件對應的各參數信息是否存在空缺。

在上步驟獲得參數信息后,本步驟即可根據所有已獲取的該指定文件對應的參數信息確定參數信息中是否存在空缺。具體的可以根據參數信息之間的規律來確定是否存在空缺或缺失的參數信息。

例如,上步驟中約定連續發送的同步數據的參數信息是連續的,則在本步驟中可以判斷已獲取的指定文件的參數信息之間是否是連續的,如果是連續的,說明不存在空缺,如果是不連續的,則說明參數信息存在缺失。

再例如,若上步驟采用偏移量和數據長度作為參數信息,則可以根據已獲得的某一偏移量和數據長度,根據連續兩次同步的偏移量之間的關系offsetnext=offsetnow+lengthnow來確定出鄰近的偏移量,然后在已獲取的參數信息中查找是否存在該確定出的鄰近的偏移量,以此類推,即可確定出已獲取的指定文件對應的參數信息中是否存在空缺。

若采用其它內容的參數信息,由于參數信息與指定文件的同步數據相關聯,可以利用不同的參數信息之間的規律來確定已獲取的指定文件的參數信息中是否存在空缺。

若確定存在空缺,則執行步驟103,若不存在空缺,則執行步驟104。

步驟103,確定指定文件存在數據丟失。

由于源服務器在進行數據同步時,是根據指定文件的數據更新按次序進行數據同步的,如果該裝置所獲得的參數信息存在空缺,則說明空缺的參數信息對應的數據丟失,數據同步存在問題。

步驟104,確定指定文件不存在數據丟失。

本申請實施例通過利用指定文件的參數信息,以及參數信息與指定文件的同步數據之間的關聯關系,只需確定已獲取的參數信息是否存在空缺,即可確定出指定文件在數據同步時是否存在數據丟失。該方法中由于每次指定文件的數據同步都會攜帶參數信息,因此不會存在抽樣檢查中抽樣率的問題,所以避免了沒有抽樣到的數據存在數據丟失時無法檢測到的問題,而且,由于參數信息與指定文件的同步數據相關聯,參數信息可以表征指定文件在不同同步次數的數據,所以相對于最終一致性檢查,解決了數據重復傳輸時目標地統計記錄數有誤而導致的檢測不準確的問題。本申請實施例公開的方法不僅提高了對丟失數據的檢測準確度,而且檢測過程簡單易行,檢測效率較高。

在本申請的另一實施例中,確定已獲取的所述指定文件對應的各參數信息是否存在空缺的過程,如圖2所示,可以進一步包括:

步驟201,將獲取的同步數據的參數信息插入指定文件的參數信息鏈表中,該參數信息鏈表中包含有在先獲取的該指定文件對應的參數信息。

為了便于確定參數信息中是否存在空缺,本實施例中可以建立該指定文件的參數信息鏈表,該參數信息鏈表中包含有所有已獲取的該指定文件對應的參數信息,也即在指定文件的各次數據同步過程中獲得的同步數據的參數信息。該參數信息鏈表可以按參數信息的大小順序等排列參數信息,以便于查找。

當該裝置在步驟101中獲得該指定文件的新的同步數據的參數信息時,將該參數信息按照排列規律插入對應的參數信息鏈表中。

步驟202,將參數信息鏈表中相鄰的參數信息進行合并。

在插入參數信息鏈表后,將相鄰的參數信息進行合并。其中,相鄰的參 數信息也即相鄰的兩次數據同步中同步數據的參數信息。具體可以依據參數信息的設置規律來推定兩參數信息是否相鄰,例如,如果連續的同步數據對應的參數信息是連續的,則將連續的參數信息是相鄰的參數信息,可以合并;如果按照上述offsetnext=offsetnow+lengthnow設置參數信息,則根據數據長度來推定兩參數信息是否相鄰,再確定是否可以合并。

步驟203,按照預置條件查找合并后的參數信息鏈表中是否存在空缺的參數信息。

在本步驟中,不能合并的參數信息之間可能就是存在空缺的參數信息,在確定是否存在空缺的參數信息時,還可以設置條件,查找結果滿足預設條件時,再確定是否存在空缺的參數信息。

例如預先設置查找的次數閾值,按照預設的次數閾值重復查找合并后的參數信息鏈表中是否存在空缺的參數信息,當查找結果為存在空缺的參數信息且查找次數達到該次數閾值時,判定已獲取的指定文件對應的參數信息存在空缺。

另外,在確定出空缺的參數信息后,該合并后的所述參數信息鏈表中空缺的參數信息對應的數據即可確定為指定文件在數據同步過程中丟失的數據。

下面以參數信息為offset和length為例進行說明。在每次對指定文件進行數據同步時,都會攜帶上這2個參數,并且在目標服務器保存起來。在目標服務器,參數信息和真實同步數據的保存,結果狀態必須是一致的,同時成功或者失敗。該用于檢測數據是否丟失的裝置可以掃描目標服務器保存的該指定文件的參數,進而判斷是否存在數據丟失的情況。

該裝置建立指定文件對應的參數信息鏈表(TailHead),不斷從目標服務器讀取新的同步數據的參數信息,并將參數信息插入該參數信息鏈表中。為便于理解,假設每次數據同步獲得的參數信息中length一直為1,已建立的參數信息鏈表如圖3所示,以TailHead的d1對象為例,tail為1表示它的offset為1,length為1,head為5表示offset為5,length為1。d1表示1到5之間的同步數據都已檢測到,則如圖3所示,圖中的數據表示1~5、8~10、 12、m~n中的同步數據都已經存在,未丟失。

當該裝置執行前述步驟101,從目標服務器中讀取到該指定文件的新的同步數據的參數信息時,例如讀取到同步數據的offset為11和length為1,執行前述步驟201,將讀取的參數信息插入到鏈表TailHead中,那么根據參數信息offset為11和length為1,將d2的tail值更新為11即可。然后執行前述步驟202合并鏈表中相鄰的參數信息,比如d2的tail為11也即offset為11,length為1,d3的head為12也即offset為12,length為1,那么由于length均為1,可以確定d2與d3相鄰,合并d2和d3,其中head為8,tail為13。然后執行前述步驟203檢測參數信息是否存在空缺,以d1、d2為例,他們之間間隔的offset為6、7,表示這2個參數信息對應的數據不存在。如果這2個參數經過多次(次數閾值可以調整)判斷仍然不存在,那么就可以認為offset6、7對應的數據丟失。

需要說明的是,對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請實施例并不受所描述的動作順序的限制,因為依據本申請實施例,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優選實施例,所涉及的動作并不一定是本申請實施例所必須的。

參照圖4,示出了本申請一種數據檢測裝置實施例的結構框圖,具體可以包括如下單元:

參數獲取單元401,被配置為當對指定文件的數據進行同步時,獲取同步數據的參數信息,所述參數信息與所述同步數據相關聯。

參數確認單元402,被配置為確定已獲取的所述指定文件對應的各參數信息是否存在空缺。

結果確認單元403,被配置為當所述參數確認單元確定存在空缺時,確定所述指定文件存在數據丟失。

本申請實施例中,該裝置通過利用指定文件的參數信息,以及參數信息與指定文件的同步數據之間的關聯關系,只需確定已獲取的參數信息是否存在空缺,即可確定出指定文件在數據同步時是否存在數據丟失。該裝置不僅 提高了對丟失數據的檢測準確度,而且檢測過程簡單易行,檢測效率較高。

在另一實例中,當參數確認單元確定不存在空缺時,結果確認單元403可以確定所述指定文件不存在數據丟失。

在另一實施例中,如圖5所示,該參數確認單元402可以進一步包括:

插入子單元501,被配置為將獲取的所述同步數據的參數信息插入所述指定文件的參數信息鏈表中,所述參數信息鏈表中包含有在先獲取的所述指定文件對應的參數信息。

合并子單元502,被配置為將所述參數信息鏈表中相鄰的參數信息進行合并。

確認子單元503,被配置為按照預置條件查找合并后的所述參數信息鏈表中是否存在空缺的參數信息。

其中,確認子單元503,可以具體被配置為按照預設的次數閾值重復查找合并后的所述參數信息鏈表中是否存在空缺的參數信息,當查找結果為存在空缺的參數信息且查找次數達到所述次數閾值時,判定所述已獲取的所述指定文件的參數信息存在空缺。

在另一實施例中,如圖6所示,該裝置還可以包括:

丟失數據確定單元601,被配置為將所述合并后的所述參數信息鏈表中空缺的參數信息對應的數據確定為所述指定文件丟失的數據。

上述同步數據的參數信息可以包括偏移量和數據長度,且下一次同步數據的偏移量為本次同步數據的偏移量與數據長度的和。

本申請實施例還公開了一種電子設備,包括存儲器和處理器。

處理器與存儲器通過總線相互連接;總線可以是ISA總線、PCI總線或EISA總線等。所述總線可以分為地址總線、數據總線、控制總線等。

其中,存儲器用于存儲一段程序,具體地,程序可以包括程序代碼,所述程序代碼包括計算機操作指令。存儲器可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。

處理器用于讀取存儲器中的程序代碼,執行以下步驟:

當對指定文件的數據進行同步時,獲取同步數據的參數信息,所述參數 信息與所述同步數據相關聯;

確定已獲取的所述指定文件對應的各參數信息是否存在空缺;

若是,則確定所述指定文件存在數據丟失。

對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。

本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。

本領域內的技術人員應明白,本申請實施例的實施例可提供為方法、裝置、或計算機程序產品。因此,本申請實施例可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本申請實施例可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。

在一個典型的配置中,所述計算機設備包括一個或多個處理器(CPU)、輸入/輸出接口、網絡接口和內存。內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內存是計算機可讀介質的示例。計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限于相變內存(PRAM)、靜態隨機存取存儲器(SRAM)、動態隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(CD-ROM)、數字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其 他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括非持續性的電腦可讀媒體(transitory media),如調制的數據信號和載波。

本申請實施例是參照根據本申請實施例的方法、終端設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理終端設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理終端設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。

這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理終端設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。

這些計算機程序指令也可裝載到計算機或其他可編程數據處理終端設備上,使得在計算機或其他可編程終端設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程終端設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。

盡管已描述了本申請實施例的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本申請實施例范圍的所有變更和修改。

最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得 包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設備中還存在另外的相同要素。

以上對本申請所提供的一種數據檢測方法和一種數據檢測裝置,進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領域的一般技術人員,依據本申請的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影