[發明專利]數據存儲、查詢方法及裝置有效
| 申請號: | 201910550724.6 | 申請日: | 2019-06-24 |
| 公開(公告)號: | CN110413611B | 公開(公告)日: | 2023-05-12 |
| 發明(設計)人: | 王浙明;袁建偉 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22;G06F16/27 |
| 代理公司: | 北京三高永信知識產權代理有限責任公司 11138 | 代理人: | 張所明 |
| 地址: | 518057 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據 存儲 查詢 方法 裝置 | ||
本申請公開了數據存儲、查詢方法及裝置,屬于計算機技術領域。方法包括:獲取原始數據,基于原始數據得到彈性分布數據集;對于任一標簽對,獲取任一標簽對的索引文件,將索引文件存儲到磁盤中,得到索引文件在磁盤的偏移量和長度;獲取任一標簽對的標簽名稱的哈希值;根據任一標簽對的標簽名稱的哈希值,按照參考規則創建多叉樹;將索引文件在磁盤的偏移量和長度存儲到葉子節點中;從多叉樹的葉子節點開始,將每層的區塊依次存儲到磁盤中,每個區塊在存儲到磁盤中后,將每個區塊在磁盤的偏移量和長度存儲到上一層的節點中;將多叉樹的第一層的區塊存儲到內存中。本申請提供的方法能夠節省內存,提高數據查詢的效率。
技術領域
本申請實施例涉及計算機技術領域,特別涉及一種數據存儲、查詢方法及裝置。
背景技術
在大數據時代,一般會在數據儲存時創建索引,然后基于索引進行數據查詢。通過創建結構簡單、有效、性能優良的索引,可以快捷地獲取到所需查詢的數據。目前儲存數據時,一般會創建倒排索引,倒排索引是一種由屬性值來確定記錄的位置的索引方法。
相關技術在數據存儲的過程中,創建數據的索引文件,將索引文件存儲在磁盤,同時創建一個存儲索引文件相關信息的關聯容器(map),將map存儲在內存中。Map的關鍵字(key)為項(term),關鍵字的值(value)為對應的索引文件的偏移地址。數據查詢時,先在內存中根據term查找對應索引文件的偏移地址,再根據偏移地址從磁盤中獲取索引文件,從而得到查詢到的數據。在實現本申請的過程中,發明人發現相關技術至少存在以下問題:
相關技術中,當索引文件非常大的時候,存儲term和偏移地址的map可能占用大量的內存,隨著map的增大,在map中的查找性能急劇下降,從而降低數據查詢的效率。
發明內容
本申請實施例提供了一種數據存儲、查詢方法及裝置,可用于解決相關技術中的問題。所述技術方案如下:
一方面,本申請實施例提供了一種數據存儲方法,所述方法包括:
獲取原始數據,基于所述原始數據得到彈性分布數據集,所述彈性分布數據集中包含一個或多個主鍵;每個主鍵對應有一個或多個標簽對,每個標簽對由標簽名稱和標簽ID組成;
對于任一標簽對,獲取所述任一標簽對的索引文件,將所述索引文件存儲到磁盤中,得到所述索引文件在磁盤的偏移量和長度;
獲取所述任一標簽對的標簽名稱的哈希值;
根據所述任一標簽對的標簽名稱的哈希值,按照參考規則創建多叉樹,所述多叉樹的層數為一層或多層,每層包含一個或者多個區塊,每個區塊包含一個或多個節點;同一層的不同節點用于存儲位數相同數值不同的哈希值,不同層的不同節點用于存儲位數不同的哈希值;所述多叉樹的最后一層的節點為葉子節點;
將所述索引文件在磁盤的偏移量和長度存儲到所述葉子節點中;從所述多叉樹的葉子節點開始,將每層的區塊依次存儲到磁盤中,每個區塊在存儲到磁盤中后,將每個區塊在磁盤的偏移量和長度存儲到上一層的節點中;
將所述多叉樹的第一層的區塊存儲到內存中。
一方面,本申請實施例提供了一種數據查詢方法,所述方法包括:
獲取待查詢的數據和多叉樹的第一層的區塊,所述待查詢的數據包括一個或多個標簽對,每個標簽對由標簽名稱和標簽ID組成;所述多叉樹按照參考規則創建得到,所述多叉樹的層數為一層或多層,每層包含一個或者多個區塊,每個區塊包含一個或多個節點;同一層的不同節點存儲位數相同數值不同的哈希值,不同層的不同節點存儲位數不同的哈希值;所述多叉樹的最后一層的節點為葉子節點,所述葉子節點存儲索引文件在磁盤的偏移量和長度,非葉子節點存儲下一層區塊在磁盤的偏移量和長度;
對于任一標簽對,獲取所述標簽對的標簽名稱的哈希值;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201910550724.6/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





