[發明專利]一種數據庫存儲數據的方法及裝置有效
| 申請號: | 201010180365.9 | 申請日: | 2010-05-24 |
| 公開(公告)號: | CN102262626A | 公開(公告)日: | 2011-11-30 |
| 發明(設計)人: | 王晶昱 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京鑫媛睿博知識產權代理有限公司 11297 | 代理人: | 龔家驊 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 開曼群島;KY |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據庫 存儲 數據 方法 裝置 | ||
技術領域
本發明涉及數據庫領域,尤其涉及一種數據庫存儲數據的方法及裝置。
背景技術
數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫。數據庫產生于距今五十年前,隨著信息技術和市場的發展,數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需要的各種數據管理的方式。數據庫有很多種類型,從最簡單的存儲有各種數據的表格到能夠進行海量數據存儲的大型數據庫系統都在各個方面得到了廣泛的應用。
在互聯網行業中,企業面對的是龐大的數據以及海量的數據訪問,因此數據庫在互聯網企業中的作用越來越重要。傳統的數據庫系統基于單臺數據庫對數據進行管理,但是隨著企業的高速發展,使得業務應用對數據庫的訪問壓力成幾何級增長,單臺數據庫所帶來的數據量和訪問量瓶頸問題日益嚴重,基于單臺數據庫系統對數據進行管理的方式已經不能夠適應飛速發展中的互聯網產業的需求。
為了解決單臺數據庫所帶來的數據量和訪問量瓶頸問題,必須將原來構建于單臺數據庫的業務邏輯進行切分,構建包括多臺數據庫的業務邏輯。一般的切分方法是按照邏輯表進行一些垂直的切分,即將一些大的表切分出來放在單獨的數據庫存儲設備中,例如原單臺數據庫中存放10類業務的數據,其中第1類業務的數據量非常大,則將該第1類業務對應的數據存放到其他數據庫,并相應的切分邏輯數據表。但是當一張邏輯數據表的數據量繼續增長,到達單個數據庫的瓶頸時,這種簡單的切分方法依然面臨數據量和訪問量瓶頸問題。
將一張邏輯表分為多個子庫和子表,即分庫和分表的核心目的是減少業務系統對單臺數據庫的依賴。但在整個存儲業務系統中,一般分為前端負載均衡、應用存儲設備和后端存儲等幾個主要部分。在這種比較普遍的結構中,應用存儲設備和負載均衡都有比較成熟的技術和理論可以實現比較平滑的擴展,但由于數據本身是有狀態的,因此數據庫的擴展相對比較困難。
現有技術中提供的數據庫分庫解決方案,可以將單個數據庫切分為多個數據庫,在一定程度上解決了數據庫擴展的問題。這種方案通常是按照一個查詢量最高的字段進行取模操作。例如通常用戶標識(user_id)為查詢量最高的字段,根據user_id取模后的值,決定這條數據最終應該寫到哪個數據庫中。例如將單個數據庫內的數據分到16個數據庫時,根據其user_id?mod?16后的值,決定這條數據最終應該寫到哪個數據庫中。在對數據庫進一步擴展時,這種簡單的數據庫分庫方案將導致大批量的數據的rehash(重新哈希運算)。rehash就是對一組數據按照另外的值進行取模并分配的過程,例如,對1至100這100個數,如果每個數都對10取模,那么100個數就可以根據計算的結果0~9,平均的分配到10個虛擬的組里面去。但如果這個值要變大,如變到20,那么從1~100的所有數字對20取模以后的值有很大一部分都和對10取模的結果不同,這100個數字也自然會被分配到和對10取模后不同的虛擬組里面去,這一過程就是rehash。對應于實際場景,如果原來有10個數據庫,那么可以對某個值(例如user_id)對10取模,這樣就可以將數據比較均衡的分配到10個數據庫中。假設數據量繼續增大,10個數據庫已經不能夠滿足業務發展的需要,需要再增加10個數據庫,那么如果還希望平均的分配數據,就需要對以前已經分配到10個數據庫中的數據根據當前數據庫的數量20,進行重新分配。
經過rehash后,大批量的數據都需要重新分配數據庫。但是,這種大范圍的數據遷移,即大量數據在數據庫中的位置更新會導致存儲設備負擔加重、數據遷移復雜,并且在遷移過程中容易導致數據丟失。
發明內容
本申請提供了一種數據庫存儲數據的方法,以解決現有數據庫擴展過程中,存儲設備負擔加重、數據遷移復雜,容易導致數據丟失的問題。
本申請還提供了一種存儲裝置,以解決現有數據庫擴展過程中,存儲設備負擔加重、數據遷移復雜,容易導致數據丟失的問題。
本申請提供一種數據庫存儲數據的方法,包括:
將待存儲的數據的標識信息對第一預設值進行第一次取模處理;
根據第一次取模處理得到的值進行第一次求商處理;
根據第一次求商處理得到的第一商值,在多個數據庫內存儲所述待存儲的數據,所述第一預設值大于所述數據庫的個數。
本申請還提供一種存儲裝置,包括:
取模模塊,用于將待存儲的數據的標識信息對第一預設值進行第一次取模處理;
求商模塊,用于根據所述第一次取模處理得到的值進行第一次求商處理;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010180365.9/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種水文時間序列模體挖掘方法
- 下一篇:縱向校對方法和裝置
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





