欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)處理方法和設(shè)備與流程

文檔序號:11155160閱讀:644來源:國知局
本申請實施例涉及通信
技術(shù)領(lǐng)域
,特別涉及一種數(shù)據(jù)處理方法。本申請實施例同時還涉及一種數(shù)據(jù)處理設(shè)備。
背景技術(shù)
:現(xiàn)有的數(shù)據(jù)處理方式中,是基于OLTP(On-LineTransactionProcessing,聯(lián)機事務(wù)處理)數(shù)據(jù)庫,OLAP(OnlineAnalyticalProcessing,聯(lián)機分析處理)數(shù)據(jù)庫以及Infobright數(shù)據(jù)庫來進(jìn)行的,但目前主要的OLTP數(shù)據(jù)庫,采用transaction日志的方法,保證所有插入、修改和刪除的事務(wù)一致性,采用的方法是每個時間周期(天,周,月)開始,創(chuàng)建一張新表,并將采集的數(shù)據(jù)導(dǎo)入到該表中,并且創(chuàng)建靜態(tài)索引。索引創(chuàng)建后,才可支持高效的查詢,其并不支持?jǐn)?shù)據(jù)的實時更新。OLAP數(shù)據(jù)庫則采用按批數(shù)據(jù)導(dǎo)入模式,也不支持實時數(shù)據(jù)查詢。Infobright數(shù)據(jù)庫需要等待批量數(shù)據(jù)更新完成后才可查詢,更新速度慢;且不支持版本體系,不支持歷史版本數(shù)據(jù)查詢,也因此難以擴展并應(yīng)用于分布式數(shù)據(jù)庫。由此可見,目前并沒有一種數(shù)據(jù)處理方式能實現(xiàn)快速對數(shù)據(jù)進(jìn)行更新以及快速查詢。技術(shù)實現(xiàn)要素:針對現(xiàn)有技術(shù)中的缺陷,本申請?zhí)岢隽艘环N數(shù)據(jù)處理方法,應(yīng)用于包括多個只讀快照和一個可寫快照的數(shù)據(jù)存儲系統(tǒng)中,各個只讀快照的生成時間各不相同,該方法包括:基于對數(shù)據(jù)的修改生成可寫快照;定時通過克隆可寫快照生成新的只讀快照;當(dāng)接收到數(shù)據(jù)查詢請求時,通過索引的方式在當(dāng)前生成時間最新的只讀快照完成數(shù)據(jù)查詢。可選的,所述只讀快照與所述可寫快照的結(jié)構(gòu)一致,所述結(jié)構(gòu)中以數(shù)據(jù)列來進(jìn)行數(shù)據(jù)存儲,每個數(shù)據(jù)列中包含有一個或多個數(shù)據(jù)塊,每個數(shù)據(jù)塊中包含相同數(shù)量的子數(shù)據(jù)塊。可選的,基于對數(shù)據(jù)的修改生成可寫快照,具體包括:確定當(dāng)前生成時間最新的只讀快照;將確定的只讀快照中的數(shù)據(jù)信息復(fù)制到預(yù)設(shè)快照中;在預(yù)設(shè)快照中確定待修改的數(shù)據(jù)的位置,并在確定的位置完成數(shù)據(jù)的修改,以及基于修改更新預(yù)設(shè)快照中的數(shù)據(jù)信息;基于更新后的預(yù)設(shè)快照中的數(shù)據(jù)信息生成可寫快照??蛇x的,對數(shù)據(jù)的修改包括:插入數(shù)據(jù),刪除數(shù)據(jù),更新數(shù)據(jù);所述在預(yù)設(shè)快照中確定待修改的數(shù)據(jù)的位置,并在確定的位置完成數(shù)據(jù)的修改,以及基于修改更新預(yù)設(shè)快照中的數(shù)據(jù)信息,具體包括:當(dāng)需要插入數(shù)據(jù)時,在預(yù)設(shè)快照中確定存儲待插入的數(shù)據(jù)的子數(shù)據(jù)塊;并在數(shù)據(jù)存儲空間中對應(yīng)確定的子數(shù)據(jù)塊的位置將待插入的數(shù)據(jù)插入;基于插入的數(shù)據(jù)的數(shù)據(jù)信息更新預(yù)設(shè)快照中的數(shù)據(jù)信息;當(dāng)需要刪除數(shù)據(jù)時,在預(yù)設(shè)快照中確定待刪除的數(shù)據(jù)所在的子數(shù)據(jù)塊;在數(shù)據(jù)存儲空間中對應(yīng)確定的子數(shù)據(jù)塊的位置將待刪除的數(shù)據(jù)刪除,并將預(yù)設(shè)快照中確定待刪除的數(shù)據(jù)所在子數(shù)據(jù)塊所對應(yīng)的數(shù)據(jù)標(biāo)識更改為已刪除狀態(tài);當(dāng)需要更新數(shù)據(jù)時,在預(yù)設(shè)快照中確定待更新的數(shù)據(jù)所在的數(shù)據(jù)塊,復(fù)制確定的數(shù)據(jù)塊,在復(fù)制的數(shù)據(jù)塊中確定需要更新的數(shù)據(jù)所在的子數(shù)據(jù)塊,并在數(shù)據(jù)存儲空間中對應(yīng)確定的子數(shù)據(jù)塊的位置進(jìn)行數(shù)據(jù)更新,生成更新后 的數(shù)據(jù)塊,以及在預(yù)設(shè)快照中將更新后的數(shù)據(jù)塊替換預(yù)設(shè)的快照中對應(yīng)的數(shù)據(jù)塊??蛇x的,所述數(shù)據(jù)塊中存儲的多個數(shù)據(jù)包含有數(shù)值;所述當(dāng)接收到數(shù)據(jù)查詢請求時,通過索引的方式在當(dāng)前生成時間最新的只讀快照完成數(shù)據(jù)查詢,具體包括:當(dāng)接收到數(shù)據(jù)查詢請求時,基于所述數(shù)據(jù)查詢請求確定待查詢的數(shù)據(jù)的數(shù)值;確定當(dāng)前生成時間最新的只讀快照,以及確定的只讀快照中的各個數(shù)據(jù)塊,并確定各個數(shù)據(jù)塊中的數(shù)據(jù)的數(shù)值范圍;通過判斷待查詢的數(shù)據(jù)的數(shù)值是否處于所述數(shù)值范圍內(nèi)來對各個數(shù)據(jù)塊進(jìn)行篩選;在通過掃描篩選出的數(shù)據(jù)塊,并進(jìn)行數(shù)值匹配,以完成數(shù)據(jù)查詢。可選的,所述數(shù)據(jù)塊中存儲的多個數(shù)據(jù)包含有數(shù)值;所述當(dāng)接收到數(shù)據(jù)查詢請求時,通過索引的方式在當(dāng)前生成時間最新的只讀快照完成數(shù)據(jù)查詢,具體包括:當(dāng)接收到數(shù)據(jù)查詢請求時,基于所述數(shù)據(jù)查詢請求確定待查詢的數(shù)據(jù)的數(shù)值;基于各個數(shù)據(jù)塊中的各個數(shù)據(jù)的數(shù)值新生成按照數(shù)值大小排序的數(shù)據(jù)排序序列;利用二分查找法以及待查詢的數(shù)據(jù)的數(shù)值在所述數(shù)據(jù)排序序列中進(jìn)行查找,以完成數(shù)據(jù)查詢??蛇x的,基于各個數(shù)據(jù)塊中的各個數(shù)據(jù)的數(shù)值新生成按照數(shù)值大小排序的數(shù)據(jù)排序序列,具體包括:通過為各個數(shù)據(jù)塊中的各個數(shù)據(jù)建立倒排索引的方式,生成按照數(shù)值從小到大排序的數(shù)據(jù)排序序列。本申請還提出了一種數(shù)據(jù)處理設(shè)備,應(yīng)用于包括多個只讀快照和一個可寫快照的數(shù)據(jù)存儲系統(tǒng)中,各個只讀快照的生成時間各不相同,包括:第一生成模塊,用于基于對數(shù)據(jù)的修改生成可寫快照;第二生成模塊,用于定時通過克隆可寫快照生成新的只讀快照;查詢模塊,用于當(dāng)接收到數(shù)據(jù)查詢請求時,通過索引的方式在當(dāng)前生成時間最新的只讀快照完成數(shù)據(jù)查詢??蛇x的,所述只讀快照與所述可寫快照的結(jié)構(gòu)一致,所述結(jié)構(gòu)中以數(shù)據(jù)列來進(jìn)行數(shù)據(jù)存儲,每個數(shù)據(jù)列中包含有一個或多個數(shù)據(jù)塊,每個數(shù)據(jù)塊中包含相同數(shù)量的子數(shù)據(jù)塊??蛇x的,第一生成模塊,具體用于:確定當(dāng)前生成時間最新的只讀快照;將確定的只讀快照中的數(shù)據(jù)信息復(fù)制到預(yù)設(shè)快照中;在預(yù)設(shè)的快照中確定待修改的數(shù)據(jù)的位置,并在確定的位置完成數(shù)據(jù)的修改,以及基于修改更新預(yù)設(shè)快照中的數(shù)據(jù)信息;基于更新后的預(yù)設(shè)快照中的數(shù)據(jù)信息生成可寫快照。可選的,對數(shù)據(jù)的修改包括:插入數(shù)據(jù),刪除數(shù)據(jù),更新數(shù)據(jù);所述第一生成模塊在預(yù)設(shè)的快照中確定待修改的數(shù)據(jù)的位置,并在確定的位置完成數(shù)據(jù)的修改,具體包括:所述第一生成模塊在預(yù)設(shè)快照中確定待修改的數(shù)據(jù)的位置,并在確定的位置完成數(shù)據(jù)的修改,以及基于修改更新預(yù)設(shè)快照中的數(shù)據(jù)信息,具體包括:當(dāng)需要插入數(shù)據(jù)時,在預(yù)設(shè)快照中確定存儲待插入的數(shù)據(jù)的子數(shù)據(jù)塊;并在數(shù)據(jù)存儲空間中對應(yīng)確定的子數(shù)據(jù)塊的位置將待插入的數(shù)據(jù)插入;基于插入的數(shù)據(jù)的數(shù)據(jù)信息更新預(yù)設(shè)快照中的數(shù)據(jù)信息;當(dāng)需要刪除數(shù)據(jù)時,在預(yù)設(shè)快照中確定待刪除的數(shù)據(jù)所在的子數(shù)據(jù)塊; 在數(shù)據(jù)存儲空間中對應(yīng)確定的子數(shù)據(jù)塊的位置將待刪除的數(shù)據(jù)刪除,并將預(yù)設(shè)快照中確定待刪除的數(shù)據(jù)所在子數(shù)據(jù)塊所對應(yīng)的數(shù)據(jù)標(biāo)識更改為已刪除狀態(tài);當(dāng)需要更新數(shù)據(jù)時,在預(yù)設(shè)快照中確定待更新的數(shù)據(jù)所在的數(shù)據(jù)塊,復(fù)制確定的數(shù)據(jù)塊,在復(fù)制的數(shù)據(jù)塊中確定需要更新的數(shù)據(jù)所在的子數(shù)據(jù)塊,并在數(shù)據(jù)存儲空間中對應(yīng)確定的子數(shù)據(jù)塊的位置進(jìn)行數(shù)據(jù)更新,生成更新后的數(shù)據(jù)塊,以及在預(yù)設(shè)快照中將更新后的數(shù)據(jù)塊替換預(yù)設(shè)的快照中對應(yīng)的數(shù)據(jù)塊。可選的,所述數(shù)據(jù)塊中存儲的多個數(shù)據(jù)包含有數(shù)值;所述查詢模塊,具體用于:當(dāng)接收到數(shù)據(jù)查詢請求時,基于所述數(shù)據(jù)查詢請求確定待查詢的數(shù)據(jù)的數(shù)值;確定當(dāng)前生成時間最新的只讀快照,以及確定的只讀快照中的各個數(shù)據(jù)塊,并確定各個數(shù)據(jù)塊中的數(shù)據(jù)的數(shù)值范圍;通過判斷待查詢的數(shù)據(jù)的數(shù)值是否處于所述數(shù)值范圍內(nèi)來對各個數(shù)據(jù)塊進(jìn)行篩選;在通過掃描篩選出的數(shù)據(jù)塊,并進(jìn)行數(shù)值匹配,以完成數(shù)據(jù)查詢。可選的,所述數(shù)據(jù)塊中存儲的多個數(shù)據(jù)包含有數(shù)值;所述查詢模塊,具體用于:當(dāng)接收到數(shù)據(jù)查詢請求時,基于所述數(shù)據(jù)查詢請求確定待查詢的數(shù)據(jù)的數(shù)值;基于各個數(shù)據(jù)塊中的各個數(shù)據(jù)的數(shù)值新生成按照數(shù)值大小排序的數(shù)據(jù)排序序列;利用二分查找法以及待查詢的數(shù)據(jù)的數(shù)值在所述數(shù)據(jù)排序序列中進(jìn)行查找,以完成數(shù)據(jù)查詢。可選的,所述查詢模塊基于各個數(shù)據(jù)塊中的各個數(shù)據(jù)的數(shù)值新生成按照數(shù)值大小排序的數(shù)據(jù)排序序列,具體包括:通過為各個數(shù)據(jù)塊中的各個數(shù)據(jù)建立倒排索引的方式,生成按照數(shù)值從小到大排序的數(shù)據(jù)排序序列。與現(xiàn)有技術(shù)相比,本申請通過基于對數(shù)據(jù)的修改生成可寫快照;定時通過克隆可寫快照生成新的只讀快照;當(dāng)接收到數(shù)據(jù)查詢請求時,通過索引的方式在當(dāng)前生成時間最新的只讀快照完成數(shù)據(jù)查詢;以此通過修改和查詢分離,實現(xiàn)了快速地實時更新性能,同時基于采用快速和倒排兩種索引,有效提高了查詢性能,此外,數(shù)據(jù)采用數(shù)據(jù)列存儲,每個數(shù)據(jù)列又可以按固定塊大小,分成多個數(shù)據(jù)塊,每個數(shù)據(jù)塊的長度相同;因此在修改時,只需要將修改的影響范圍限定到需要修改的數(shù)據(jù)塊內(nèi),而不會影響到其他的數(shù)據(jù)塊,減小修改所造成的資源消耗。附圖說明圖1為本申請實施例提出的一種數(shù)據(jù)處理方法的流程示意圖;圖2為本申請實施例提出的一種生成可寫快照的示意圖;圖3為本申請實施例提出的一種快照的結(jié)構(gòu)示意圖;圖4為本申請實施例提出的一種插入數(shù)據(jù)后的可寫快照的結(jié)構(gòu)示意圖;圖5為本申請實施例提出的一種刪除數(shù)據(jù)后的可寫快照的結(jié)構(gòu)示意圖;圖6為本申請實施例提出的一種更新數(shù)據(jù)后的可寫快照的結(jié)構(gòu)示意圖;圖7為本申請實施例提出的一種倒序索引的示意圖;圖8為本申請實施例提出的一種數(shù)據(jù)處理設(shè)備的結(jié)構(gòu)示意圖。具體實施方式本申請實施例提出了一種數(shù)據(jù)處理方法,應(yīng)用于包括多個只讀快照和一 個可寫快照的數(shù)據(jù)存儲系統(tǒng)中,各個只讀快照的生成時間各不相同,只讀快照以及可寫快照中存儲有各數(shù)據(jù)的數(shù)據(jù)信息(包括各數(shù)據(jù)的描述信息以及各數(shù)據(jù)所處位置的位置信息),而不是直接存儲數(shù)據(jù)本身,由于數(shù)據(jù)是會不斷更新的,因此,每隔一段時間基于當(dāng)前數(shù)據(jù)的描述信息以及數(shù)據(jù)所處的位置生成一個只讀快照,而可寫快照則是基于當(dāng)前對數(shù)據(jù)進(jìn)行的修改生成的。如圖1所示,該方法包括:步驟101、基于對數(shù)據(jù)的修改生成可寫快照。具體的,生成可寫快照,可以有如下子步驟:步驟A,確定當(dāng)前生成時間最新的只讀快照;步驟B,將確定的只讀快照中的數(shù)據(jù)信息復(fù)制到預(yù)設(shè)的快照中;步驟C,在預(yù)設(shè)快照中確定待修改的數(shù)據(jù)的位置,并在確定的位置完成數(shù)據(jù)的修改,以及基于修改更新預(yù)設(shè)快照中的數(shù)據(jù)信息;步驟D,基于更新后的預(yù)設(shè)快照中的數(shù)據(jù)信息生成可寫快照。以一個具體的例子來進(jìn)行說明,例如一個班級原有30個學(xué)生,每個學(xué)生對應(yīng)一個數(shù)據(jù),基于學(xué)生的信息(包括描述信息和位置信息)生成只讀快照,因此生成時間最新的只讀快照中,例如命名為只讀快照1,會保存有這30個學(xué)生的描述信息,例如可以有姓名,性別,年齡,民族等等,以及這30個學(xué)生在該班級所處的位置信息,例如位置信息可以表現(xiàn)為第2排第2座等等。而若該班級當(dāng)前有一個新加入的學(xué)生,則會復(fù)制只讀快照1中的數(shù)據(jù)(對應(yīng)30個學(xué)生的信息)到預(yù)設(shè)的空白的快照中,并在復(fù)制完成之后,基于預(yù)設(shè)的快照確定新加入的學(xué)生的位置,并最終根據(jù)確定的位置安置該學(xué)生。事實上,由于涉及到數(shù)據(jù)的修改,可寫快照是變化的,首先可寫快照是復(fù)制了最新的只讀快照之后的預(yù)設(shè)快照,然后在確定了第31個學(xué)生的位置之后,并最終基于預(yù)設(shè)快照完成第31個學(xué)生安置的同時,預(yù)設(shè)快照也完成相應(yīng)的修改,最終的可寫快照中會包括31個學(xué)生的描述信息,以及31個學(xué)生對應(yīng)的位置,可 見可寫快照中存儲的是對應(yīng)當(dāng)前最新數(shù)據(jù)的數(shù)據(jù)信息。而后續(xù)在進(jìn)行查詢時,所有的查詢都可運行在任意一個只讀快照上(例如對應(yīng)圖2中的只讀快照RO-SNAP1,只讀快照RO-SNAP2,只讀快照RO-SNAP3),由于不同的只讀快照對應(yīng)不同時間的數(shù)據(jù),因此通過只讀快照,可以查詢到最新的數(shù)據(jù)的狀態(tài),以及歷史數(shù)據(jù)的狀態(tài),且不會影響到其他的只讀快照的查詢過程以及可寫快照的生成,并可以在進(jìn)行一個或多個數(shù)據(jù)查詢的同時,進(jìn)行數(shù)據(jù)的修改,從而實現(xiàn)高效的數(shù)據(jù)查詢與修改。若是要查詢當(dāng)前數(shù)據(jù)的信息,則最好基于最新的只讀快照(時間越新,所包含的數(shù)據(jù)越新)進(jìn)行查詢;而可寫快照只有一個,是基于所有實時的數(shù)據(jù)的修改來更新的,例如如圖2所示的,當(dāng)需要插入(insert)一個新的數(shù)據(jù)4時,基于最新的只讀快照RO-SNAP3,最終生成的可寫快照WR-DATA中包含只讀快照RO-SNAP3中的三個數(shù)據(jù),以及新的數(shù)據(jù)4,其中,只讀快照以及可寫快照的命名可以有很多方式,并不限于以上的這幾種。每個快照實際存儲的是上個快照中數(shù)據(jù)的數(shù)據(jù)信息(包括描述信息以及位置信息)和相較于上個快照的增量數(shù)據(jù)的數(shù)據(jù)信息,而真實的數(shù)據(jù)只有一份,以此可以有效減少存儲空間。每隔一段時間(例如為60s)會自動對當(dāng)前的可寫快照克隆一個只讀快照,例如克隆可寫快照WR-DATA生成只讀快照RO-SNAP4,并當(dāng)有數(shù)據(jù)查詢請求時,基于只讀快照進(jìn)行查詢,可以在生成時間最新的只讀快照進(jìn)行查詢,也可以在別的歷史時間生成的只讀快照中進(jìn)行查詢。而具體的,所述只讀快照與所述可寫快照的結(jié)構(gòu)一致,所述結(jié)構(gòu)中以數(shù)據(jù)列來進(jìn)行數(shù)據(jù)存儲,每個數(shù)據(jù)列中包含有一個或多個數(shù)據(jù)塊,每個數(shù)據(jù)塊中包含相同數(shù)量的子數(shù)據(jù)塊,其結(jié)構(gòu)可以如圖3所示,為一個包含兩列(也即id和name)的表的存儲結(jié)構(gòu),每列的塊大小為3,至于Deletebitset則是對應(yīng)同一行的數(shù)據(jù)是否被刪除的標(biāo)識,在具體的應(yīng)用環(huán)境中,還可以根據(jù)需要設(shè)置其他的數(shù)據(jù)標(biāo)識,用以標(biāo)識對應(yīng)數(shù)據(jù)的狀態(tài),仍以圖3為例,圖3所 示的快照中包含有四條記錄:(1,"one"),(2,"two"),(3,"three"),(4,"four")。當(dāng)然,除此以外,還可以包括其他的數(shù)據(jù)記錄,例如記錄學(xué)生的學(xué)號,以及對應(yīng)的學(xué)生名字,以及身高,體重等等的數(shù)據(jù)。具體的,對數(shù)據(jù)的修改包括:插入數(shù)據(jù)(insert),刪除數(shù)據(jù)(update),更新數(shù)據(jù)(delete);為此,步驟C中在預(yù)設(shè)的快照中確定待修改的數(shù)據(jù)的位置,并在確定的位置完成數(shù)據(jù)的修改,以及基于修改更新預(yù)設(shè)快照中的數(shù)據(jù)信息具體包括:(1)、當(dāng)需要插入數(shù)據(jù)時,在預(yù)設(shè)的快照中確定存儲待插入的數(shù)據(jù)的子數(shù)據(jù)塊;并在數(shù)據(jù)存儲空間中對應(yīng)確定的子數(shù)據(jù)塊的位置將待插入的數(shù)據(jù)插入;基于插入的數(shù)據(jù)的數(shù)據(jù)信息更新預(yù)設(shè)快照中的數(shù)據(jù)信息。具體的Insert數(shù)據(jù)過程中,當(dāng)執(zhí)行SQLinsertintotable(id,name)values(5,"five")后,也即插入數(shù)據(jù)5后,快照的存儲結(jié)構(gòu)變化如圖4所示。預(yù)設(shè)的快照,也即最開始的可寫快照,用于確定存儲待插入的數(shù)據(jù)的子數(shù)據(jù)塊的位置,例如確定為子數(shù)據(jù)塊1中的位置1,真實數(shù)據(jù)的插入過程中,在數(shù)據(jù)存儲空間中找到對應(yīng)可寫快照確定的位置(例如為子數(shù)據(jù)塊1中的位置1)的真實數(shù)據(jù)存儲位置,并在確定的真實數(shù)據(jù)存儲位置執(zhí)行數(shù)據(jù)的插入,與此同時,也相應(yīng)地在該可寫快照中基于數(shù)據(jù)的插入更新該可寫快照;其他對于數(shù)據(jù)的修改與此類似。(2)、當(dāng)需要刪除數(shù)據(jù)時,在預(yù)設(shè)快照中確定待刪除的數(shù)據(jù)所在的子數(shù)據(jù)塊;在數(shù)據(jù)存儲空間中對應(yīng)確定的子數(shù)據(jù)塊的位置將待刪除的數(shù)據(jù)刪除,并將預(yù)設(shè)快照中確定待刪除的數(shù)據(jù)所在子數(shù)據(jù)塊所對應(yīng)的數(shù)據(jù)標(biāo)識更改為已刪除狀態(tài)。具體的Delete數(shù)據(jù)過程中,對于刪除SQLdeletefromtablewhereid=2,也即刪除數(shù)據(jù)2,則只需要將位圖的第二行標(biāo)記為1即可,而并不會實際刪除該數(shù)據(jù)2,從而避免對其他數(shù)據(jù)的影響,生成的可寫快照的存儲結(jié)構(gòu)如圖5所 示。(3)、當(dāng)需要更新數(shù)據(jù)時,在預(yù)設(shè)快照中確定待更新的數(shù)據(jù)所在的數(shù)據(jù)塊,復(fù)制確定的數(shù)據(jù)塊,在復(fù)制的數(shù)據(jù)塊中確定需要更新的數(shù)據(jù)所在的子數(shù)據(jù)塊,并在數(shù)據(jù)存儲空間中對應(yīng)確定的子數(shù)據(jù)塊的位置進(jìn)行數(shù)據(jù)更新,生成更新后的數(shù)據(jù)塊,以及在預(yù)設(shè)快照中將更新后的數(shù)據(jù)塊替換預(yù)設(shè)的快照中對應(yīng)的數(shù)據(jù)塊。具體的Update數(shù)據(jù)過程中,當(dāng)執(zhí)行SQLupdatetablesetname="san"whereid=3,也即將數(shù)據(jù)3進(jìn)行更新,確定數(shù)據(jù)3在數(shù)據(jù)塊1(包括數(shù)據(jù)1,數(shù)據(jù)2,數(shù)據(jù)3,分別對應(yīng)one,two,three)中,為此,拷貝該數(shù)據(jù)塊1,并將新拷貝塊的第三行置為“san”,并將修改后的數(shù)據(jù)塊1替換原更新前的數(shù)據(jù)塊1,生成的可寫快照的存儲結(jié)構(gòu)如圖6所示。步驟102、定時通過克隆可寫快照生成新的只讀快照。該具體過程如圖2所示,即進(jìn)行克隆,復(fù)制一份。步驟103、當(dāng)接收到數(shù)據(jù)查詢請求時,通過索引的方式在當(dāng)前生成時間最新的只讀快照完成數(shù)據(jù)查詢。具體的,可以在接收到數(shù)據(jù)查詢請求時進(jìn)行查詢,還可以是在如前述的進(jìn)行數(shù)據(jù)處理中,在定位需要處理的位置時進(jìn)行查詢,其中所述數(shù)據(jù)塊中存儲的多個數(shù)據(jù)包含有數(shù)值;有以下兩種方式來進(jìn)行查詢:方式一、當(dāng)接收到數(shù)據(jù)查詢請求時,基于所述數(shù)據(jù)查詢請求確定待查詢的數(shù)據(jù)的數(shù)值;確定當(dāng)前生成時間最新的只讀快照,以及確定的只讀快照中的各個數(shù)據(jù)塊,并確定各個數(shù)據(jù)塊中的數(shù)據(jù)的數(shù)值范圍;通過判斷待查詢的數(shù)據(jù)的數(shù)值是否處于所述數(shù)值范圍內(nèi)來對各個數(shù)據(jù)塊進(jìn)行篩選;在通過掃描篩選出的數(shù)據(jù)塊,并進(jìn)行數(shù)值匹配,以完成數(shù)據(jù)查詢。具體的,對于每個數(shù)據(jù)塊,記錄該數(shù)據(jù)塊的最大值和最小值,并進(jìn)行等值和范圍查詢,只有等值和范圍與最大值和最小值有交集時,才會掃描該塊;否則直接跳過,以達(dá)到加快查詢的性能。例如,id列的第一個塊的最大值為3,最小值為1;當(dāng)查詢SQL為select*fromtablewhereid=2,由于2在[1,3]范圍中,所以需要掃描該數(shù)據(jù)塊,并找到結(jié)果為(2,"two");再例如,當(dāng)查詢SQL為select*fromtablewhereid=4,由于4不在[1,3]范圍中,所以可以確定該塊不滿足該條件,并跳過該塊。以及,當(dāng)查詢SQL為select*fromtablewhereidbetween2and4,由于由于[2,4]與[1,3]有交集,所以需要掃描該數(shù)據(jù)塊,并找到結(jié)果為(2,"two"),(3,"three");當(dāng)查詢SQL為select*fromtablewhereidbetween4and5,由于由于[4,5]與[1,3]沒有交集,所以可以確定該塊不滿足該條件,并跳過該塊。方式二、當(dāng)接收到數(shù)據(jù)查詢請求時,基于所述數(shù)據(jù)查詢請求確定待查詢的數(shù)據(jù)的數(shù)值;基于各個數(shù)據(jù)塊中的各個數(shù)據(jù)的數(shù)值新生成按照數(shù)值大小排序的數(shù)據(jù)排序序列;利用二分查找法以及待查詢的數(shù)據(jù)的數(shù)值在所述數(shù)據(jù)排序序列中進(jìn)行查找,以完成數(shù)據(jù)查詢。而具體的,方式二中基于各個數(shù)據(jù)塊中的各個數(shù)據(jù)的數(shù)值新生成按照數(shù)值大小排序的數(shù)據(jù)排序序列,具體包括:通過為各個數(shù)據(jù)塊中的各個數(shù)據(jù)建立倒排索引的方式,生成按照數(shù)值從小到大排序的數(shù)據(jù)排序序列。而具體的,針對對于經(jīng)常查詢的數(shù)據(jù)列,采用方式一的快速索引不能排除所有的塊,所以需要對每個數(shù)據(jù)塊建立一種快速倒排索引。其中,倒排索引是一個長度為塊大小的數(shù)值型數(shù)組。數(shù)組的第i個值是將該塊從小到大排序后的元素在數(shù)據(jù)塊中的位置。例如圖7所示,數(shù)據(jù)塊中存儲的數(shù)據(jù)依次為13,16,14,1,12,對其進(jìn)行排序,13為首位,排在第0位,其他的依次對應(yīng),16-1,14-2,1-3,12-4,而在數(shù)據(jù)塊中最小數(shù)值為數(shù)據(jù)1,對應(yīng)的排序號為3,第二為數(shù)據(jù)12(對應(yīng)排序號4),第三為數(shù)據(jù)13(對應(yīng)排序號0),第四位數(shù)據(jù)14(對應(yīng)排序號2),最大數(shù)據(jù)為16(對應(yīng)排序號1),以此生成invertIndex,再遍歷invertIndex的每個元素,再以該值作為index,讀取block值,即可以得到一個有序的序列。如下圖所示,倒排索引第一個值為3,讀取block的第3個元素(從0開始計數(shù)),得到1;倒排索引第二個值為4,讀取block的第4個元素,得到12;以此類推,可以得到有序序列:1,12,13,14,16。對于有序序列,可以使用二分查找,也可以做等值或范圍查詢。具體的二分查找,例如有數(shù)據(jù)塊中有數(shù)據(jù)1-100,待查詢的為23,首先,查找1-100中的中間數(shù)50,與23進(jìn)行比較,由于50大于23,因此,繼續(xù)找1-50的中間數(shù)與23進(jìn)行比較,以此提高查找效率。為了對本申請進(jìn)行進(jìn)一步的說明,本申請實施例還公開了一種數(shù)據(jù)處理設(shè)備,應(yīng)用于包括多個只讀快照和一個可寫快照的數(shù)據(jù)存儲系統(tǒng)中,各個只讀快照的生成時間各不相同,如圖8所示,包括:第一生成模塊801,用于基于對數(shù)據(jù)的修改生成可寫快照;第二生成模塊802,用于定時通過克隆可寫快照生成新的只讀快照;查詢模塊803,用于當(dāng)接收到數(shù)據(jù)查詢請求時,通過索引的方式在當(dāng)前生成時間最新的只讀快照完成數(shù)據(jù)查詢。具體的,所述只讀快照與所述可寫快照的結(jié)構(gòu)一致,所述結(jié)構(gòu)中以數(shù)據(jù)列來進(jìn)行數(shù)據(jù)存儲,每個數(shù)據(jù)列中包含有一個或多個數(shù)據(jù)塊,每個數(shù)據(jù)塊中包含相同數(shù)量的子數(shù)據(jù)塊。具體的,第一生成模塊801,具體用于:確定當(dāng)前生成時間最新的只讀快照;將確定的只讀快照中的數(shù)據(jù)信息復(fù)制到預(yù)設(shè)快照中;在預(yù)設(shè)的快照中確定待修改的數(shù)據(jù)的位置,并在確定的位置完成數(shù)據(jù)的修改,以及基于修改更新預(yù)設(shè)快照中的數(shù)據(jù)信息;基于更新后的預(yù)設(shè)快照中的數(shù)據(jù)信息生成可寫快照。具體的,對數(shù)據(jù)的修改包括:插入數(shù)據(jù),刪除數(shù)據(jù),更新數(shù)據(jù);所述第一生成模塊801在預(yù)設(shè)快照中確定待修改的數(shù)據(jù)的位置,并在確定的位置完成數(shù)據(jù)的修改,以及基于修改更新預(yù)設(shè)快照中的數(shù)據(jù)信息,具體包括:當(dāng)需要插入數(shù)據(jù)時,在預(yù)設(shè)快照中確定存儲待插入的數(shù)據(jù)的子數(shù)據(jù)塊;并在數(shù)據(jù)存儲空間中對應(yīng)確定的子數(shù)據(jù)塊的位置將待插入的數(shù)據(jù)插入;基于插入的數(shù)據(jù)的數(shù)據(jù)信息更新預(yù)設(shè)快照中的數(shù)據(jù)信息;當(dāng)需要刪除數(shù)據(jù)時,在預(yù)設(shè)快照中確定待刪除的數(shù)據(jù)所在的子數(shù)據(jù)塊;在數(shù)據(jù)存儲空間中對應(yīng)確定的子數(shù)據(jù)塊的位置將待刪除的數(shù)據(jù)刪除,并將預(yù)設(shè)快照中確定待刪除的數(shù)據(jù)所在子數(shù)據(jù)塊所對應(yīng)的數(shù)據(jù)標(biāo)識更改為已刪除狀態(tài);當(dāng)需要更新數(shù)據(jù)時,在預(yù)設(shè)快照中確定待更新的數(shù)據(jù)所在的數(shù)據(jù)塊,復(fù)制確定的數(shù)據(jù)塊,在復(fù)制的數(shù)據(jù)塊中確定需要更新的數(shù)據(jù)所在的子數(shù)據(jù)塊,并在數(shù)據(jù)存儲空間中對應(yīng)確定的子數(shù)據(jù)塊的位置進(jìn)行數(shù)據(jù)更新,生成更新后的數(shù)據(jù)塊,以及在預(yù)設(shè)快照中將更新后的數(shù)據(jù)塊替換預(yù)設(shè)的快照中對應(yīng)的數(shù)據(jù)塊。具體的,所述數(shù)據(jù)塊中存儲的多個數(shù)據(jù)包含有數(shù)值;所述查詢模塊803,具體用于:當(dāng)接收到數(shù)據(jù)查詢請求時,基于所述數(shù)據(jù)查詢請求確定待查詢的數(shù)據(jù)的數(shù)值;確定當(dāng)前生成時間最新的只讀快照,以及確定的只讀快照中的各個數(shù)據(jù)塊,并確定各個數(shù)據(jù)塊中的數(shù)據(jù)的數(shù)值范圍;通過判斷待查詢的數(shù)據(jù)的數(shù)值是否處于所述數(shù)值范圍內(nèi)來對各個數(shù)據(jù)塊進(jìn)行篩選;在通過掃描篩選出的數(shù)據(jù)塊,并進(jìn)行數(shù)值匹配,以完成數(shù)據(jù)查詢。具體的,所述數(shù)據(jù)塊中存儲的多個數(shù)據(jù)包含有數(shù)值;所述查詢模塊803,具體用于:當(dāng)接收到數(shù)據(jù)查詢請求時,基于所述數(shù)據(jù)查詢請求確定待查詢的數(shù)據(jù)的數(shù)值;基于各個數(shù)據(jù)塊中的各個數(shù)據(jù)的數(shù)值新生成按照數(shù)值大小排序的數(shù)據(jù)排序序列;利用二分查找法以及待查詢的數(shù)據(jù)的數(shù)值在所述數(shù)據(jù)排序序列中進(jìn)行查找,以完成數(shù)據(jù)查詢。所述查詢模塊803基于各個數(shù)據(jù)塊中的各個數(shù)據(jù)的數(shù)值新生成按照數(shù)值大小排序的數(shù)據(jù)排序序列,具體包括:通過為各個數(shù)據(jù)塊中的各個數(shù)據(jù)建立倒排索引的方式,生成按照數(shù)值從小到大排序的數(shù)據(jù)排序序列針對該系統(tǒng)信息優(yōu)化方法,本發(fā)明的關(guān)鍵點和欲保護(hù)點如下:本申請通過基于對數(shù)據(jù)的修改生成可寫快照;定時通過克隆可寫快照生成新的只讀快照;當(dāng)接收到數(shù)據(jù)查詢請求時,通過索引的方式在當(dāng)前生成時間最新的只讀 快照完成數(shù)據(jù)查詢;以此通過修改和查詢分離,實現(xiàn)了快速地實時更新性能,同時基于采用快速和倒排兩種索引,有效提高了查詢性能。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可以通過硬件實現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是CD-ROM,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實施場景所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施場景的示意圖,附圖中的模塊或流程并不一定是實施本申請所必須的。本領(lǐng)域技術(shù)人員可以理解實施場景中的裝置中的模塊可以按照實施場景描述進(jìn)行分布于實施場景的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實施場景的一個或多個裝置中。上述實施場景的模塊可以合并為一個模塊,也可以進(jìn)一步拆分成多個子模塊。上述本申請序號僅僅為了描述,不代表實施場景的優(yōu)劣。以上公開的僅為本申請的幾個具體實施場景,但是,本申請并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本申請的保護(hù)范圍。當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
廊坊市| 炎陵县| 比如县| 全南县| 新营市| 合作市| 招远市| 静宁县| 渭南市| 万盛区| 玉山县| 蒙山县| 会理县| 宁国市| 酒泉市| 曲阜市| 巴中市| 安阳市| 乌拉特中旗| 都兰县| 武平县| 聂拉木县| 海原县| 哈密市| 佛冈县| 东光县| 长宁区| 云和县| 大同市| 旅游| 达拉特旗| 义马市| 栾城县| 乌兰县| 宁德市| 泉州市| 蒙城县| 石嘴山市| 扶余县| 万荣县| 杭锦后旗|