TWI476609B - Data Processing Method and System of Large Data Quantity - Google Patents
Data Processing Method and System of Large Data Quantity Download PDFInfo
- Publication number
- TWI476609B TWI476609B TW098101523A TW98101523A TWI476609B TW I476609 B TWI476609 B TW I476609B TW 098101523 A TW098101523 A TW 098101523A TW 98101523 A TW98101523 A TW 98101523A TW I476609 B TWI476609 B TW I476609B
- Authority
- TW
- Taiwan
- Prior art keywords
- file
- small
- split
- server
- processing
- Prior art date
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明關於資料處理技術,特別是關於一種大資料量資料處理方法及系統。
在很多應用場景中,經常會有如下的資料處理過程:發送方將某些資料以一定的格式保存在一個檔案中,然後將檔案發送給接收方,接收方接收到檔案之後對檔案中的內容進行解析,並進行相應的邏輯處理。
在上述資料處理過程中,如果檔案不是很大,而且接收方對處理時間又沒有很高的要求,則此時可以用單台伺服器或單線程進行處理。這種情況下,系統仍會運行正常,但接收方處理這些檔案資料的時間可能較長。但是,如果檔案很大或者檔案數量很多,而接收方對處理時間又有很高的要求,例如接收方要求對於發送方傳輸過來的檔案資料必須在1分鐘內(或者更短時間內)處理完畢。此時,單台伺服器或單線程的處理系統就不能滿足需求。
很多情況下,發送方到接收方的檔案資料是定時傳送的,比如5分鐘一次,而接收方能夠容忍的資料最大延時是有限制的,此時如果接收方對傳送的資料在間隔期內處理不完,就會形成惡性循環,上個週期內的資料還未處理完畢,新的資料又傳送過來,這樣接收方的資料延時就會越來越多,最後出現系統崩潰。
在很多大型應用中,都會出現這種大資料量的資料處理需求,例如在教育行業學校需要逐級向教育局上報學生資料,大型網站日誌的處理,兩個系統間的資料同步,等等。因此,需要提供一種能夠在規定時間內處理大資料量資料的方法,緩解資料的延時處理。
本發明所要解決的技術問題是提供一種大資料量資料處理方法及系統,以解決大資料量資料無法在規定時間內處理造成處理延時,最後造成系統崩潰的問題。
為解決上述技術問題,根據本發明提供的具體實施例,本發明公開了以下技術方案:一種大資料量資料處理方法,包括:根據原始檔案命名規則分配伺服器,將原始檔案拆分為小檔案;針對拆分後的每個小檔案,根據小檔案命名規則再次分配伺服器,對拆分後的小檔案進行處理。
其中,根據原始檔案命名規則或小檔案命名規則分配伺服器的步驟包括:解析檔案名,獲取原始檔案序列號;計算:原始檔案序列號%待分配伺服器總數+1;其中,%表示取模運算;根據該計算結果值分配伺服器。
其中,根據原始檔案命名規則或小檔案命名規則分配伺服器的步驟包括:配置每台伺服器處理的資料類型;解析檔案名,獲取檔案中儲存的資料類型;根據該配置,分配與該檔案中儲存的資料類型相對應的伺服器。
其中,根據小檔案命名規則分配伺服器的步驟包括:解析檔案名,獲取拆分後的小檔案序列號;計算:小檔案序列號%待分配伺服器總數+1;其中,%表示取模運算;根據該計算結果值分配伺服器。
較佳地,將原始檔案拆分為小檔案之後,還包括:將拆分後的小檔案保存到磁碟。
較佳地,該方法還包括:對拆分和處理失敗的操作進行重試;其中,對拆分出錯的操作重試一次,對處理失敗的操作重試多次。
較佳地,該方法還包括:將所有待拆分和待處理的檔案存放在不同的目錄下。
其中,該待拆分檔案目錄下的資料流程程包括:將原始檔案存放到“待拆分的原始檔案存放目錄”;根據原始檔案命名規則分配伺服器之後,將待拆分檔案存放到“拆分檔案時的臨時目錄”;對待拆分檔案進行拆分,將拆分’成功的原始檔案備份到“完全拆分成功的原始檔案存放目錄”,並將拆分後的小檔案保存到“分割之後的小檔案存放目錄”;將重試失敗的原始檔案備份到“拆分檔案時出錯的原始檔案存放目錄”。
其中,該待處理檔案目錄下的資料流程程包括:根據小檔案命名規則再次分配伺服器之後,將“分割之後的小檔案存放目錄”下的待處理小檔案存放到“處理小檔案時的臨時目錄”;對待處理小檔案進行處理,將處理成功的小檔案備份到“完全處理成功的小檔案存放目錄”,將進行重試的小檔案備份到“有部分記錄未成功處理的小檔案存放目錄”,並將重試失敗的小檔案備份到“經過重試之後還無法處理的小檔案存放目錄”。
一種大資料量資料處理系統,包括多台伺服器,每台伺服器包括:預處理單元,用於根據原始檔案命名規則,判斷待拆分的原始檔案是否屬於自己處理,如果是,則觸發拆分單元;並根據拆分後的小檔案命名規則,再次判斷待處理的小檔案是否屬於自己處理,如果是,則觸發處理單元。
拆分單元,用於將原始檔案拆分為小檔案;處理單元,用於對拆分後的小檔案進行處理。
其中,該預處理單元透過檔案名中的原始檔案序列號判斷待拆分的原始檔案是否屬於自己處理,並透過檔案名中的原始檔案序列號或拆分後的小檔案序列號判斷待處理的小檔案是否屬於自己處理。
其中,該預處理單元透過檔案中儲存的資料類型,判斷待拆分的原始檔案或待處理的小檔案是否屬於自己處理時,每台伺服器還包括配置單元,用於配置自己處理的資料類型。
較佳地,每台伺服器還包括:儲存單元,用於將拆分後的小檔案保存到磁碟。
較佳地,該儲存單元採用目錄結構,將所有待拆分和待處理的檔案存放在不同的目錄下。
較佳地,每台伺服器還包括:重試單元,用於對拆分和處理失敗的操作進行重試;其中,對拆分出錯的操作重試一次,對處理失敗的操作重試多次。
根據本發明提供的具體實施例,本發明公開了以下技術效果:首先,本發明提供了一種針對大檔案進行併發或分散式處理的方法和系統,透過併發策略的控制,可以部署多台伺服器同時對大資料量檔案進行拆分和處理,極大地提升了系統的處理能力,保證系統在規定時間內對檔案處理完畢。而且,這種透過檔案命名規則分配伺服器來拆分和處理檔案的併發策略,保證只有一台伺服器可以對原始檔案進行拆分,對於拆分之後的每個小檔案,也只能有一台伺服器對其進行處理,從而避免資源競爭。
其次,本發明提供了兩種併發策略,一種是根據檔案名中的原始檔案序列號分配伺服器,這種策略在檔案數較多的情況下可以保持各台伺服器的均衡性;另一種是配置每台伺服器能夠處理的資料類型,將待處理檔案按照資料類型分配合適的伺服器,這種策略在新增伺服器的情況下只需修改配置表即可,具有良好的擴展性。根據實際應用需求,本發明可以將兩種併發策略結合使用,因此,本發明所述系統能夠最大限度地平衡各台伺服器的繁忙程度;而且,具有非常好的擴展性,當檔案越來越大或者是越來越多的時候,透過新增伺服器就可以滿足需求,即可以線性擴展,而不需要購買更高級的伺服器,也不需要重新部署以前已經運行的伺服器。
再次,為了降低掃描檔案帶來的磁碟IO(Input/Output,輸入/輸出)壓力,可以將各個待拆分和待處理的檔案放在不同的目錄中,然後對目錄中所有檔案進行緩存,對緩存中的檔案處理完畢之後再去讀取新的檔案。
為使本發明的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本發明作進一步詳細的說明。
本發明提供了一種針對大檔案進行併發或分散式處理的方法和系統,透過檔案命名規則分配伺服器的併發策略,可以部署多台伺服器同時對大資料量檔案進行拆分和處理,極大地提升了系統的處理能力,保證系統在規定時間內對大資料量檔案處理完畢。
舉例說明:發送方每隔2分鐘按照一定的格式生成多種類別(比如商品、訂單;單個類別的資料檔案也可以有多個)的檔案FileA(檔案的容量很大,比如有200M),併發送給接收方;接收方接收到檔案FileA,對其進行後期邏輯處理,其中邏輯處理可能比較複雜,需要做很多相關的事情,比如保存到資料庫等等。此時如果單台伺服器的處理能力為10M/Min,則2分鐘能處理20M的資料,還剩下180M的資料沒有處理完畢。本發明的目標就是要讓接收方的系統能夠在2分鐘內將所有的檔案FileA處理完畢。
參照圖1,是本發明實施例所述一種大資料量資料處理方法流程圖。參照上例,本實施例採用分散式多台伺服器併發處理的方法,對發送方傳送來的大資料量檔案進行業務邏輯處理。其中,該多台伺服器可以併發執行相同的程式。
本實施例實現的一個前提是發送方傳送過來的檔案FileA需要有統一的檔案命名規範,不符合命名規範的檔案將不會被處理。即發送方傳送過來的檔案已經是按照規範命名的檔案,接收方可以直接對檔案名進行解析。
下面將以發送方一次傳送過來的檔案處理為例進行說明,具體處理過程如下:S101,對發送方傳送過來的原始檔案FileA進行檔案名解析;S102,根據解析結果分配一台伺服器,對原始檔案FileA進行拆分;S103,該伺服器將原始檔案FileA拆分為多個小檔案FileY;對檔案進行拆分時,拆分成N個容量較小的檔案FileY,N的大小視具體情況而定,主要取決於有多少台伺服器在進行處理。
S104,自動為拆分後的每個小檔FileY按照小檔命名規範進行命名;S105,對每個小檔FileY進行檔案名解析;S106,根據解析結果為每個小檔FileY分配一台伺服器進行處理;S107,每台伺服器進行後期邏輯處理。
由上可知,原始檔案和拆分後的小檔案都有相應的命名規則,具體如下:原始檔命名規範:例如檔案名為:DateTime_Sequence_DateType.TXT;其中各參數意義如下:DateTime代表資料導出的時間,精確到秒,格式為:20070209133010,即年月日時分秒;Sequence代表資料分頁(為了不讓單個檔案太大,可以採取分頁措施)的序列,也可稱為原始檔案序列號,假設定為3位,從001開始累加;DateType代表檔案中儲存的資料類別,比如user代表用戶資料,order代表訂單資料,sample代表商品資料。
從上面可以看出,單個資料類型DateType對應的資料檔案可能會有多個。
拆分後的小檔案命名規範:例如檔案名為:SubDateTime_DateTime_Sequence_SubSequence_retryX_DateType.TXT;各參數的意義如下:DateTime、Sequence、DateType的意義與原始檔案中的相同;SubDateTime代表子檔案導出的時間,默認與DateTime相同,但是遇到重試的時候兩者就會不一樣,具體見後面retry部分的說明;SubSequence代表針對原始檔案分割之後的小檔案序列號,假設為4位,從0001開始累加;retry後面的X代表這個檔案被實際處理進行重試的次數,當第一次分割的時候為0,失敗一次之後變成1,以後進行累加,累加的時候需要注意:前面對應的SubDateTime也需要做相應的修改,規則為系統當前時間+重試間隔;小檔案的檔案名中還保留DateTime,主要的目的是為了便於後續處理出現問題的時候查錯。
上述步驟S102和S106都需要根據檔案名解析結果來合理分配伺服器,即在拆分原始檔案和對拆分後的小檔進行處理時都需要調度伺服器。如果從整個伺服器系統的執行來看,這是一個併發執行的過程,即分配一台伺服器拆分原始檔的同時,還可以分配另一台伺服器處理上一次拆分的小檔。
本實施例提供了兩種併發策略,在拆分原始檔和處理拆分後小檔的時候都可以使用。併發策略的原則是:保證只有一台伺服器可以對原始檔進行拆分,對於拆分之後的每個小檔,也只能有一台伺服器對其進行處理,從而避免資源競爭。
一種策略是:根據檔案名中的序號Sequence或者SubSequence進行取模,計算公式如下:Sequence/SubSequence%待分配伺服器總數+1;其中,“%”表示取模運算;加1是為了保證計算結果不為0。
比如:總的server數為3;對檔案名20070429160001_00x_order.txt;00x即為Sequence;計算x%3+1,若為1,則由server1處理,若為2,則由server2處理,若為3,則為server3處理。
默認情況下,小檔案處理和原始檔案拆分時判斷的規則可以是一樣的,即可以都針對檔案名中的Sequence進行判斷。但較佳地,為了保證各台server間的均衡性,對小檔案進行處理的時候還可以根據SubSequence來進行判斷。
當然,根據檔案名中的序號Sequence或者SubSequence,也可以透過其他計算公式均衡的分配伺服器,上述取模的計算方法僅作為實施例進行說明。
這種策略可以比較平均地分配各台server,但是server1和server2會較多地處理一些檔案,因為並不是所有的檔案數都是3的倍數;另外,某些資料量比較小的檔案本來就只有一個檔案,所以按照這個規則,肯定會被server1處理。所以,該策略適合於檔案數較多的情況,檔案數越多,各台server間的均衡性就越好。但是,如果需要增加新的server,則需要將所有的server重新部署。
另一種策略是:對各台server設置其可以處理的、只有自己能處理的DateType(資料類別)。
系統提供一份配置表,配置項為各台server能夠處理的以及只有自己能處理的DateType。比如配置server1能處理order資料(訂單資料),配置server2能處理user資料(用戶資料),配置server3能處理sample資料(商品資料)。在進行該項設置的時候需要保證各台server間的配置不會衝突,如果有衝突,則會提示配置出錯。
這種策略適合於檔案數較少的情況,而且該策略還有另外一個好處:就是當新增DateType對應的檔案資料時,新增server不會影響已經部署好的server,只需要修改配置表即可。
上述兩種併發策略都可以很好地調度多台伺服器同時進行檔案拆分或處理,在實際應用中,可以針對具體應用需求選擇其中一種。
較佳地,還可以將兩種併發策略結合起來,因為這兩種策略並不是互相排斥的。例如,可以指定多台server都可以處理DateType為order的檔案資料,但是user只能由server3處理,sample只能由server2處理;這樣各server間的處理就能夠最大化平均了,最大限度地平衡各台server的繁忙程度。
在圖1所示的拆分和處理過程中,如果採用第一種策略,就需要解析原始檔案名獲取Sequence,並解析小檔案名獲取Sequence或SubSequence;如果採用第二種策略,需要從檔案名中獲取DateType;如果採用兩種策略的結合,則需要同時獲取Sequence或SubSequence及DateType。無論採用哪種併發策略,都是根據檔案名來判斷該檔案應該由哪台server進行拆分或處理,各server只能處理屬於自己的那些檔案。
較佳地,伺服器對原始檔案進行拆分之後,還需要將拆分後的小檔案保存到磁碟,當對小檔案進行處理時從磁碟讀取。某台伺服器拆分出來的小檔案還沒有完全寫入到磁碟的時候不允許被處理,因為若此時被處理,則另外的處理伺服器從小檔案中讀取出來的內容可能不完整。
較佳地,如果在拆分或者處理過程中出現錯誤,則需要將出錯部分進行重試。並且,如果有很多檔案等待拆分或處理,則可以按照時間先後順利進行處理。
綜上所述,這種分散式多台伺服器併發處理的方法,在針對一些大檔案進行處理的時候,可以大大提升系統的處理能力,最大限度地平衡各台伺服器的繁忙程度;而且,具有非常好的擴展性,當檔案越來越大或者是越來越多的時候,透過新增伺服器就可以滿足需求,即可以線性擴展,而不需要購買更高級的伺服器,也不需要重新部署以前已經運行的伺服器。
本實施例還較佳地,為了降低掃描檔案帶來的磁碟IO壓力,可以將各個待拆分和待處理的檔案放在不同的目錄中,然後對目錄中所有檔案進行緩存,對緩存中的檔案處理完畢之後再去讀取新的檔案,其處理的先後順序取決於檔案名的自然排序(即按檔案名中DateTime昇冪排列,時間早的先被處理)。
處理的目錄結構可以如下:
其中,該目錄結構可以自行調整,在此僅作為實施例進行說明,比如/hour這級目錄是否需要,要根據系統中拆分出來的小檔案資料量而定,因為OS(作業系統)對檔案系統中的檔案數、目錄樹、單目錄下最大檔案數都有限制,而且單目錄下檔案數如果太多,會嚴重影響系統的性能。
上述目錄結構的生成過程實質上與圖1所示的拆分和處理流程同步,可以透過目錄間檔案的資料流程反映圖1所示流程,主要包括檔案拆分和檔案處理兩個資料流程程,具體如下。
參照圖2,是目錄結構下的檔案拆分流程圖,參照上述目錄結構說明:S201,從發送方傳送過來的原始檔案存放到目錄/source_file下;S202,根據檔案名對目錄/source_file下的待拆分檔案分配伺服器,此時,為了避免各個線程對同一個檔案進行拆分,將待拆分檔案再存放到目錄/tmp_divide/hostname下,即存放到分配的伺服器目錄下,此過程稱為重命名;S203,伺服器對該待拆分檔案進行拆分,如果拆分成功,則將拆分出來的小檔案保存到目錄/source_smallfile下,並將拆分成功的原始檔案備份到目錄/bak_sucs_file下;S204,如果拆分不成功,則進行重試,如果重試一次成功,則返回S203將拆分出來的小檔案保存到目錄/source_smallfile下,並將拆分成功的原始檔案備份到目錄/bak_sucs_file下;如果重試一次仍不成功,則將重試失敗的原始檔案備份到目錄/error_divide下。參照圖3,是目錄結構下的檔案處理流程圖,參照上述目錄結構說明:S301,拆分出來的小檔案都存放在目錄/source_smallfile下;S302,根據檔案名對目錄/source_smallfile下的待處理檔案分配伺服器,此時,同樣為了避免各個線程對同一個小檔案進行處理,將待處理檔案再存放到目錄/tmp_execute/hostname下,即存放到分配的伺服器目錄下,此過程稱為重命名;S303,伺服器對該待處理檔案進行邏輯處理,如果處理成功,則將處理成功的小檔案備份到目錄/bak_sucs_small下;S304,如果處理出錯,則進行重試;可以設置重試的次數,假設為5次。
將進行重試的小檔案備份到目錄/bak_error下,重試時,返回S301,即將S303處理失敗的小檔案重新放回目錄/source_smallfile下,由原來分配的伺服器對其進行再次處理;如果重試5次都沒有成功,則將重試失敗的小檔案備份到目錄/error_execute下。
本實施例中,對原始檔案的重試次數和對小檔案的重試次數不同。若對原始大檔案拆分的時候出錯,則直接重試一次,若還失敗,則直接將檔案移動至錯誤目錄,同時寫錯誤日誌和報警;若對小檔案進行業務邏輯處理過程中出錯,則需要採取更加靈活的重試機制,因為通常原始檔案拆分出錯的概率很小,而後期業務邏輯處理的失敗會更多,所以對小檔案進行多次重試。
對小檔案進行多次重試時,需要配置一份重試間隔列表,重試的次數和每次向後推遲的時間都可以自己定義,比如定義為重試5次,重試5次之後若還是失敗,則不再進行處理,將其移動到錯誤目錄中,同時寫錯誤日誌和報警。所以,當某台伺服器取到某個具體檔案進行處理時,需要判斷一下該檔案的SubDateTime是否比當前時間早,若早,則進行實際處理,否則不處理該檔案。
如前所述,某台伺服器拆分出來的小檔案還沒有完全寫入到磁碟的時候不允許被處理。因此,對於預防一個被拆分生成的小檔案內容還沒有完全被寫入磁碟的時候被處理,需要結合目錄結構來完成。小檔案先被寫入到一個臨時目錄/source_smallfile中,當寫入成功之後,再進行重命名操作,將其移動到另外一個目錄/tmp_execute/hostname。因為重命名操作是原子的,而且只是修改一個檔案指標鏈結,所以這樣就可以保證資料的完整性。
本發明還提供了一種大資料量資料處理系統的實施例,參照圖4,是本發明實施例所述一種大資料量資料處理系統的邏輯結構圖。
如圖所述,該系統採用分散式架構由多台伺服器組成,每台伺服器都可以執行拆分和處理程式。針對發送方傳送資料由接收方在規定時間內進行處理的例子,該系統部署在接收方,以下簡稱為接收方系統。接收方系統的多台伺服器可以併發執行相同的程式。
對於發送方傳送過來的大檔案FileA,接收方系統中多台伺服器併發處理檔案FileA的流程如下:大檔案FileA先被存放到目錄/source_file下,每台伺服器都會定時到該目錄下掃描發送方傳送過來的大檔案,並依據前述的併發策略(在此不再詳述),根據檔案名判斷該檔案是否由自己進行拆分。當某台serverA取到屬於自己處理的檔案FileA之後,對檔案進行拆分,拆分成N個容量較小的檔案FileY,N的大小視具體情況而定,主要取決於有多少台server在進行處理。然後,再依據併發策略,多台serverX根據檔案名判斷拆分後的各個小檔案FileY是否屬於自己處理,當某台serverB取到屬於自己處理的小檔案FileY之後,對其進行後期邏輯處理。
上述處理流程中,為了避免資源競爭,需要保證只有一台server可以對原始檔案FileA進行拆分;對於拆分之後的每個小檔案FileY,也只能有一台server對其進行處理。而且,各台server的繁忙程度要儘量均勻,不能出現某些server非常繁忙而另外的server卻很空閒的情況。本發明提供的兩種併發策略可以保證這些。同時,該系統非常靈活,具有良好的可擴展性,能夠支援各台server獨立配置處理某些類別的檔案,這樣在新增server時不需要重新部署以前已經運行的server。
較佳地,為了保證小檔案讀取的完整性,對原始檔案進行拆分之後,還需要將拆分後的小檔案保存到磁碟。而且,拆分或者處理過程中若出現錯誤,則需要將出錯部分進行重試。若有很多檔案等待拆分或處理,則按照時間先後順利進行處理。
下面詳細說明每台伺服器的內部邏輯結構。參照圖5,是每台伺服器的內部邏輯結構圖。每台伺服器都包括:預處理單元U501、拆分單元U502、處理單元U503。
該預處理單元U501用於定時掃描磁碟目錄,根據檔案名判斷該檔案是否屬於自己處理。具體包括:根據原始檔案命名規則,判斷待拆分的原始檔案是否屬於自己處理,如果是,則觸發拆分單元U502;並根據拆分後的小檔案命名規則,再次判斷待處理的小檔案是否屬於自己處理,如果是,則觸發處理單元U503。該拆分單元U502用於將原始檔案拆分為小檔案;該處理單元U503用於對拆分後的小檔案進行邏輯處理。
根據前述的兩種併發策略,如果採用第一種策略,則該預處理單元U501透過檔案名中的原始檔案序列號判斷待拆分的原始檔案是否屬於自己處理,並透過檔案名中的原始檔案序列號或拆分後的小檔案序列號判斷待處理的小檔案是否屬於自己處理。
如果採用第二種策略,則該預處理單元U501透過檔妹中儲存的資料類型,判斷待拆分的原始檔案或待處理的小檔案是否屬於自己處理時,此時每台伺服器還包括配置單元U504,用於配置自己處理的資料類型。預處理單元U501進行判斷時,根據該配置判斷檔案中儲存的資料類型是否是自己可以處理的類型。
較佳地,為了保證小檔案讀取的完整性,伺服器還包括儲存單元U505,用於將拆分後的小檔案保存到磁碟。而且,為了降低掃描檔案帶來的磁碟IO壓力,該儲存單元U505採用目錄結構,將所有待拆分和待處理的檔案存放在不同的目錄下。
較佳地,每台伺服器還包括重試單元U506,用於對拆分和處理失敗的操作進行重試;其中,根據應用需要,對拆分出錯的操作重試一次,對處理失敗的操作重試多次。
綜上所述,該系統支援多台伺服器併發執行,以提升系統的處理能力,而且具有非常好的擴展性。
圖4、圖5所示系統中未詳述的部分可以參見圖1、圖2、圖3所示方法的相關部分,為了篇幅考慮,在此不再詳述。
以上對本發明所提供的一種大資料量資料處理方法及系統,進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用範圍上均會有改變之處。綜上所述,本說明書內容不應理解為對本發明的限制。
U501...預處理單元
U502...拆分單元
U503...處理單元
U504...配置單元
U505...儲存單元
U506...重試單元
圖1是本發明實施例所述一種大資料量資料處理方法流程圖;
圖2是本發明實施例中目錄結構下的檔案拆分流程圖;
圖3是本發明實施例中目錄結構下的檔案處理流程圖;
圖4是本發明實施例所述一種大資料量資料處理系統的邏輯結構圖;
圖5是圖4所示系統中每台伺服器的內部邏輯結構圖。
Claims (15)
- 一種大資料量資料處理方法,其特徵在於,包括:根據原始檔案命名規範對原始檔案進行檔案名解析;根據原始檔案命名規則分配該原始檔案到原始檔案拆分伺服器,以拆分該原始檔案為多數個小檔案;根據小檔案命名規則命名該多數個小檔案;根據小檔案命名規範對該多數個小檔案進行檔案名解析;以及根據小檔案命名規則分配該多數個小檔案到多數個小檔案處理伺服器,以處理該多數個小檔案。
- 根據申請專利範圍第1項所述的方法,其中,分配該原始檔案到原始檔案拆分伺服器的步驟包括:解析檔案名,獲取原始檔案序列號;計算:原始檔案序列號%待分配伺服器總數+1,其中,%表示取模運算;根據該計算結果值分配原始檔案拆分伺服器。
- 根據申請專利範圍第1項所述的方法,其中,分配該原始檔案到原始檔案拆分伺服器的步驟包括:配置每台伺服器處理的資料類型;解析檔案名,獲取檔案中儲存的資料類型;根據該配置,分配與該檔案中儲存的資料類型相對應的原始檔案拆分伺服器。
- 根據申請專利範圍第1項所述的方法,其中,分 配該多數個小檔案到該多數個小檔案處理伺服器的步驟包括:解析檔案名,獲取拆分後的該多數個小檔案序列號;計算:小檔案序列號%待分配伺服器總數+1,其中,%表示取模運算;根據該計算結果值分配小檔案處理伺服器。
- 根據申請專利範圍第1項所述的方法,還包括:將該多數個小檔案保存到磁碟。
- 根據申請專利範圍第1項所述的方法,還包括:對該原始檔案拆分出錯的操作重試一次;以及對該多數個小檔案處理失敗的操作重試多次。
- 根據申請專利範圍第1項所述的方法,還包括:將待拆分的原始檔案存放在一目錄下;以及將待處理的小檔案存放在不同於該目錄的另一目錄下。
- 根據申請專利範圍第1項所述的方法,還包括:將原始檔案存放到“待拆分的原始檔案存放目錄”;根據原始檔案命名規則分配原始檔案拆分伺服器之後,將待拆分原始檔案存放到“拆分檔案時的臨時目錄”;對待拆分原始檔案進行拆分,將拆分成功的原始檔案備份到“完全拆分成功的原始檔案存放目錄”,並將拆分後的多數個小檔案保存到“分割之後的小檔案存放目錄”;以及將重試失敗的原始檔案備份到“拆分檔案時出錯的原 始檔案存放目錄”。
- 根據申請專利範圍第1項所述的方法,還包括:根據小檔案命名規則再次分配伺服器之後,將“分割之後的小檔案存放目錄”下的待處理小檔案存放到“處理小檔案時的臨時目錄”;對待處理小檔案進行處理,將處理成功的小檔案備份到“完全處理成功的小檔案存放目錄”,將進行重試的小檔案備份到“有部分記錄未成功處理的小檔案存放目錄”,並將重試失敗的小檔案備份到“經過重試之後還無法處理的小檔案存放目錄”。
- 一種大資料量資料處理系統,其特徵在於,包括多台伺服器,每台伺服器包括:預處理單元,用於根據原始檔案命名規則,判斷待拆分的原始檔案是否屬於自己處理,如果是,則觸發拆分單元,並根據拆分後的小檔案命名規則,再次判斷待處理的小檔案是否屬於自己處理,如果是,則觸發處理單元;拆分單元,用於將原始檔案拆分為多數個小檔案;處理單元,用於對拆分後的該多數個小檔案進行處理。
- 根據申請專利範圍第10項所述的系統,其中:該預處理單元透過檔案名中的原始檔案序列號判斷待拆分的該原始檔案是否屬於自己處理,並透過檔案名中的原始檔案序列號或拆分後的該多數個小檔案序列號判斷待處理的該多數個小檔案是否屬於自己處理。
- 根據申請專利範圍第10項所述的系統,其中:該預處理單元透過檔案中儲存的資料類型,判斷待拆分的該原始檔案或待處理的該多數個小檔案是否屬於自己處理時,每台伺服器還包括配置單元,用於配置自己處理的資料類型。
- 根據申請專利範圍第10項所述的系統,其中,每台伺服器還包括:儲存單元,用於將拆分後的該多數個小檔案保存到磁碟。
- 根據申請專利範圍第13項所述的系統,其中:該儲存單元採用目錄結構,將待拆分的原始檔案存放在一目錄下,以及將待處理的小檔案存放在不同於該目錄的另一目錄下。
- 根據申請專利範圍第10項所述的系統,其中,每台伺服器還包括:重試單元,用於對拆分和處理失敗的操作進行重試;其中,對拆分出錯的操作重試一次,對處理失敗的操作重試多次。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098101523A TWI476609B (zh) | 2009-01-16 | 2009-01-16 | Data Processing Method and System of Large Data Quantity |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098101523A TWI476609B (zh) | 2009-01-16 | 2009-01-16 | Data Processing Method and System of Large Data Quantity |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201028867A TW201028867A (en) | 2010-08-01 |
TWI476609B true TWI476609B (zh) | 2015-03-11 |
Family
ID=44853823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098101523A TWI476609B (zh) | 2009-01-16 | 2009-01-16 | Data Processing Method and System of Large Data Quantity |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI476609B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061733A (en) * | 1997-10-16 | 2000-05-09 | International Business Machines Corp. | Method and apparatus for improving internet download integrity via client/server dynamic file sizes |
US20010025308A1 (en) * | 2000-02-18 | 2001-09-27 | Kotaro Jinushi | Data transmission management apparatus and data transmission system, and methods thereof |
US20020059400A1 (en) * | 2000-10-30 | 2002-05-16 | Yukihito Ikami | Method and apparatus for split download |
US20060167838A1 (en) * | 2005-01-21 | 2006-07-27 | Z-Force Communications, Inc. | File-based hybrid file storage scheme supporting multiple file switches |
TW200705200A (en) * | 2005-02-25 | 2007-02-01 | Nec Electronics Corp | Data transfer control device, image processing device, and data transfer control method |
TW200723000A (en) * | 2005-08-03 | 2007-06-16 | Sandisk Corp | Mass data storage system |
-
2009
- 2009-01-16 TW TW098101523A patent/TWI476609B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061733A (en) * | 1997-10-16 | 2000-05-09 | International Business Machines Corp. | Method and apparatus for improving internet download integrity via client/server dynamic file sizes |
US20010025308A1 (en) * | 2000-02-18 | 2001-09-27 | Kotaro Jinushi | Data transmission management apparatus and data transmission system, and methods thereof |
US20020059400A1 (en) * | 2000-10-30 | 2002-05-16 | Yukihito Ikami | Method and apparatus for split download |
US20060167838A1 (en) * | 2005-01-21 | 2006-07-27 | Z-Force Communications, Inc. | File-based hybrid file storage scheme supporting multiple file switches |
TW200705200A (en) * | 2005-02-25 | 2007-02-01 | Nec Electronics Corp | Data transfer control device, image processing device, and data transfer control method |
TW200723000A (en) * | 2005-08-03 | 2007-06-16 | Sandisk Corp | Mass data storage system |
Also Published As
Publication number | Publication date |
---|---|
TW201028867A (en) | 2010-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101582064B (zh) | 一种大数据量数据处理方法及系统 | |
US11397721B2 (en) | Merging conflict resolution for multi-master distributed databases | |
CN107391628B (zh) | 数据同步方法及装置 | |
US9852204B2 (en) | Read-only operations processing in a paxos replication system | |
Almeida et al. | ChainReaction: a causal+ consistent datastore based on chain replication | |
JP6254606B2 (ja) | バックアップシステムからのデータベースのストリーミング復元 | |
US9002805B1 (en) | Conditional storage object deletion | |
US9417917B1 (en) | Equitable resource allocation for storage object deletion | |
US9052942B1 (en) | Storage object deletion job management | |
US9063946B1 (en) | Backoff-based scheduling of storage object deletions | |
US20150213100A1 (en) | Data synchronization method and system | |
CN107016016B (zh) | 一种数据处理的方法及装置 | |
CN111324606B (zh) | 数据分片的方法及装置 | |
CN113987064A (zh) | 数据处理方法、系统及设备 | |
CN110457059A (zh) | 一种基于redis的序列号生成方法及装置 | |
CN103297485B (zh) | 分布式缓存自动管理系统和分布式缓存自动管理方法 | |
CN114722119A (zh) | 数据同步方法及系统 | |
CN115292414A (zh) | 一种业务数据同步到数仓的方法 | |
US10025680B2 (en) | High throughput, high reliability data processing system | |
TWI476609B (zh) | Data Processing Method and System of Large Data Quantity | |
US10409651B2 (en) | Incremental workflow execution | |
CN113326266A (zh) | 一种基于表结构关系的数据同步方法及装置 | |
CN113553329B (zh) | 数据集成系统和方法 | |
EP3391223B1 (en) | High throughput, high reliability data processing system | |
CN118193537A (zh) | 一种并行创建openGauss外部分区表分区索引的方法和系统 |