本發(fā)明涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,尤其涉及到一種數(shù)據(jù)處理方法以及裝置。
背景技術(shù):
在飛速發(fā)展的互聯(lián)網(wǎng)行業(yè),隨著商業(yè)應(yīng)用數(shù)據(jù)庫事務(wù)量的大幅增長和數(shù)據(jù)庫體積的增大,數(shù)據(jù)庫拆分的概念也日益普及。同樣在數(shù)ZB(Zettabyte)級的對象云存儲系統(tǒng)中,如何在線拆分日益增大的元數(shù)據(jù)也迫在眉睫。一般來說看,數(shù)據(jù)庫拆分大致可以分為以下2種:1、把一個(gè)數(shù)據(jù)庫拆分為多個(gè)數(shù)據(jù)庫,分布在不同的資源單位中;2、把一張數(shù)據(jù)表拆分為多張數(shù)據(jù)表,分布在不同的服務(wù)單元中。其中,數(shù)據(jù)庫包含多個(gè)數(shù)據(jù)表。
由于關(guān)系型數(shù)據(jù)庫的性能和擴(kuò)展性,現(xiàn)在主流選擇關(guān)系型數(shù)據(jù)庫的還是主/從模式,即使用一個(gè)主服務(wù)器處理所有的寫(創(chuàng)建、更新或刪除)操作,同時(shí)使用一個(gè)或多個(gè)從服務(wù)器處理只讀操作。主服務(wù)器使用標(biāo)準(zhǔn)的、近似實(shí)時(shí)的復(fù)制功能將數(shù)據(jù)復(fù)制到各個(gè)從服務(wù)器。當(dāng)某個(gè)數(shù)據(jù)庫逐漸變大,極大影響主服務(wù)器寫操作時(shí),現(xiàn)有技術(shù)中主要有兩種方式把該數(shù)據(jù)庫拆分為多個(gè)小數(shù)據(jù)庫,以提升性能。第一種是停止讀寫拆分方式,即停止主服務(wù)器的寫操作,等待從服務(wù)器同步完成后,禁止主服務(wù)器和從服務(wù)器的讀操作,把離線的數(shù)據(jù)處理到新的數(shù)據(jù)庫服務(wù)器組上,再將讀寫切換到新的服務(wù)器組上。第二種是停止寫拆分方式,即停止主服務(wù)器的寫操作,從服務(wù)器依然提供可讀服務(wù),把離線的數(shù)據(jù)處理到新的數(shù)據(jù)庫服務(wù)器組上,再將讀寫切換到新的服務(wù)器組上。
即在現(xiàn)有技術(shù)中,在對數(shù)據(jù)進(jìn)行拆分的時(shí)候,需要停止對主服務(wù)器的寫操作,就是俗稱的停機(jī)維護(hù),在很大程度上影響正常業(yè)務(wù)的讀寫。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理方法以及裝置,用于在對數(shù)據(jù)進(jìn)行拆分的時(shí)候,不需要停止主庫的寫操作,減少對正常業(yè)務(wù)讀寫的影響。
有鑒于此,本發(fā)明第一方面提供了一種數(shù)據(jù)處理方法,包括:
確定待拆分?jǐn)?shù)據(jù)表;
將所述待拆分?jǐn)?shù)據(jù)表拆分為至少2個(gè)新數(shù)據(jù)表,所述待拆分?jǐn)?shù)據(jù)表保持可讀寫;
在預(yù)置時(shí)間點(diǎn)對所述待拆分?jǐn)?shù)據(jù)表寫入數(shù)據(jù)過程中,將所述待拆分?jǐn)?shù)據(jù)表中所述預(yù)置時(shí)間點(diǎn)前的數(shù)據(jù)處理至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中;
將所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)同步至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中。
在一種可能的實(shí)現(xiàn)中,所述將所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)同步至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中,包括:
獲取所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)寫入日志;
解析所述數(shù)據(jù)寫入日志獲得所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù);
將所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)同步至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中。
在一種可能的實(shí)現(xiàn)中,所述解析的速度快于所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)寫入日志的寫入速度。
在一種可能的實(shí)現(xiàn)中,將所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)同步至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中之后,所述方法還包括:
將對所述待拆分?jǐn)?shù)據(jù)表的數(shù)據(jù)讀寫切換至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中。
在一種可能的實(shí)現(xiàn)中,將所述待拆分?jǐn)?shù)據(jù)表的數(shù)據(jù)讀寫切換至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中,包括:
通過代理(Proxy)服務(wù)器將對所述待拆分?jǐn)?shù)據(jù)表的數(shù)據(jù)讀寫切換至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中。
本發(fā)明第二方面提供了一種數(shù)據(jù)處理裝置,其特征在于,包括:
確定模塊,用于確定待拆分?jǐn)?shù)據(jù)表;
拆分模塊,用于將所述確定模塊確定的所述待拆分?jǐn)?shù)據(jù)表拆分為至少2個(gè)新數(shù)據(jù)表;
處理模塊,用于在對所述確定模塊確定的所述待拆分?jǐn)?shù)據(jù)表寫入數(shù)據(jù)過程中,將預(yù)置時(shí)間點(diǎn)前的數(shù)據(jù)處理至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中;
同步模塊,用于將所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)同步至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中。
在一種可能的實(shí)現(xiàn)中,所述同步模塊包括:
獲取單元,用于獲取所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)寫入日志;
解析單元,用于解析所述獲取單元獲取的所述數(shù)據(jù)寫入日志獲得所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù);
同步單元,將所述解析單元解析得到的所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)同步至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中。
在一種可能的實(shí)現(xiàn)中,所述解析的速度快于所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)寫入日志的寫入速度。
在一種可能的實(shí)現(xiàn)中,所述裝置還包括:
切換模塊,用于對將所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)同步經(jīng)過所述拆分后得到的新數(shù)據(jù)表中之后,將所述待拆分?jǐn)?shù)據(jù)表的數(shù)據(jù)讀寫切換經(jīng)過所述拆分后得到的新數(shù)據(jù)表中。
在一種可能的實(shí)現(xiàn)中,所述切換模塊具體用于:
通過代理Proxy服務(wù)器將對所述待拆分?jǐn)?shù)據(jù)表的數(shù)據(jù)讀寫切換至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中。
從以上技術(shù)方案可以看出,在本發(fā)明實(shí)施例中,通過確定待拆分?jǐn)?shù)據(jù)表,將所述待拆分?jǐn)?shù)據(jù)表拆分為至少2個(gè)數(shù)據(jù)表,其中,所述待拆分?jǐn)?shù)據(jù)表保持可讀寫,在預(yù)置時(shí)間點(diǎn)對所述待拆分?jǐn)?shù)據(jù)表寫入數(shù)據(jù)過程中,將待拆分?jǐn)?shù)據(jù)表中所述預(yù)置時(shí)間點(diǎn)前的數(shù)據(jù)處理至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中,將所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)同步至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中。由此可見,在本發(fā)明實(shí)施例中,保持待拆分?jǐn)?shù)據(jù)的可讀性,再對待拆分?jǐn)?shù)據(jù)表進(jìn)行拆分,不需要停止主服務(wù)器的寫操作,減少對正常業(yè)務(wù)讀寫的影響。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域技術(shù)人員來講,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例一種數(shù)據(jù)處理方法一個(gè)實(shí)施例流程示意圖;
圖2為本發(fā)明實(shí)施例一種數(shù)據(jù)處理方法另一實(shí)施例流程示意圖;
圖3為本發(fā)明實(shí)施例一種數(shù)據(jù)處理方法一個(gè)數(shù)據(jù)拆分示意圖;
圖4為本發(fā)明實(shí)施例一種數(shù)據(jù)處理方法另一數(shù)據(jù)拆分示意圖;
圖5為本發(fā)明實(shí)施例一種數(shù)據(jù)處理方法另一數(shù)據(jù)拆分示意圖;
圖6為本發(fā)明實(shí)施例一種數(shù)據(jù)處理方法另一數(shù)據(jù)拆分示意圖;
圖7為本發(fā)明實(shí)施例一種數(shù)據(jù)處理方法另一數(shù)據(jù)拆分示意圖;
圖8為本發(fā)明實(shí)施例一種數(shù)據(jù)處理裝置一個(gè)實(shí)施例結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明實(shí)施例公開了一種數(shù)據(jù)處理方法以及裝置,用于在對數(shù)據(jù)進(jìn)行拆分的時(shí)候,不需要停止主庫的寫操作,減少對正常業(yè)務(wù)讀寫的影響。
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明實(shí)施例保護(hù)的范圍。
本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”、“第三”、“第四”等(如果存在)是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的實(shí)施例能夠以除了在這里圖示或描述的內(nèi)容以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
請參閱圖1,圖1為本發(fā)明實(shí)施例一種數(shù)據(jù)處理方法一個(gè)實(shí)施例流程示意圖,包括:
101、確定待拆分?jǐn)?shù)據(jù)表。
應(yīng)理解,數(shù)據(jù)表是數(shù)據(jù)庫中一個(gè)非常重要的對象,是其他對象的基礎(chǔ)。根據(jù)保存信息的分類情況,一個(gè)數(shù)據(jù)庫中可能包含若干個(gè)數(shù)據(jù)表,具體此處不做限定。本發(fā)明實(shí)施例中,先確定數(shù)據(jù)庫中的待拆分?jǐn)?shù)據(jù)表,即需要進(jìn)行拆分的數(shù)據(jù)表。
102、將所述待拆分?jǐn)?shù)據(jù)表拆分為至少2個(gè)新數(shù)據(jù)表。
在確定了待拆分?jǐn)?shù)據(jù)表后,將待拆分?jǐn)?shù)據(jù)表拆分為至少2個(gè)新數(shù)據(jù)表。
需要說明的是,在實(shí)際應(yīng)用中,具體拆分為多少個(gè)新數(shù)據(jù)表,可以根據(jù)實(shí)際待拆分?jǐn)?shù)據(jù)表的大小,類型所確定,具體此處不做限定。
103、在預(yù)置時(shí)間點(diǎn)對所述待拆分?jǐn)?shù)據(jù)表寫入數(shù)據(jù)過程中,將待拆分?jǐn)?shù)據(jù)表中預(yù)置時(shí)間點(diǎn)前的數(shù)據(jù)拆分至經(jīng)過拆分后得到的新數(shù)據(jù)表中。
在將待拆分?jǐn)?shù)據(jù)表拆分為至少2新數(shù)據(jù)表后,在預(yù)置時(shí)間點(diǎn)對所述待拆分?jǐn)?shù)據(jù)表寫入數(shù)據(jù)過程中,將待拆分?jǐn)?shù)據(jù)表中預(yù)置時(shí)間點(diǎn)前的數(shù)據(jù)拆分至經(jīng)過拆分后得到的新數(shù)據(jù)表中。
需要說明的是,預(yù)置時(shí)間點(diǎn)為往待拆分?jǐn)?shù)據(jù)表寫入數(shù)據(jù)的時(shí)間點(diǎn),具體的時(shí)間點(diǎn)根據(jù)實(shí)際應(yīng)用情況確定。
104、將所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)同步至經(jīng)過拆分后得到的新數(shù)據(jù)表中。
在預(yù)置時(shí)間點(diǎn)對所述待拆分?jǐn)?shù)據(jù)表寫入數(shù)據(jù)過程中,將所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)同步經(jīng)過拆分后得到的新數(shù)據(jù)表中。
從以上技術(shù)方案可以看出,在本發(fā)明實(shí)施例中,通過確定待拆分?jǐn)?shù)據(jù)表,將所述待拆分?jǐn)?shù)據(jù)表拆分為至少2個(gè)數(shù)據(jù)表,其中,所述待拆分?jǐn)?shù)據(jù)表保持可讀寫,在預(yù)置時(shí)間點(diǎn)對所述待拆分?jǐn)?shù)據(jù)表寫入數(shù)據(jù)過程中,將待拆分?jǐn)?shù)據(jù)表中預(yù)置時(shí)間點(diǎn)前的數(shù)據(jù)處理至經(jīng)過拆分后得到的新數(shù)據(jù)表中,將所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)同步至經(jīng)過拆分后得到的新數(shù)據(jù)表中。由此可見,在本發(fā)明實(shí)施例中,保持待拆分?jǐn)?shù)據(jù)的可讀寫性,對待拆分?jǐn)?shù)據(jù)表進(jìn)行拆分,不需要停止主服務(wù)器的寫操作,減少對正常業(yè)務(wù)讀寫的影響。
為了便于理解,下面對本發(fā)明實(shí)施例進(jìn)行一個(gè)詳細(xì)的描述,請參閱圖2,圖2為本發(fā)明實(shí)施例一種數(shù)據(jù)處理方法另一實(shí)施例流程示意圖,包括:
201、確定待拆分?jǐn)?shù)據(jù)表。
可以確定需要拆分的數(shù)據(jù)表,如3所示,待拆分?jǐn)?shù)據(jù)表(Table)包含多個(gè)數(shù)據(jù)條目,每個(gè)數(shù)據(jù)條目有一個(gè)唯一索引,例如,標(biāo)識(ID)為1的數(shù)據(jù)條目對應(yīng)索引1(index_1),ID為2的數(shù)據(jù)條目對應(yīng)索引2(index_2)。
202、將所述待拆分?jǐn)?shù)據(jù)表拆分為至少2個(gè)新數(shù)據(jù)表。
如圖4所示,在本發(fā)明實(shí)施例中,可以通過待拆分?jǐn)?shù)據(jù)表的索引把待拆分?jǐn)?shù)據(jù)表的數(shù)據(jù)分成多個(gè)新數(shù)據(jù)表生成新的分片(Sharding)信息。該Sharding信息包含每個(gè)新數(shù)據(jù)表所包含的數(shù)據(jù)條目信息,即將Table拆分成新數(shù)據(jù)表1(Table 1),新數(shù)據(jù)表1(Table 2),新數(shù)據(jù)表3(Table 3)等新數(shù)據(jù)表,并且可以指定每個(gè)新數(shù)據(jù)表的數(shù)據(jù)條目數(shù)。需要說明的是,在實(shí)際應(yīng)用中,可以根據(jù)實(shí)際的數(shù)據(jù)庫資源情況,指定每個(gè)新數(shù)據(jù)表的數(shù)據(jù)條目數(shù),具體此處不做限定,圖4只是作為一個(gè)說明性例子進(jìn)行說明。
例如Table1包含index_1以及index_2對應(yīng)的數(shù)據(jù)條目,Table2包含index_3以及index_4對應(yīng)的數(shù)據(jù)條目,Table3包含index_5以及index_5對應(yīng)的數(shù)據(jù)條目。
203、在預(yù)置時(shí)間點(diǎn)對所述待拆分?jǐn)?shù)據(jù)表寫入數(shù)據(jù)過程中,將所述待拆分?jǐn)?shù)據(jù)表中預(yù)置時(shí)間點(diǎn)前的數(shù)據(jù)拆分至經(jīng)過拆分后得到的新數(shù)據(jù)表中。
在對數(shù)據(jù)表寫入數(shù)據(jù)過程中,每一筆數(shù)據(jù)的寫入都會有完整的數(shù)據(jù)寫入日志進(jìn)行記錄。例如,這里以Mysql為例,Mysql的每筆數(shù)據(jù)寫入都會記錄一條完整的數(shù)據(jù)寫入日志叫做binlog,該數(shù)據(jù)寫入日志是被mysql編碼后保存于文件中,通常叫做mysql-bin.$index。該文件可以被逐條解析,解析出來的每個(gè)條目就是具體執(zhí)行的結(jié)構(gòu)化查詢語言SQL(Structured Query Language)語句,從binlog中逐條執(zhí)行解析出來的SQL語句就可以得到一份完整的數(shù)據(jù)。
在本發(fā)明實(shí)施例中,在對所述待拆分?jǐn)?shù)據(jù)表寫入數(shù)據(jù)過程中,可以將預(yù)置時(shí)間點(diǎn),即binlog某個(gè)向待拆分?jǐn)?shù)據(jù)表中寫入數(shù)據(jù)的時(shí)間點(diǎn)前的數(shù)據(jù)作為舊數(shù)據(jù)(Old data),并將Old data拆分至經(jīng)過拆分后的新數(shù)據(jù)表中。
如圖5所示,在對待拆分?jǐn)?shù)據(jù)表寫入數(shù)據(jù)過程中,將預(yù)置時(shí)間點(diǎn)前的每一條數(shù)據(jù)寫入日志記錄為舊數(shù)據(jù)寫入日志(Old binlog),對應(yīng)的,預(yù)置時(shí)間點(diǎn)后的每一條數(shù)據(jù)寫入日志記錄為新數(shù)據(jù)寫入日志(New binlog),可以理解,Old binlog對應(yīng)預(yù)置時(shí)間點(diǎn)前的寫入的數(shù)據(jù),即舊數(shù)據(jù)(Old data),New binlog對應(yīng)預(yù)置時(shí)間點(diǎn)后寫入的數(shù)據(jù),即為新數(shù)據(jù)(New data)。
在本發(fā)明實(shí)施例,可以將Old data拆分至新數(shù)據(jù)表,Table1、Table2以及Table3中的任一一個(gè),或幾個(gè)新數(shù)據(jù)表中。
另外需要說明的是,在本發(fā)明實(shí)施例中,在對待拆分?jǐn)?shù)據(jù)表的數(shù)據(jù)進(jìn)行寫以及讀的過程中,通過代理服務(wù)器(DB Proxy)實(shí)現(xiàn)。
204、獲取所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)寫入日志。
在本發(fā)明實(shí)施例中,可以獲取所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)寫入日志,即New binlog。
205、解析所述數(shù)據(jù)寫入日志獲得所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)。
在獲取預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)寫入日志后,解析所述數(shù)據(jù)寫入日志獲得對應(yīng)的所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)。
需要說明的是,在本發(fā)明實(shí)施例中,對數(shù)據(jù)寫入日志的解析速度大于預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)寫入日志的寫入速度,以確保及時(shí)的解析預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)寫入日志,使得線上業(yè)務(wù)對待拆分?jǐn)?shù)據(jù)表實(shí)時(shí)寫入的數(shù)據(jù)跟拆分的新數(shù)據(jù)表中的數(shù)據(jù)可以保持一致。
例如,假設(shè)new_position是線上業(yè)務(wù)實(shí)時(shí)寫入數(shù)據(jù)時(shí)的日志點(diǎn),sync_positon是新數(shù)據(jù)表保持?jǐn)?shù)據(jù)實(shí)時(shí)同步的日志點(diǎn),sync_positon是從選取的日志點(diǎn)開始同步的,即從預(yù)置時(shí)間點(diǎn)解析數(shù)據(jù)寫入日志,開始同步的時(shí)候,new_position線上的業(yè)務(wù)比sync_position大,由于對數(shù)據(jù)寫入日志的解析速度大于預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)寫入日志的寫入速度,所以在一定時(shí)間后,new_position以及sync_positon后會達(dá)到幾乎相同的值,此時(shí),說明線上業(yè)務(wù)實(shí)時(shí)寫入的數(shù)據(jù)跟拆分的新數(shù)據(jù)表中的數(shù)據(jù)可以保持一致。
206、將所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)同步至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中。
如圖6所示,通過解析所述數(shù)據(jù)寫入日志獲得所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)后,將預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)寫入日志對應(yīng)的數(shù)據(jù)實(shí)時(shí)同步到新的數(shù)據(jù)表,即對應(yīng)的Table1、Table2以及Table3中。
207、通過代理服務(wù)器將所述待拆分?jǐn)?shù)據(jù)表的數(shù)據(jù)讀寫切換至經(jīng)過拆分后的新數(shù)據(jù)表中。
如圖7所示,在本發(fā)明實(shí)施例中,當(dāng)將所述數(shù)據(jù)寫入日志實(shí)時(shí)同步至經(jīng)過拆分后得到的新數(shù)據(jù)表中,并解析所述數(shù)據(jù)寫入日志獲得所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù),可以通過代理服務(wù)器(DB Proxy)將所述待拆分?jǐn)?shù)據(jù)表的數(shù)據(jù)讀寫切換至經(jīng)過拆分后得到的新數(shù)據(jù)表中。
從以上技術(shù)方案可以看出,在本發(fā)明實(shí)施例中,通過確定待拆分?jǐn)?shù)據(jù)表,將所述待拆分?jǐn)?shù)據(jù)表拆分為至少2個(gè)新數(shù)據(jù)表,其中,所述待拆分?jǐn)?shù)據(jù)表保持可讀寫,在對所述待拆分?jǐn)?shù)據(jù)表寫入數(shù)據(jù)過程中,將預(yù)置時(shí)間點(diǎn)前的數(shù)據(jù)處理至經(jīng)過拆分后得到的新數(shù)據(jù)表中;將所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)同步至經(jīng)過拆分后得到的新數(shù)據(jù)表中。由此可見,在本發(fā)明實(shí)施例中,保持待拆分?jǐn)?shù)據(jù)的可讀寫性,對待拆分?jǐn)?shù)據(jù)表進(jìn)行拆分,不需要停止主服務(wù)器的寫操作,減少對正常業(yè)務(wù)讀寫的影響。
上面對本發(fā)明實(shí)施例一種數(shù)據(jù)處理方法進(jìn)行了描述,基于該方法,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)處理裝置,用于實(shí)現(xiàn)上述數(shù)據(jù)處理方法,下面對本發(fā)明實(shí)施例一種數(shù)據(jù)處理方法進(jìn)行描述:
請參閱圖8,圖8為本發(fā)明實(shí)施例一種數(shù)據(jù)處理裝置一個(gè)實(shí)施例結(jié)構(gòu)示意圖,該數(shù)據(jù)處理裝置包括:
確定模塊101,用于確定待拆分?jǐn)?shù)據(jù)表;
拆分模塊102,用于將所述確定模塊101確定的所述待拆分?jǐn)?shù)據(jù)表拆分為至少2個(gè)新數(shù)據(jù)表,所述待拆分?jǐn)?shù)據(jù)表保持可讀寫;
處理模塊103,用于在預(yù)置時(shí)間點(diǎn)對所述確定模塊101確定的所述待拆分?jǐn)?shù)據(jù)表寫入數(shù)據(jù)過程中,將待拆分?jǐn)?shù)據(jù)表中預(yù)置時(shí)間點(diǎn)前的數(shù)據(jù)處理至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中;
同步模塊104,用于將所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)同步至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中。
在一種可能的實(shí)現(xiàn)中,所述同步模塊104包括:
獲取單元1041,用于獲取所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)寫入日志;
解析單元1042,用于解析所述獲取單元1041獲取的所述數(shù)據(jù)寫入日志獲得所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù);
同步單元1043,將所述解析單元1042解析得到的所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)同步至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中。
所述裝置還包括:
切換模塊105,用于所述同步模塊104將所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)同步至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中之后,將對所述待拆分?jǐn)?shù)據(jù)表的數(shù)據(jù)讀寫切換至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中。
在一種可能的實(shí)現(xiàn)中,所述切換模塊105具體用于:
通過代理(Proxy)服務(wù)器將對所述待拆分?jǐn)?shù)據(jù)表的數(shù)據(jù)讀寫切換至經(jīng)過所述拆分后得到的新數(shù)據(jù)表中。
從以上技術(shù)方案可以看出,在本發(fā)明實(shí)施例中,通過確定待拆分?jǐn)?shù)據(jù)表,將所述待拆分?jǐn)?shù)據(jù)表拆分為至少2個(gè)新數(shù)據(jù)表,其中,所述待拆分?jǐn)?shù)據(jù)表保持可讀寫,在對所述待拆分?jǐn)?shù)據(jù)表寫入數(shù)據(jù)過程中,將預(yù)置時(shí)間點(diǎn)前的數(shù)據(jù)處理至經(jīng)過拆分后得到的新數(shù)據(jù)表中;將所述預(yù)置時(shí)間點(diǎn)后的數(shù)據(jù)同步至經(jīng)過拆分后得到的新數(shù)據(jù)表中。由此可見,在本發(fā)明實(shí)施例中,保持待拆分?jǐn)?shù)據(jù)的可讀寫性,對待拆分?jǐn)?shù)據(jù)表進(jìn)行拆分,不需要停止主服務(wù)器的寫操作,減少對正常業(yè)務(wù)讀寫的影響。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述裝置、模塊的具體工作過程以及更多的細(xì)節(jié),可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。
在本申請所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲在一個(gè)計(jì)算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個(gè)存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(英文全稱:Read-Only Memory,縮寫:ROM)、隨機(jī)存取存儲器(英文全稱:Random Access Memory,縮寫:RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。