本發(fā)明涉及數(shù)據(jù)查詢
技術領域:
:,特別是涉及一種數(shù)據(jù)查詢方法、裝置及系統(tǒng)。
背景技術:
::隨著信息量爆炸式的增長,對存儲各種信息的數(shù)據(jù)存儲系統(tǒng)的存儲能力的要求也越來越高,此時分布式數(shù)據(jù)存儲系統(tǒng)應運而生。通常,分布式數(shù)據(jù)存儲系統(tǒng)可以通過增加存儲服務器的方式來增大其存儲容量,因而具有較強的數(shù)據(jù)存儲能力?,F(xiàn)有技術中提供了這樣一種針對分布式數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)查詢方法,該分布式數(shù)據(jù)存儲系統(tǒng)中包括至少一個管理服務器和多個存儲服務器,客戶端向分布式數(shù)據(jù)存儲系統(tǒng)中的管理服務器發(fā)送針對待查詢數(shù)據(jù)的查詢請求,其中,該查詢請求中攜帶有待查詢數(shù)據(jù)的標識類信息;管理服務器根據(jù)接收到的查詢請求中攜帶的標識類信息,對多個存儲服務器中的已存儲數(shù)據(jù)進行逐一掃描,直到查找到與該標識類信息相對應的目標數(shù)據(jù)為止,并將查找到的目標數(shù)據(jù)返回至客戶端,客戶端獲得待查詢數(shù)據(jù)的查詢結果。由以上可見,分布式數(shù)據(jù)存儲系統(tǒng)中的管理服務器在查找待查詢數(shù)據(jù)時,是通過逐一掃描分布式存儲系統(tǒng)中的多個存儲服務器的方式來獲得的,這樣,當分布式數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)存儲容量越大時,逐一掃描數(shù)據(jù)的時間就會越長,從而導致客戶端獲得待查詢數(shù)據(jù)的查詢結果的速度就會越慢。技術實現(xiàn)要素:本發(fā)明實施例的目的在于提供一種數(shù)據(jù)查詢方法、裝置以及系統(tǒng),以實現(xiàn)對分布式數(shù)據(jù)存儲系統(tǒng)中的已存儲數(shù)據(jù)的快速查詢。為達到上述目的,本發(fā)明實施例公開了一種數(shù)據(jù)查詢方法,應用于分布式數(shù)據(jù)存儲系統(tǒng)中基于結構化查詢語言sql的查詢服務器,其中,所述分布式數(shù)據(jù)存儲系統(tǒng)包括至少一個查詢服務器和至少一個存儲服務器,查詢服務器用于 存儲所述分布式數(shù)據(jù)存儲系統(tǒng)中各個存儲服務器中已存儲的數(shù)據(jù)的索引信息,所述索引信息中至少包括:數(shù)據(jù)的標識和該數(shù)據(jù)對應的預設字段的字段值,所述方法包括:接收客戶端發(fā)送的連接請求后,建立與所述客戶端之間的通信連接;接收所述客戶端發(fā)送的針對待查詢數(shù)據(jù)的基于sql語句的查詢請求,其中,所述查詢請求中攜帶待查詢字段的標識、待查詢字段的字段值、針對待查詢字段的查詢條件以及待查詢字段之間的查詢關系;判斷所述查詢請求中攜帶的待查詢字段的標識對應的待查詢字段是否全部為預設字段;若為是,根據(jù)所述查詢請求中攜帶的待查詢字段的標識、待查詢字段的字段值在該查詢服務器中已存儲的索引信息中進行查詢,獲得符合針對待查詢字段的查詢條件和待查詢字段之間的查詢關系的索引信息,并根據(jù)所獲得的索引信息生成查詢結果。較佳的,在判斷得所述查詢請求中攜帶的待查詢字段的標識對應的待查詢字段不全部為預設字段的情況下,還包括:根據(jù)所述待查詢字段中第一目標字段的標識及其字段值,在該查詢服務器中已存儲的索引信息中進行查詢,獲得符合所述第一目標字段之間的查詢關系的索引信息,并根據(jù)所獲得的索引信息生成第一查詢結果,其中,所述第一目標字段為所述待查詢字段中屬于所述預設字段的字段;根據(jù)所述待查詢字段中第二目標字段的標識及其字段值,在所述存儲服務器中進行查詢,獲得符合所述第二目標字段的第二查詢結果,其中,所述第二目標字段為所述待查詢字段中屬于所述預設字段的字段;根據(jù)所述第一查詢結果和所述第二查詢結果,按照所述查詢請求中攜帶的針對待查詢字段的查詢條件和待查詢字段之間的查詢關系,獲得與所述查詢請求相對應的查詢結果。較佳的,在判斷得所述查詢請求中攜帶的待查詢字段的標識對應的待查詢字段不全部為預設字段的情況下,還包括:根據(jù)所述待查詢字段中第一目標字段的標識及其字段值,在該查詢服務器 中已存儲的索引信息中進行查詢,獲得符合所述第一目標字段之間的查詢關系的索引信息,并根據(jù)所獲得的索引信息生成第三查詢結果,其中,所述第一目標字段為所述待查詢字段中屬于所述預設字段的字段;根據(jù)所述第三查詢結果、所述待查詢字段中第二目標字段的標識及其字段值,向所述存儲服務器發(fā)送數(shù)據(jù)查詢請求,以使得所述存儲服務器根據(jù)所述數(shù)據(jù)查詢請求在所述存儲服務器中進行查詢,其中,所述第二目標字段為所述待查詢字段中屬于所述預設字段的字段;接收所述存儲服務器反饋的查詢結果,并根據(jù)所接收的查詢結果獲得與所述查詢請求相對應的查詢結果。較佳的,在所述分布式數(shù)據(jù)存儲系統(tǒng)中包括兩個以上查詢服務器時,所述方法還包括:判斷是否滿足預設的索引信息同步條件;若滿足,將該查詢服務器中存儲的索引信息同步至所述分布式數(shù)據(jù)存儲系統(tǒng)中的其他查詢服務器中。較佳的,所述查詢服務器,包括:多個物理服務器。為達到上述目的,本發(fā)明實施例公開了一種數(shù)據(jù)查詢裝置,應用于分布式數(shù)據(jù)存儲系統(tǒng)中基于結構化查詢語言sql的查詢服務器,其中,所述分布式數(shù)據(jù)存儲系統(tǒng)包括至少一個查詢服務器和至少一個存儲服務器,查詢服務器用于存儲所述分布式數(shù)據(jù)存儲系統(tǒng)中各個存儲服務器中已存儲的數(shù)據(jù)的索引信息,所述索引信息中至少包括:數(shù)據(jù)的標識和該數(shù)據(jù)對應的預設字段的字段值,所述裝置包括:通信連接建立模塊,用于接收客戶端發(fā)送的連接請求后,建立與所述客戶端之間的通信連接;查詢請求接收模塊,用于接收所述客戶端發(fā)送的針對待查詢數(shù)據(jù)的基于sql語句的查詢請求,其中,所述查詢請求中攜帶待查詢字段的標識、待查詢字段的字段值、針對待查詢字段的查詢條件以及待查詢字段之間的查詢關系;字段判斷模塊,用于判斷所述查詢請求中攜帶的待查詢字段的標識對應的待查詢字段是否全部為預設字段;第一數(shù)據(jù)查詢模塊,用于在字段判斷模塊判斷為是的情況下,根據(jù)所述查詢請求中攜帶的待查詢字段的標識、待查詢字段的字段值在該查詢服務器中已存儲的索引信息中進行查詢,獲得符合針對待查詢字段的查詢條件和待查詢字段之間的查詢關系的索引信息,并根據(jù)所獲得的索引信息生成查詢結果。較佳的,所述裝置還包括:第二數(shù)據(jù)查詢模塊,其中,所述第二數(shù)據(jù)查詢模塊包括:第一查詢結果獲得子模塊、第二查詢結果獲得子模塊和第三查詢結果獲得子模塊;所述第一查詢結果獲得子模塊,用于在所述字段判斷模塊判斷為否的情況下,根據(jù)所述待查詢字段中第一目標字段的標識及其字段值,在該查詢服務器中已存儲的索引信息中進行查詢,獲得符合所述第一目標字段之間的查詢關系的索引信息,并根據(jù)所獲得的索引信息生成第一查詢結果,其中,所述第一目標字段為所述待查詢字段中屬于所述預設字段的字段;所述第二查詢結果獲得子模塊,用于根據(jù)所述待查詢字段中第二目標字段的標識及其字段值,在所述存儲服務器中進行查詢,獲得符合所述第二目標字段之間的查詢關系的第二查詢結果,其中,所述第二目標字段為所述待查詢字段中屬于所述預設字段的字段;所述第三查詢結果獲得子模塊,用于根據(jù)所述第一查詢結果和所述第二查詢結果,按照所述查詢請求中攜帶的針對待查詢字段的查詢條件和待查詢字段之間的查詢關系,獲得與所述查詢請求相對應的查詢結果。較佳的,所述裝置還包括:第三數(shù)據(jù)查詢模塊,其中,所述第三數(shù)據(jù)查詢模塊包括:第四查詢結果獲得子模塊、查詢請求發(fā)送子模塊和第五查詢結果獲得子模塊;所述第四查詢結果獲得子模塊,用于在所述字段判斷模塊判斷為否的情況下,根據(jù)所述待查詢字段中第一目標字段的標識及其字段值,在該查詢服務器中已存儲的索引信息中進行查詢,獲得符合所述第一目標字段之間的查詢關系的索引信息,并根據(jù)所獲得的索引信息生成第三查詢結果,其中,所述第一目標字段為所述待查詢字段中屬于所述預設字段的字段;所述查詢請求發(fā)送子模塊,用于根據(jù)所述第三查詢結果、所述待查詢字段中第二目標字段的標識及其字段值,向所述存儲服務器發(fā)送數(shù)據(jù)查詢請求,以 使得所述存儲服務器根據(jù)所述數(shù)據(jù)查詢請求在所述存儲服務器中進行查詢,其中,所述第二目標字段為所述待查詢字段中屬于所述預設字段的字段;所述第五查詢結果獲得子模塊,用于接收所述存儲服務器反饋的查詢結果,并根據(jù)所接收的查詢結果獲得與所述查詢請求相對應的查詢結果。較佳的,在所述分布式數(shù)據(jù)存儲系統(tǒng)中包括兩個以上查詢服務器時,所述裝置還包括:同步條件判斷模塊和索引信息同步模塊;其中,所述同步條件判斷模塊,用于判斷是否滿足預設的索引信息同步條件;所述索引信息同步模塊,用于在所述同步條件判斷模塊的判斷結果為是的情況下,將該查詢服務器中存儲的索引信息同步至所述分布式數(shù)據(jù)存儲系統(tǒng)中的其他查詢服務器中。較佳的,所述查詢服務器,包括:多個物理服務器。為達到上述目的,本發(fā)明實施例公開了一種分布式數(shù)據(jù)存儲系統(tǒng),所述分布式數(shù)據(jù)存儲系統(tǒng),包括:管理服務器、至少一個查詢服務器和至少一個存儲服務器;其中,所述管理服務器,用于接收客戶端發(fā)送的查詢服務器獲得請求,并根據(jù)所述查詢服務器獲得請求確定用于響應客戶端發(fā)送的數(shù)據(jù)查詢請求的查詢服務器;所述查詢服務器,用于根據(jù)權利要求1-5中任一項所述的數(shù)據(jù)查詢方法響應所述客戶端發(fā)送的數(shù)據(jù)查詢請求,進而進行數(shù)據(jù)查詢;所述存儲服務器,用于存儲客戶端上傳的數(shù)據(jù)。較佳的,所述查詢服務器,用于在滿足預設的索引信息同步條件的情況下,向所述關聯(lián)服務器發(fā)送索引信息同步請求;所述管理服務器,用于接收所述查詢服務器發(fā)送的所述索引信息同步請求,并根據(jù)所述索引信息同步請求對其他查詢服務器中存儲的索引信息進行信息同步處理。由以上可見,在本發(fā)明實施例提供的技術方案中,分布式數(shù)據(jù)存儲系統(tǒng)中基于結構化查詢語言sql的查詢服務器在接收到客戶端發(fā)送的連接請求后,建 立與該客戶端之間的通信連接;然后,客戶端向已建立通信連接的查詢服務器發(fā)送針對待查詢數(shù)據(jù)的基于sql語句的查詢請求,其中,該查詢請求中攜帶待查詢字段的標識、待查詢字段的字段值、針對待查詢字段的查詢條件以及待查詢字段之間的查詢關系;接著,查詢服務器判斷該查詢請求中攜帶的待查詢字段的標識對應的待查詢字段是否全部為預設字段,并在判斷為是的情況下,根據(jù)該查詢請求中攜帶的待查詢字段的標識、待查詢字段的字段值在該查詢服務器中已存儲的索引信息中進行查詢,獲得符合針對待查詢字段的查詢條件和待查詢字段之間的查詢關系的索引信息,并根據(jù)所獲得的索引信息生成查詢結果。顯然,應用本發(fā)明實施例提供的方案進行數(shù)據(jù)查詢時,在查詢請求中攜帶的待查詢字段的標識對應的待查詢字段全部為預設字段的情況下,查詢服務器通過查詢本地已存儲索引信息的方式獲得查詢結果,避免了逐一掃描分布式存儲系統(tǒng)中的各個存儲服務器,而且在本地查詢數(shù)據(jù)的耗時相對于掃描存儲服務器查詢數(shù)據(jù)耗時要短的多,因此,能夠提高在分布式存儲系統(tǒng)中查詢數(shù)據(jù)的效率。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例提供的一種數(shù)據(jù)查詢方法的流程示意圖;圖2為本發(fā)明實施例提供的另一種數(shù)據(jù)查詢方法的流程示意圖;圖3為本發(fā)明實施例提供的另一種數(shù)據(jù)查詢方法的流程示意圖;圖4為本發(fā)明實施例提供的另一種數(shù)據(jù)查詢方法的流程示意圖;圖5為本發(fā)明實施例提供的一種數(shù)據(jù)查詢裝置的結構示意圖;圖6為本發(fā)明實施例提供的另一種數(shù)據(jù)查詢裝置的結構示意圖;圖7為本發(fā)明實施例提供的另一種數(shù)據(jù)查詢裝置的結構示意圖;圖8為本發(fā)明實施例提供的另一種數(shù)據(jù)查詢裝置的結構示意圖;圖9為本發(fā)明實施例提供的一種分布式數(shù)據(jù)存儲系統(tǒng)的架構示意圖。具體實施方式實際應用中,用戶通過對大量數(shù)據(jù)的分析可以獲得一些規(guī)律性的東西,例如,通過對所記錄的觀看某視頻的用戶的性別和年齡段的分析,可以獲得不同用戶對于該視頻的喜愛程度,等等。然而,在對所記錄的大量數(shù)據(jù)進行分析之前,往往需要從存儲該大量數(shù)據(jù)的分布式數(shù)據(jù)存儲系統(tǒng)中的存儲服務器中查詢到這些數(shù)據(jù)。一般的,現(xiàn)有技術中通過逐一掃描該分布式數(shù)據(jù)存儲系統(tǒng)中的存儲服務器的方式來獲得針對待查詢數(shù)據(jù)的查詢結果,顯然,當分布式數(shù)據(jù)存儲系統(tǒng)的存儲容量越大時,查詢的速度就會越慢。針對上述情況,本發(fā)明提供了一種數(shù)據(jù)查詢方法、裝置及系統(tǒng),以實現(xiàn)對數(shù)據(jù)的快速查詢。下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。圖1為本發(fā)明實施例提供的一種數(shù)據(jù)查詢方法的流程示意圖,該方法應用于分布式數(shù)據(jù)存儲系統(tǒng)中基于結構化查詢語言sql的查詢服務器,其中,該分布式數(shù)據(jù)存儲系統(tǒng)可以包括至少一個查詢服務器和至少一個存儲服務器,查詢服務器用于存儲分布式數(shù)據(jù)存儲系統(tǒng)中各個存儲服務器中已存儲的數(shù)據(jù)的索引信息,該索引信息中至少可以包括:數(shù)據(jù)的標識和該數(shù)據(jù)對應的預設字段的字段值?,F(xiàn)有技術中的分布式數(shù)據(jù)存儲系統(tǒng)中的數(shù)據(jù)是不存在索引信息的,因此,導致查詢的時候需要對多個存儲服務器中的已存儲數(shù)據(jù)進行逐一掃描,直到查找到與該標識類信息相對應的目標數(shù)據(jù)為止。為解決這一問題,本發(fā)明將sql引擎引入至分布式數(shù)據(jù)存儲系統(tǒng),并針對分布式數(shù)據(jù)存儲系統(tǒng)中已存儲數(shù)據(jù)建立索引信息。下面對各個存儲服務器中已存儲的數(shù)據(jù)的索引信息的建立過程進行下描述。在建立索引時,查詢服務器接收到sql語句中的insert數(shù)據(jù)插入語句,其中,該插入語句可以攜帶待建立索引的數(shù)據(jù)并將待建立索引的數(shù)據(jù)插入至存 儲服務器中,同時在sql引擎的消息隊列中存儲待建立索引的數(shù)據(jù);然后,由sql引擎的索引建立模塊從消息隊列中拉取數(shù)據(jù)并利用常用的索引建立工具(例如apache軟件基金會發(fā)布的開放源代碼的全文檢索引擎工具包lucene)完成待建立索引的數(shù)據(jù)的索引建立。需要說明的是,本申請中的分布式數(shù)據(jù)存儲系統(tǒng)中的索引信息的數(shù)據(jù)是存儲于schema表中的。對schema表的管理主要目的是實現(xiàn)sql中創(chuàng)建的表的元數(shù)據(jù)信息以及在多個查詢服務器(如jdbcserver)之間的表信息同步功能,目前針對schema表的ddl操作主要有創(chuàng)建表、刪除表兩種操作,具體如下:1、schema表的創(chuàng)建在分布式文件系統(tǒng)hdfs中定義待創(chuàng)建的schema表的相關信息,其中,該相關信息中包含待創(chuàng)建的schema表中的數(shù)據(jù)是否具有索引的信息,需要創(chuàng)建表的查詢服務器讀取存儲于hdfs中的相關信息,根據(jù)讀取到的相關信息在sqlcontext中創(chuàng)建schema表。另外,當需要創(chuàng)建表的查詢服務器完成schema表的創(chuàng)建之后,可以向其他查詢服務器發(fā)送同步創(chuàng)建的信號,其他查詢服務器在接收到該同步創(chuàng)建的信號之后,讀取待創(chuàng)建表的查詢服務器的schema表創(chuàng)建操作信息,并根據(jù)讀取到的schema表創(chuàng)建操作信息各自創(chuàng)建一份schema表。需要說明的是,為了防止創(chuàng)建表過程中的并發(fā)與沖突,可以采用對zookeeper中共享目錄加分布式鎖,并在分布式數(shù)據(jù)存儲系統(tǒng)中的各個查詢服務器均創(chuàng)建成功該schema表之后釋放該分布式鎖。2、schema表的刪除當需要從一個查詢服務器中刪除schema表時,可以對zookeeper中共享目錄下加分布式鎖,然后在sqlcontext中利用drop語句完成對schema表的刪除,然后,向該分布式數(shù)據(jù)存儲系統(tǒng)中的其他查詢服務器發(fā)送同步刪除的信號,其他查詢服務器在接收到該同步刪除的信號之后,刪除對應該表在zookeeper中的所有目錄以及該schema表在hdfs中存儲的相關信息,釋放該分布式鎖對zookeeper中共享目錄的鎖定。需要說明的是,在創(chuàng)建schema表和刪除schema表時,為了使得各個查詢服務器中schema表的一致性,需要保證各個查詢服務器同步完成才能返回創(chuàng)建表或刪除表成功的信號。具體的同步機制為:需同步的各個查詢服務器在 zookeeper的指定目錄(例如……/sql/table)寫一個標記,待創(chuàng)建表的查詢服務器或待刪除表的查詢服務器(簡稱主節(jié)點)可以在指定時間內(nèi)讀取該指定目錄下的查詢服務器是否均具有標記,若至少一個查詢服務器未被標記,則該創(chuàng)建表或刪除表的操作均認為不成功。另外,在查詢服務器(例如jdbcserver)啟動時,需要對之前創(chuàng)建的schema表進行初始化,具體如下:jdbcserver啟動后,判斷在zookeeper是否存在存儲該schema表的目錄(例如……/sql/schema),在目錄存在的情況下讀取該目錄下記錄的創(chuàng)建該schema表的操作信息,該jdbcserver執(zhí)行讀取到的操作信息完成對schema表的加載;為了確保對之前創(chuàng)建的全部schema表均能夠加載成功,需要遍歷hdfs并判斷該jdbcserver中是否已加載hdfs上存儲的全部schema表,如果否,則需要讀取并執(zhí)行hdfs中未存儲于jdbcserver中的schema表,完成對查詢服務器啟動后對于之前建立的schema表的加載過程。同樣的,在加載schema表的過程中也可以對zookeeper中共享目錄加分布式鎖,避免對schema表的重復加載。具體的,上述數(shù)據(jù)查詢方法可以包括以下步驟:步驟s101:接收客戶端發(fā)送的連接請求后,建立與客戶端之間的通信連接。需要說明的是,執(zhí)行本方案中各個步驟的執(zhí)行主體是上述分布式數(shù)據(jù)存儲系統(tǒng)中的查詢服務器,然而,該分布式數(shù)據(jù)存儲系統(tǒng)中至少可以包括一個查詢服務器,那么當其包括兩個以上的查詢服務器時,便需要在執(zhí)行本方案中各個步驟之前,按照預設的查詢服務器確定規(guī)則從多個查詢服務器中確定出一個查詢服務器,然后再由確定出的這個查詢服務器來執(zhí)行本方案中的各個步驟。具體的,該分布式數(shù)據(jù)存儲系統(tǒng)中的查詢服務器,可以是由一個物理服務器組成的,還可以是多個物理服務器組成的。容易理解的,對于多個物理服務器為整體構成的查詢服務器而言,其計算處理能力通常高于由一個物理服務器構成的查詢服務器。因此,當該分布式數(shù)據(jù)存儲系統(tǒng)中既有一個物理服務器構成的查詢服務器,又有多個物理服務器為整體構成的查詢服務器時,還可以根據(jù)所需要處理的數(shù)據(jù)的計算量的大小來選擇用于與客戶端建立通信連接的查詢服務器。具體的,當數(shù)據(jù)處理的計算量較小時,可以選擇一個物理服務器構成的查詢服務器,當數(shù)據(jù)處理的計算量較大時,可以選擇多個物理服務器為整 體構成的查詢服務器,這樣能夠更加合理的管理該分布式數(shù)據(jù)存儲系統(tǒng)中的查詢服務器,可以有效的提高其數(shù)據(jù)查詢的效率。舉例而言,在基于sql語句的數(shù)據(jù)查詢中,可以根據(jù)sql語句的計算復雜程度進行判斷,例如“showtable”等命令計算復雜程度低,在執(zhí)行時所需的計算資源較少,因此可以選擇一個物理服務器構成的查詢服務器;而對于“select*fromtable”等命令計算復雜程度低,在執(zhí)行時所需的計算資源較少,因此可以選擇多個物理服務器為整體構成的查詢服務器,有效的提高其數(shù)據(jù)查詢的效率。據(jù)統(tǒng)計,相對于現(xiàn)有技術中通過編寫程序調用相關的庫函數(shù)對多個存儲服務器中的已存儲數(shù)據(jù)進行逐一掃描的數(shù)據(jù)查詢方法而言,本發(fā)明實施例中提供的借助索引查詢的方式進行數(shù)據(jù)查詢的方法,能夠有效的提高數(shù)據(jù)查詢的效率。步驟s102:接收客戶端發(fā)送的針對待查詢數(shù)據(jù)的基于sql語句的查詢請求。其中,查詢請求中攜帶待查詢字段的標識、待查詢字段的字段值、針對待查詢字段的查詢條件以及待查詢字段之間的查詢關系。具體的,查詢請求中攜帶的待查詢字段可以包括:年齡、性別、學號、工資、網(wǎng)站點擊率等等代表各種信息的字段。具體的,待查詢字段的字段值可以是對應于待查詢字段的具體內(nèi)容,例如,當待查詢字段中包括的字段為“年齡”時,其字段值可以為“30”,等等。這里所提及的針對待查詢字段的查詢條件,具體可以包括:待查詢字段內(nèi)的“大于”、“小于”、“大于等于”、“小于等于”或者“等于”等關系。例如,在待查詢字段的字段值為“30”,且針對待查詢字段的查詢條件為“大于等于”時,該查詢請求中針對待查詢字段實際是要查詢年齡大于等于30的用戶的信息。這里所提及的待查詢字段之間的查詢關系,具體可以包括:待查詢字段之間的交集關系,或,待查詢字段之間的并集關系。例如,當待查詢字段中包括的字段包括:(1)“年齡”且字段值為30;(2)“性別”且字段值為“女”;那么,當查詢關系為“交集關系”時,查詢請求需要獲得的查詢結果為“年齡為30歲”且“性別為女”的用戶信息;容易理解的,當查詢關系為“并集關系”時,查詢請求需要獲得查詢結果為“年齡為30歲”或者是“性別為女”的用戶信息。顯然,即使查詢請求中所攜帶的待查詢字段的標識以及待查詢字段的字段值都相同,由于查詢關系不同,也會使得查詢結果大不一樣。本發(fā)明不需要對查詢請求中所攜帶的待查詢字段、字段的標識、字段的字段值和字段之間的查詢關系的具體內(nèi)容進行限定,需要本領域內(nèi)的技術人員根據(jù)實際應用中的具體情況進行設置。步驟s103:判斷查詢請求中攜帶的待查詢字段的標識對應的待查詢字段是否全部為預設字段,若為是,執(zhí)行步驟s104,否則執(zhí)行步驟s105,結束本流程。步驟s104:根據(jù)查詢請求中攜帶的待查詢字段的標識、待查詢字段的字段值在該查詢服務器中已存儲的索引信息中進行查詢,獲得符合針對待查詢字段的查詢條件和待查詢字段之間的查詢關系的索引信息,并根據(jù)所獲得的索引信息生成查詢結果。一種具體實現(xiàn)方式中,可以將分布式內(nèi)存計算框架sparksql引入至分布式數(shù)據(jù)存儲系統(tǒng)中,該分布式內(nèi)存計算框架中的sql引擎可以對分布式數(shù)據(jù)存儲系統(tǒng)中存儲服務器已存儲的數(shù)據(jù)進行處理,并根據(jù)實際應用中的需要,將存儲于存儲服務器中的已存儲數(shù)據(jù)中的某些字段設置成預設字段,且建立已存儲的數(shù)據(jù)的索引信息。進一步的,由于目前的分布式內(nèi)存計算框架sparksql提供的是單節(jié)點的查詢服務器,也就是說,當這個查詢服務器處于異常工作狀態(tài)時,引入分布式內(nèi)存計算框架sparksql的分布式數(shù)據(jù)存儲系統(tǒng)將面臨單點故障的問題,這樣便降低了分布式數(shù)據(jù)存儲系統(tǒng)的可靠性。本發(fā)明實施例提供的方法中,對此缺陷進行了改進,在該分布式數(shù)據(jù)存儲系統(tǒng)中設置多個查詢服務器,也就是說,以查詢服務器集群的方式為用戶提供查詢服務,這樣能夠避免引入sparksql時給分布式數(shù)據(jù)存儲系統(tǒng)帶來的單點故障的問題。需要說明的是,本發(fā)明實施例中提供的借助索引查詢的方式進行數(shù)據(jù)查詢的方法,能夠有效的提高數(shù)據(jù)查詢的效率;進一步的,在將分布式內(nèi)存計算框架sparksql引入至分布式數(shù)據(jù)存儲系統(tǒng)后,用戶可以借助于sql語句來實現(xiàn) 索引查詢,相對于一些需要編寫底層代碼來調用索引進行查詢的方式來說,前者更容易被用戶掌握,因此,本方式提升了用戶的實際操作體驗。容易理解的,當步驟s103的判斷結果為全部為預設字段時,可以根據(jù)待查詢字段的標識、待查詢字段的字段值在查詢服務器中已存儲的索引信息中進行查詢,然后,在結合符合針對待查詢字段的查詢條件和待查詢字段之間的查詢關系的索引信息,確定出針對待查詢字段的查詢結果。s105:結束本流程。應用本發(fā)明實施例提供的方案進行數(shù)據(jù)查詢時,在查詢請求中攜帶的待查詢字段的標識對應的待查詢字段全部為預設字段的情況下,查詢服務器通過查詢本地已存儲索引信息的方式獲得查詢結果,避免了逐一掃描分布式存儲系統(tǒng)中的各個存儲服務器,而且在本地查詢數(shù)據(jù)的耗時相對于掃描存儲服務器查詢數(shù)據(jù)耗時要短的多,因此,能夠提高在分布式存儲系統(tǒng)中查詢數(shù)據(jù)的效率。圖2為本發(fā)明實施例提供的另一種數(shù)據(jù)查詢方法的流程示意圖,在圖1所示的方法實施例的基礎之上,判斷得查詢請求中攜帶的待查詢字段的標識對應的待查詢字段不全部為預設字段的情況下,該方法還可以包括以下幾個步驟:步驟s106:根據(jù)待查詢字段中第一目標字段的標識及其字段值,在該查詢服務器中已存儲的索引信息中進行查詢,獲得符合第一目標字段的查詢條件和字段之間的查詢關系的索引信息,并根據(jù)所獲得的索引信息生成第一查詢結果。其中,第一目標字段為待查詢字段中屬于預設字段的字段。需要說明的是,這里提及的第一目標字段可以是待查詢字段中的一個字段,也可以是待查詢字段中的多個字段,本發(fā)明不需要對此進行限定。步驟s107:根據(jù)待查詢字段中第二目標字段的標識及其字段值,在存儲服務器中進行查詢,獲得符合第二目標字段之間的查詢關系的第二查詢結果。其中,第二目標字段為待查詢字段中屬于預設字段的字段。需要說明的是,這里提及的第二目標字段可以是待查詢字段中的一個字段,也可以是待查詢字段中的多個字段,本發(fā)明不需要對此進行限定。需要說明的是,步驟s106和步驟s107進一步針對待查詢字段按照是否屬于預設字段進行不同的查詢處理,步驟s106與步驟s104類似,可以通過查詢索引信息的方式來獲得查詢結果;步驟s107則仍需要通過在存儲服務器中進行逐一掃描的方式來獲得查詢結果。雖然,對于待查詢數(shù)據(jù)中不屬于預設字段的數(shù)據(jù)查詢而言,步驟s107仍需要通過在存儲服務器中進行逐一掃描的方式來獲得查詢結果,但是,由于待查詢數(shù)據(jù)中屬于預設字段的數(shù)據(jù)查詢可以通過查詢索引信息的方式來快速獲得查詢結果,因此,相比現(xiàn)有技術中僅僅利用在存儲服務器中進行逐一掃描的方式來獲得查詢結果的方法而言,查詢速度仍然是有提升的。另外,與圖1所示的數(shù)據(jù)查詢方法相比,本發(fā)明實施例提供了一種不屬于預設字段的數(shù)據(jù)查詢方法,使得在待查詢字段不全部為預設字段的情況下,仍然能夠獲得與查詢請求相對應的查詢結果。步驟s108:根據(jù)第一查詢結果和第二查詢結果,按照查詢請求中攜帶的針對待查詢字段的查詢條件和待查詢字段之間的查詢關系,獲得與查詢請求相對應的查詢結果。需要說明的是,由于待查詢字段中存在不屬于預設字段的情況,因此在針對待查詢字段進行數(shù)據(jù)查詢時需要分開處理,當根據(jù)步驟s106和步驟s107分別獲得查詢結果之后,還需要根據(jù)待查詢字段之間的具體的查詢關系,來確定針對待查詢請求的查詢結果。舉例而言,當預設字段中僅包括“年齡”、字段內(nèi)的查詢條件為“等于”時;待查詢字段中包括的字段為“年齡”和“性別”,字段內(nèi)的查詢條件均為“等于”,且年齡字段的字段值為30,性別字段的字段值為女,且查詢關系為“交集關系”,那么,根據(jù)步驟s106和步驟s107查詢到的查詢結果分別如下:查詢結果1:查詢結果2:姓名性別年齡趙五女31錢六女28孫三女30李四女30根據(jù)查詢結果1和查詢結果2,按照查詢請求中攜帶的待查詢字段之間的交集關系,獲得與查詢請求相對應的查詢結果,如下:姓名性別年齡孫三女30李四女30實際應用中,在查詢請求中攜帶的待查詢字段的標識對應的待查詢字段不全部為預設字段的情況下,能夠對待查詢字段按照屬于預設字段和不屬于預設字段兩種情況分別進行查詢,其中,針對待查詢字段中屬于預設字段的部分,仍然可以根據(jù)其索引信息來獲得第一查詢結果,針對待查詢字段中不屬于預設字段的部分,可以根據(jù)逐一掃描分布式數(shù)據(jù)存儲系統(tǒng)中的多個存儲服務器的方式來獲得第二查詢結果,然后,根據(jù)第一查詢結果和第二查詢結果,按照查詢請求中攜帶的針對待查詢字段的查詢條件和待查詢字段之間的查詢關系,獲得與查詢請求相對應的查詢結果??梢?,應用本發(fā)明實施例,在查詢請求中攜帶的待查詢字段的標識對應的待查詢字段不全部為預設字段的情況下,獲得第一查詢結果的過程中并不需要逐一掃描分布式存儲系統(tǒng)中的多個存儲服器,因此降低了逐一掃描分布式存儲系統(tǒng)中的多個存儲服務器所耗費的時間,尤其是當分布式數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)存儲容量越大的時候,獲得待查詢數(shù)據(jù)的查詢結果的速度就會越快。圖3為本發(fā)明實施例提供的另一種數(shù)據(jù)查詢方法的流程示意圖,在圖1所示的方法實施例的基礎之上,在判斷得查詢請求中攜帶的待查詢字段的標識對 應的待查詢字段不全部為預設字段的情況下,該方法還可以包括以下幾個步驟:步驟s109:根據(jù)待查詢字段中第一目標字段的標識及其字段值,在該查詢服務器中已存儲的索引信息中進行查詢,獲得符合第一目標字段之間的查詢關系的索引信息,并根據(jù)所獲得的索引信息生成第三查詢結果。其中,第一目標字段為待查詢字段中屬于預設字段的字段。步驟s110:根據(jù)第三查詢結果、待查詢字段中第二目標字段的標識及其字段值,向存儲服務器發(fā)送數(shù)據(jù)查詢請求,以使得存儲服務器根據(jù)數(shù)據(jù)查詢請求在存儲服務器中進行查詢。其中,第二目標字段為待查詢字段中屬于預設字段的字段。步驟s111:接收存儲服務器反饋的查詢結果,并根據(jù)所接收的查詢結果獲得與查詢請求相對應的查詢結果。根據(jù)所生成第三查詢結果、待查詢字段中不屬于預設字段的字段的標識及其字段值,向存儲服務器發(fā)送數(shù)據(jù)查詢請求,以使得存儲服務器根據(jù)接收到的數(shù)據(jù)查詢請求在存儲服務器中進行查詢,獲得符合待查詢字段中不屬于預設字段的字段之間的查詢關系的查詢結果,并將所獲得查詢結果反饋至該查詢服務器。需要說明的是,步驟s109至步驟s111進一步針對待查詢字段按照是否屬于預設字段進行不同的查詢處理,步驟s109與步驟s106類似,可以通過查詢索引信息的方式來獲得查詢結果;步驟s110與步驟s107不同的是,不需要通過在存儲服務器中進行逐一掃描的方式來獲得查詢結果,步驟s110僅需要根據(jù)所生成的第三查詢結果在存儲服務器中進行查詢,查詢的范圍僅限于存儲服務器中與第三查詢結果相對應的數(shù)據(jù)內(nèi)查詢,并不是在整個存儲服務器中的全部數(shù)據(jù)中查詢,例如,可以根據(jù)第三查詢結果中每條數(shù)據(jù)的唯一標識,從存儲服務器中獲得與第三查詢結果相對應的數(shù)據(jù),然后再從所獲得的對應數(shù)據(jù)內(nèi)查詢并獲得查詢結果,可見,查詢的數(shù)據(jù)范圍縮小了,獲得查詢結果的時間短了,進而提高了數(shù)據(jù)查找的速度。舉例而言,當預設字段中僅包括“年齡”、字段內(nèi)的查詢條件為“等于” 時;待查詢字段中包括的字段為“年齡”和“性別”,字段內(nèi)的查詢條件均為“等于”,且年齡字段的字段值為30,性別字段的字段值為女,且查詢關系為“交集關系”,那么,根據(jù)步驟s109至步驟s111查詢到的查詢結果分別如下查詢結果3:姓名性別年齡趙一男30錢二男30孫三女30李四女30獲得與查詢請求相對應的查詢結果,如下:姓名性別年齡孫三女30李四女30實際應用中,實際應用中,在查詢請求中攜帶的待查詢字段的標識對應的待查詢字段不全部為預設字段的情況下,能夠對待查詢字段按照屬于預設字段和不屬于預設字段兩種情況分別進行查詢,其中,針對待查詢字段中屬于預設字段的部分,仍然可以根據(jù)其索引信息來獲得第一查詢結果,針對待查詢字段中不屬于預設字段的部分,可以根據(jù)所獲得的第三查詢結果僅在該分布式數(shù)據(jù)存儲系統(tǒng)中存儲與該第三查詢結果相對應的存儲服務器的存儲區(qū)域內(nèi)進行逐一掃描,縮小了掃描范圍,因此,與圖2所示的數(shù)據(jù)查詢方法相比,進一步提高了在查詢請求中攜帶的待查詢字段的標識對應的待查詢字段不全部為預設字段的情況下,獲得與查詢請求相對應的查詢結果的速度。圖4為本發(fā)明實施例提供的另一種數(shù)據(jù)查詢方法的流程示意圖,在圖1所示的方法實施例的基礎之上,在分布式數(shù)據(jù)存儲系統(tǒng)中包括兩個以上查詢服務器時,該方法還可以包括以下幾個步驟:步驟s112:判斷是否滿足預設的索引信息同步條件,若判斷結果為是,則 執(zhí)行步驟s113,否則執(zhí)行步驟s114。具體的,滿足預設的索引信息同步條件可以包括以下幾種中的至少一種:(1)當檢測到當前的存儲服務器中的索引信息發(fā)生改變(創(chuàng)建新的索引信息、修改索引信息或者刪除索引信息)時,滿足預設的索引信息同步條件;(2)滿足預先設定的時間間隔(例如,間隔5分鐘同步一次),滿足預設的索引信息同步條件。需要說明的是,以上兩種情況僅僅是舉例,當然還可以預設其他的索引信息同步條件,本領域內(nèi)的技術人員需要根據(jù)實際應用中的具體情況進行合理的設置。步驟s113:將該查詢服務器中存儲的索引信息同步至分布式數(shù)據(jù)存儲系統(tǒng)中的其他查詢服務器中。具體的,當滿足預設的索引信息同步條件時,若分布式數(shù)據(jù)存儲系統(tǒng)中還包括管理服務器,存儲服務器可以借助于該分布式數(shù)據(jù)存儲系統(tǒng)中的管理服務器,將索引信息同步至該分布式數(shù)據(jù)存儲系統(tǒng)中的其他查詢服務器;當然,存儲服務器還可以利用向分布式數(shù)據(jù)存儲系統(tǒng)中的其他查詢服務器發(fā)送廣播信號的方式與其他查詢服務器建立通信連接,然后直接將索引信息同步至該分布式數(shù)據(jù)存儲系統(tǒng)中。本發(fā)明實施例并不需要對索引信息同步的具體方式進行限定,任何可能的實現(xiàn)方式均可以應用于本發(fā)明。步驟s114:結束本流程。應用本發(fā)明實施例中的方案,降低了逐一掃描分布式存儲系統(tǒng)中的多個存儲服務器所耗費的時間,可以由查詢服務器通過查詢索引信息的方式快速獲得待查詢數(shù)據(jù)的查詢結果,尤其是當分布式數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)存儲容量越大的時候,獲得待查詢數(shù)據(jù)的查詢結果的速度就會越快。另外,與圖1所示的數(shù)據(jù)查詢方法相比,本發(fā)明實施例能夠將分布式數(shù)據(jù)存儲系統(tǒng)中的某一查詢服務器中的索引信息同步到該系統(tǒng)中的其他查詢服務器中,使得該分布式數(shù)據(jù)存儲系統(tǒng)能夠根據(jù)該系統(tǒng)中的查詢服務器的運行情況,選擇合適的查詢服務器來執(zhí)行本方案中的各個步驟。圖5為本發(fā)明實施例提供的一種數(shù)據(jù)查詢裝置的結構示意圖,應用于分布式數(shù)據(jù)存儲系統(tǒng)中基于結構化查詢語言sql的查詢服務器,其中,分布式數(shù)據(jù) 存儲系統(tǒng)包括至少一個查詢服務器和至少一個存儲服務器,查詢服務器用于存儲分布式數(shù)據(jù)存儲系統(tǒng)中各個存儲服務器中已存儲的數(shù)據(jù)的索引信息,索引信息中至少包括:數(shù)據(jù)的標識和該數(shù)據(jù)對應的預設字段的字段值,該裝置可以包括:通信連接建立模塊210,用于接收客戶端發(fā)送的連接請求后,建立與客戶端之間的通信連接;查詢請求接收模塊220,用于接收客戶端發(fā)送的針對待查詢數(shù)據(jù)的基于sql語句的查詢請求,其中,查詢請求中攜帶待查詢字段的標識、待查詢字段的字段值、針對待查詢字段的查詢條件以及待查詢字段之間的查詢關系;字段判斷模塊230,用于判斷查詢請求中攜帶的待查詢字段的標識對應的待查詢字段是否全部為預設字段;第一數(shù)據(jù)查詢模塊240,用于在字段判斷模塊判斷為是的情況下,根據(jù)查詢請求中攜帶的待查詢字段的標識、待查詢字段的字段值在該查詢服務器中已存儲的索引信息中進行查詢,獲得符合針對待查詢字段的查詢條件和待查詢字段之間的查詢關系的索引信息,并根據(jù)所獲得的索引信息生成查詢結果。在本發(fā)明的一種具體實施例中,參見圖6,該裝置還可以包括:第二數(shù)據(jù)查詢模塊250,其中,第二數(shù)據(jù)查詢模塊250可以包括:第一查詢結果獲得子模塊、第二查詢結果獲得子模塊和第三查詢結果獲得子模塊;其中,第一查詢結果獲得子模塊,用于在字段判斷模塊判斷為否的情況下,根據(jù)待查詢字段中第一目標字段的標識及其字段值,在該查詢服務器中已存儲的索引信息中進行查詢,獲得符合第一目標字段之間的查詢關系的索引信息,并根據(jù)所獲得的索引信息生成第一查詢結果。其中,第一目標字段為待查詢字段中屬于預設字段的字段。第二查詢結果獲得子模塊,用于根據(jù)待查詢字段中第二目標字段的標識及其字段值,在存儲服務器中進行查詢,獲得符合待查詢字段中不屬于預設字段的字段之間的查詢關系的第二查詢結果。其中,第二目標字段為待查詢字段中屬于預設字段的字段。第三查詢結果獲得子模塊,用于根據(jù)第一查詢結果和第二查詢結果,按照 查詢請求中攜帶的針對待查詢字段的查詢條件和待查詢字段之間的查詢關系,獲得與查詢請求相對應的查詢結果。在本發(fā)明的另一種具體實施例中,參見圖7,該裝置還可以包括:第三數(shù)據(jù)查詢模塊260,其中,第三數(shù)據(jù)查詢模塊可以包括:第四查詢結果獲得子模塊、查詢請求發(fā)送子模塊和第五查詢結果獲得子模塊。第四查詢結果獲得子模塊,用于在字段判斷模塊判斷為否的情況下,根據(jù)待查詢字段中第一目標字段的標識及其字段值,在該查詢服務器中已存儲的索引信息中進行查詢,獲得符合第一目標字段之間的查詢關系的索引信息,并根據(jù)所獲得的索引信息生成第三查詢結果。其中,第一目標字段為待查詢字段中屬于預設字段的字段。查詢請求發(fā)送子模塊,用于根據(jù)第三查詢結果、待查詢字段中第二目標字段的標識及其字段值,向存儲服務器發(fā)送數(shù)據(jù)查詢請求,以使得存儲服務器根據(jù)數(shù)據(jù)查詢請求在存儲服務器中進行查詢。其中,第二目標字段為待查詢字段中屬于預設字段的字段。第五查詢結果獲得子模塊,用于接收存儲服務器反饋的查詢結果,并根據(jù)所接收的查詢結果獲得與查詢請求相對應的查詢結果。在本發(fā)明的另一種具體實施例中,參見圖8,在分布式數(shù)據(jù)存儲系統(tǒng)中包括兩個以上查詢服務器時,該裝置還可以包括:同步條件判斷模塊270和索引信息同步模塊280;其中,同步條件判斷模塊270,用于判斷是否滿足預設的索引信息同步條件;索引信息同步模塊280,用于在同步條件判斷模塊的判斷結果為是的情況下,將該查詢服務器中存儲的索引信息同步至分布式數(shù)據(jù)存儲系統(tǒng)中的其他查詢服務器中。需要說明的是,針對圖5至圖8所示的數(shù)據(jù)查詢裝置而言,分布式數(shù)據(jù)存儲系統(tǒng)中的查詢服務器,查詢服務器,可以包括:多個物理服務器。應用本發(fā)明實施例中的方案,降低了逐一掃描分布式存儲系統(tǒng)中的多個存儲服務器所耗費的時間,可以由查詢服務器通過查詢索引信息的方式快速獲得 待查詢數(shù)據(jù)的查詢結果,尤其是當分布式數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)存儲容量越大的時候,獲得待查詢數(shù)據(jù)的查詢結果的速度就會越快。圖9為本發(fā)明實施例提供的一種分布式數(shù)據(jù)存儲系統(tǒng)的架構示意圖,該分布式數(shù)據(jù)存儲系統(tǒng),可以包括:管理服務器310、至少一個查詢服務器320和至少一個存儲服務器330;其中,管理服務器310,用于接收客戶端發(fā)送的查詢服務器獲得請求,并根據(jù)查詢服務器獲得請求確定用于響應客戶端發(fā)送的數(shù)據(jù)查詢請求的查詢服務器;查詢服務器320,用于根據(jù)權利要求1-5中任一項的數(shù)據(jù)查詢方法響應客戶端發(fā)送的數(shù)據(jù)查詢請求,進而進行數(shù)據(jù)查詢;存儲服務器330,用于存儲客戶端上傳的數(shù)據(jù)。在本發(fā)明的一種具體實現(xiàn)方式中,查詢服務器320,用于在滿足預設的索引信息同步條件的情況下,向關聯(lián)服務器發(fā)送索引信息同步請求;管理服務器310,用于接收查詢服務器發(fā)送的索引信息同步請求,并根據(jù)索引信息同步請求對其他查詢服務器中存儲的索引信息進行信息同步處理。應用本發(fā)明實施例中的方案,降低了逐一掃描分布式存儲系統(tǒng)中的多個存儲服務器所耗費的時間,可以由查詢服務器通過查詢索引信息的方式快速獲得待查詢數(shù)據(jù)的查詢結果,尤其是當分布式數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)存儲容量越大的時候,獲得待查詢數(shù)據(jù)的查詢結果的速度就會越快。對于裝置、系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括 所述要素的過程、方法、物品或者設備中還存在另外的相同要素。本領域普通技術人員可以理解實現(xiàn)上述方法實施方式中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,所述的程序可以存儲于計算機可讀取存儲介質中,這里所稱得的存儲介質,如:rom/ram、磁碟、光盤等。以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。當前第1頁12當前第1頁12