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