本發(fā)明涉及通信技術領域,特別是涉及一種對數據庫對象集合schema信息的處理方法、裝置及管理系統(tǒng)。
背景技術:
現(xiàn)有的一些非關系型數據庫,例如MongoDB等,在每條記錄中同時保存這條記錄中包含的各個字段的名稱和各個字段對應的值。通常情況下,每個表中的字段都是固定不變或者變化很少的,因此在每條記錄中保存字段名稱信息會產生很大的冗余。并且在記錄中直接保存字段名稱會占用較大的系統(tǒng)資源。對于每一條記錄,不僅要保存數據本身,還要保存數據中包含的各個字段的名稱,而字段名稱等占用的空間可能會比數據本身還要大。這不僅會占用更大的內存以及磁盤空間,同時也會對磁盤I/O和網絡I/O造成不必要的壓力。
技術實現(xiàn)要素:
本發(fā)明提供了一種對數據庫對象集合schema信息的處理方法、裝置及管理系統(tǒng),以解決現(xiàn)有技術中數據庫對象集合schema信息的存儲占用空間較大的問題。
本發(fā)明一方面提供了一種對數據庫對象集合schema信息的處理方法,包括:預設數據庫對象集合schema信息的字段名稱和字段ID之間的雙向映射關系;當接收到讀指令或者寫指令時,對所述字段名稱和所述字段ID進行雙向轉換。
進一步地,預設數據庫對象集合schema信息的字段名稱和字段ID之間的雙向映射關系,具體包括:將數據庫對象集合schema信息的字段名稱轉換為該字段名稱對應的字段ID,建立字段名稱和字段ID之間的雙向映射關系,并對建立雙向映射關系的字段ID與各個字段的值進行序列化存儲。
進一步地,當接收到讀指令或者寫指令時,對所述字段名稱和所述字段ID進行雙向轉換,具體包括:當接收到讀指令時,將所述字段ID轉換為該字段ID對應的字段名稱,根據所述字段名稱獲取該字段名稱對應的字段的值,并將該字段的值反饋給發(fā)出讀指令的終端;
當接收到寫指令時,將所述字段名稱轉換為該字段名稱對應的字段ID,并將該字段ID以及與該字段ID對應的各個字段的值進行序列化存儲。
進一步地,根據所述字段名稱獲取該字段名稱對應的字段的值,并將該字段的值反饋給發(fā)出讀指令的終端具體包括:根據所述字段名稱獲取該字段名稱對應的字段的值,并對序列化存儲的字段的值進行反序列化,該字段的值反饋給發(fā)出讀指令的終端。
進一步地,該方法還包括:對發(fā)出讀指令和寫指令的終端進行校驗,并在校驗通過后,對所述字段名稱和所述字段ID進行雙向轉換。
本發(fā)明另一方面提供了一種對數據庫對象集合schema信息的處理裝置,包括:設置單元,用于預設數據庫對象集合schema信息的字段名稱和字段ID之間的雙向映射關系;轉換單元,用于當接收到讀指令或者寫指令時,對所述字段名稱和所述字段ID進行雙向轉換。
進一步地,所述設置單元還用于,將數據庫對象集合schema信息的字段名稱轉換為該字段名稱對應的字段ID,建立字段名稱和字段ID之間的雙向映射關系,并對建立雙向映射關系的字段ID與各個字段的值進行序列化存儲。
進一步地,所述轉換單元還用于,當接收到讀指令時,將所述字段ID轉換為該字段ID對應的字段名稱,根據所述字段名稱獲取該字段名稱對應的字段的值,并將該字段的值反饋給發(fā)出讀指令的終端;當接收到寫指令時,將所述字段名稱轉換為該字段名稱對應的字段ID,并將該字段ID以及與該字段ID對應的各個字段的值進行序列化存儲。
進一步地,所述轉換單元還用于,根據所述字段名稱獲取該字段名稱對應的字段的值,并對序列化存儲的字段的值進行反序列化,該字段的值反饋給發(fā)出讀指令的終端。
本發(fā)明再一方面提供了一種設有上述任意一種裝置的管理系統(tǒng)。
本發(fā)明有益效果如下:
本發(fā)明通過預設數據庫對象集合schema信息的字段名稱和字段ID之間的雙向映射關系,并在接收到讀指令或者寫指令時,對所述字段名稱和所述字段ID進行雙向轉換,從而降低了數據存儲占用的內存和磁盤空間,節(jié)省了存儲成本,并降低了磁盤I/O和網絡I/O,提升了系統(tǒng)的性能,有效解決了現(xiàn)有技術中數據庫對象集合schema信息的存儲占用空間較大的問題。
附圖說明
圖1是本發(fā)明實施例的一種對數據庫對象集合schema信息的處理方法的流程示意圖;
圖2是本發(fā)明實施例的另一種對數據庫對象集合schema信息的處理方法的流程示意圖;
圖3是本發(fā)明實施例的一種對數據庫對象集合schema信息的處理裝置的結構示意圖。
具體實施方式
為了解決現(xiàn)有技術中數據庫對象集合schema信息的存儲占用空間較大的問題,本發(fā)明提供了一種對數據庫對象集合schema信息的處理方法、裝置及管理系統(tǒng),本發(fā)明通過預設數據庫對象集合schema信息的字段名稱和字段ID之間的雙向映射關系,并在接收到讀指令或者寫指令時,對所述字段名稱和所述字段ID進行雙向轉換,從而降低了數據存儲占用的內存和磁盤空間,節(jié)省了存儲成本,并降低了磁盤I/O和網絡I/O,提升了系統(tǒng)的性能,大大提升了用戶體驗。。以下結合附圖以及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不限定本發(fā)明。
方法實施例
本發(fā)明實施例提供了一種對數據庫對象集合schema信息的處理方法,參見圖1,該方法包括:
S101、預設數據庫對象集合schema信息的字段名稱和字段ID之間的雙向映射關系;
S102、當接收到讀指令或者寫指令時,對所述字段名稱和所述字段ID進行雙向轉換。
也就是說,本發(fā)明通過預設數據庫對象集合schema信息的字段名稱和字段ID之間的雙向映射關系,并在接收到讀指令或者寫指令時,對所述字段名稱和所述字段ID進行雙向轉換,從而降低了數據存儲占用的內存和磁盤空間,節(jié)省了存儲成本,并降低了磁盤I/O和網絡I/O,提升了系統(tǒng)的性能,有效解決了現(xiàn)有技術中數據庫對象集合schema信息的存儲占用空間較大的問題。
即,本發(fā)明通過給數據庫中的各個字段分配一個字段ID,并在字段名稱和字段ID之間建立雙向的映射關系,從而實現(xiàn)字段名稱和字段ID的雙向轉換,最終降低了數據存儲占用的內存和磁盤空間,節(jié)省了存儲成本。
需要說明的是,schema信息為數據庫對象的集合,一個用戶一般對應一個schema。
具體實施時,本發(fā)明可在管理系統(tǒng)中設置一個schema信息的管理模塊,通過該管理模塊給數據庫中的各個字段分配一個字段ID,并在字段名稱和字段ID之間建立雙向的映射關系,從而實現(xiàn)字段名稱和字段ID的雙向轉換,以降低數據存儲占用的內存和磁盤空間,節(jié)省存儲成本。
具體實施時,本發(fā)明實施例所述步驟S101具體包括:
將數據庫對象集合schema信息的字段名稱轉換為該字段名稱對應的字段ID,建立字段名稱和字段ID之間的雙向映射關系,并對建立雙向映射關系的字段ID與各個字段的值進行序列化存儲。
具體而言,本發(fā)明實施例是通過引入Schema管理模塊,將schema信息中的字段名稱映射到字段ID,用占用空間更小的字段ID代替字段名稱,從而達到降低存儲成本,提升系統(tǒng)性能的目的。
具體實施時,本發(fā)明實施例所述步驟S102具體包括:
當接收到讀指令時,將所述字段ID轉換為該字段ID對應的字段名稱,根據所述字段名稱獲取該字段名稱對應的字段的值,并將該字段的值反饋給發(fā)出讀指令的終端;
當接收到寫指令時,將所述字段名稱轉換為該字段名稱對應的字段ID,并將該字段ID以及與該字段ID對應的各個字段的值進行序列化存儲。
具體的,本發(fā)明實施例根據所述字段名稱獲取該字段名稱對應的字段的值,并將該字段的值反饋給發(fā)出讀指令的終端具體包括:
根據所述字段名稱獲取該字段名稱對應的字段的值,并對序列化存儲的字段的值進行反序列化,該字段的值反饋給發(fā)出讀指令的終端。
圖2是本發(fā)明實施例的另一種對數據庫對象集合schema信息的處理方法的流程示意圖,如圖2所示,本發(fā)明通過在管理系統(tǒng)中設置schema信息管理模塊,管理系統(tǒng)是其配套的基于Web的管理工具,管理員可以通過管理系統(tǒng)添加、查看和修改schema信息。schema信息管理模塊中保存了所有的schema信息,包括每個數據庫中有哪些表,每個表中有哪些字段,每個字段的名稱和類型,以及每個字段對應的ID。其中,字段名稱和字段類型是管理員通過管理系統(tǒng)添加的,而字段ID是由schema信息管理模塊分配的,對于使用方透明,只在系統(tǒng)內部有效。schema信息管理模塊中保存了字段名稱和字段ID的雙向映射,可以將字段名稱轉換成字段ID,也可以將字段ID轉換成字段名稱。
寫接口是系統(tǒng)中負責處理用戶的寫請求的模塊。寫請求中包含了要寫入到數據庫中的字段名稱和各個字段的具體值,寫接口收到寫請求后通過schema信息管理模塊將字段名稱轉換成對應的字段ID,如果所有的字段名稱都可以找到對應的ID,則將字段ID與各個字段的具體值按照特定的方式進行序列化,并將序列化后的結果保存到底層的存儲系統(tǒng)中。此時保存在底層存儲系統(tǒng)中的只有各個字段的ID和字段的具體值,沒有字段名稱。如果字段名稱無法找到對應的字段ID,則說明請求非法,寫操作失敗,需要將錯誤信息返回給請求方。
讀接口是系統(tǒng)中負責處理用戶的讀請求的模塊。讀接口收到讀請求后,首先根據請求條件從底層存儲系統(tǒng)中讀取相應的數據,并按照特定的方式進行反序列化。由于保存在底層存儲系統(tǒng)中的只有字段ID和字段的具體值,因此需要通過schema信息管理模塊將字段ID轉換成對應的字段名稱,最后將字段名稱和各個字段的具體值一起返回給請求方,完成整個讀操作。
進一步地,本發(fā)明實施例所述的方法還包括對發(fā)出讀指令和寫指令的終端進行校驗,并在校驗通過后,對所述字段名稱和所述字段ID進行雙向轉換。
也就是說,本發(fā)明只對校驗通過的終端發(fā)出的讀指令和寫指令進行處理,以更好的維護管理系統(tǒng)的安全性。
裝置實施例
本發(fā)明實施例提供了一種對數據庫對象集合schema信息的處理裝置,參見圖3,該裝置包括:設置單元,用于預設數據庫對象集合schema信息的字段名稱和字段ID之間的雙向映射關系;轉換單元,用于當接收到讀指令或者寫指令時,對所述字段名稱和所述字段ID進行雙向轉換。
也就是說,本發(fā)明通過預設數據庫對象集合schema信息的字段名稱和字段ID之間的雙向映射關系,并在接收到讀指令或者寫指令時,對所述字段名稱和所述字段ID進行雙向轉換,從而降低了數據存儲占用的內存和磁盤空間,節(jié)省了存儲成本,并降低了磁盤I/O和網絡I/O,提升了系統(tǒng)的性能,有效解決了現(xiàn)有技術中數據庫對象集合schema信息的存儲占用空間較大的問題。
即,本發(fā)明通過給數據庫中的各個字段分配一個字段ID,并在字段名稱和字段ID之間建立雙向的映射關系,從而實現(xiàn)字段名稱和字段ID的雙向轉換,最終降低了數據存儲占用的內存和磁盤空間,節(jié)省了存儲成本。
具體實施時,本發(fā)明可在管理系統(tǒng)中設置一個schema信息的管理模塊(具體包括設置單元和轉換單元),通過該管理模塊給數據庫中的各個字段分配一個字段ID,并在字段名稱和字段ID之間建立雙向的映射關系,從而實現(xiàn)字段名稱和字段ID的雙向轉換,以降低數據存儲占用的內存和磁盤空間,節(jié)省存儲成本。
進一步地,所述設置單元還用于,將數據庫對象集合schema信息的字段名稱轉換為該字段名稱對應的字段ID,建立字段名稱和字段ID之間的雙向映射關系,并對建立雙向映射關系的字段ID與各個字段的值進行序列化存儲。
具體而言,本發(fā)明實施例是通過引入Schema管理模塊,將schema信息中的字段名稱映射到字段ID,用占用空間更小的字段ID代替字段名稱,從而達到降低存儲成本,提升系統(tǒng)性能的目的。
進一步地,本發(fā)明實施例的所述轉換單元還用于,當接收到讀指令時,將所述字段ID轉換為該字段ID對應的字段名稱,根據所述字段名稱獲取該字段名稱對應的字段的值,并將該字段的值反饋給發(fā)出讀指令的終端;當接收到寫指令時,將所述字段名稱轉換為該字段名稱對應的字段ID,并將該字段ID以及與該字段ID對應的各個字段的值進行序列化存儲。
具體實施時,本發(fā)明實施的所述轉換單元還用于,根據所述字段名稱獲取該字段名稱對應的字段的值,并對序列化存儲的字段的值進行反序列化,該字段的值反饋給發(fā)出讀指令的終端。
圖2是本發(fā)明實施例的另一種對數據庫對象集合schema信息的處理方法的流程示意圖,如圖2所示,本發(fā)明通過在管理系統(tǒng)中設置schema信息管理模塊,管理系統(tǒng)是其配套的基于Web的管理工具,管理員可以通過管理系統(tǒng)添加、查看和修改schema信息。schema信息管理模塊中保存了所有的schema信息,包括每個數據庫中有哪些表,每個表中有哪些字段,每個字段的名稱和類型,以及每個字段對應的ID。其中,字段名稱和字段類型是管理員通過管理系統(tǒng)添加的,而字段ID是由schema信息管理模塊分配的,對于使用方透明,只在系統(tǒng)內部有效。schema信息管理模塊中保存了字段名稱和字段ID的雙向映射,可以將字段名稱轉換成字段ID,也可以將字段ID轉換成字段名稱。
寫接口是系統(tǒng)中負責處理用戶的寫請求的模塊。寫請求中包含了要寫入到數據庫中的字段名稱和各個字段的具體值,寫接口收到寫請求后通過schema信息管理模塊將字段名稱轉換成對應的字段ID,如果所有的字段名稱都可以找到對應的ID,則將字段ID與各個字段的具體值按照特定的方式進行序列化,并將序列化后的結果保存到底層的存儲系統(tǒng)中。此時保存在底層存儲系統(tǒng)中的只有各個字段的ID和字段的具體值,沒有字段名稱。如果字段名稱無法找到對應的字段ID,則說明請求非法,寫操作失敗,需要將錯誤信息返回給請求方。
讀接口是系統(tǒng)中負責處理用戶的讀請求的模塊。讀接口收到讀請求后,首先根據請求條件從底層存儲系統(tǒng)中讀取相應的數據,并按照特定的方式進行反序列化。由于保存在底層存儲系統(tǒng)中的只有字段ID和字段的具體值,因此需要通過schema信息管理模塊將字段ID轉換成對應的字段名稱,最后將字段名稱和各個字段的具體值一起返回給請求方,完成整個讀操作。
進一步地,本發(fā)明實施例所述的裝置還包括校驗單元,通過校驗單元對發(fā)出讀指令和寫指令的終端進行校驗,并在校驗通過后,對所述字段名稱和所述字段ID進行雙向轉換。
也就是說,本發(fā)明只對校驗通過的終端發(fā)出的讀指令和寫指令進行處理,以更好的維護管理系統(tǒng)的安全性。
本發(fā)明實施例中的相關內容可參照方法實施例部分進行理解,在此不再贅述。
管理系統(tǒng)實施例
本發(fā)明實施例提供了一種管理系統(tǒng),該管理系統(tǒng)包括裝置實施例中所述的任意一種裝置。
本發(fā)明實施例中的相關內容可參照裝置實施例和方法實施例部分進行理解,在此不再贅述。
本發(fā)明可以至少可以達到以下的有益效果:
本發(fā)明通過預設數據庫對象集合schema信息的字段名稱和字段ID之間的雙向映射關系,并在接收到讀指令或者寫指令時,對所述字段名稱和所述字段ID進行雙向轉換,從而降低了數據存儲占用的內存和磁盤空間,節(jié)省了存儲成本,并降低了磁盤I/O和網絡I/O,提升了系統(tǒng)的性能,有效解決了現(xiàn)有技術中數據庫對象集合schema信息的存儲占用空間較大的問題。
盡管為示例目的,已經公開了本發(fā)明的優(yōu)選實施例,本領域的技術人員將意識到各種改進、增加和取代也是可能的,因此,本發(fā)明的范圍應當不限于上述實施例。