基于HBase數(shù)據(jù)庫對數(shù)據(jù)的寫操作方法及裝置的制造方法
【技術領域】
[0001] 本發(fā)明涉及計算機技術領域,特別是涉及一種基于HBase數(shù)據(jù)庫對數(shù)據(jù)的寫操作 方法及裝置。
【背景技術】
[0002] HBase是一個開源的非關系型分布式數(shù)據(jù)庫(NoSQL),它是基于row-key的字典順 序來切分數(shù)據(jù)塊的,因此為了便于將數(shù)據(jù)寫入HBase數(shù)據(jù)庫,一般需要對數(shù)據(jù)進行編號,每 個數(shù)據(jù)具有唯一的編號。
[0003] 在對數(shù)據(jù)進行編號時,一般采用流水號,流水號中隱含有該數(shù)據(jù)的數(shù)據(jù)量信息以 及該數(shù)據(jù)出現(xiàn)的時間信息等,流水號一般按照從小到大的順序依次生成。有時為了區(qū)別數(shù) 據(jù)的類型,還會在流水號之前、之后或中間增加反應該數(shù)據(jù)類型的類型碼。如下表1所示的 對視頻數(shù)據(jù)的編號:該編號中類型碼123在前,流水號012345在后。
[0004]
【主權項】
1. 一種基于HBase數(shù)據(jù)庫對數(shù)據(jù)的寫操作方法,其特征在于,該方法包括: 接收編號生成請求; 根據(jù)當前的流水號,及預存的逆序位數(shù)k,將當前流水號的最后k位逆序,其中所述k根 據(jù)HBase數(shù)據(jù)庫的配置信息確定,其為不小于1的整數(shù); 將逆序后的最后k位設置在編號的首端,并根據(jù)該流水號剩余位數(shù)生成編號; 按照生成的編號,將該數(shù)據(jù)寫入HBase數(shù)據(jù)庫的相應服務器中。
2. 如權利要求1所述的方法,其特征在于,所述請求中攜帶待生成編號的數(shù)據(jù)的類型 信息; 所述將逆序后的最后k位設置在編號的首端,并根據(jù)該流水號剩余位數(shù)生成編號包 括: 將逆序后的最后k位設置在編號的首端,并根據(jù)該流水號剩余位數(shù)及該類型信息對應 的類型碼生成編號。
3. 如權利要求1或2所述的方法,其特征在于,所述根據(jù)HBase數(shù)據(jù)庫的配置信息確定 k包括: 根據(jù)HBase數(shù)據(jù)庫的配置信息,確定數(shù)據(jù)被切分的數(shù)量X; 根據(jù)數(shù)據(jù)被切分的數(shù)量X,確定流水號的逆序位數(shù)k。
4. 根據(jù)權利要求1或2所述的方法,其特征在于,所述流水號包括: 10進制流水號和16進制流水號。
5. 如權利要求4所述的方法,其特征在于,當流水號為10進制流水號時,所述根據(jù)數(shù)據(jù) 被切分的數(shù)量x,確定流水號的逆序位數(shù)k包括: 取數(shù)量X的對數(shù),將取對數(shù)的結果進行上取整操作; 將上取整操作后的整數(shù)確定為逆序位數(shù)k。
6. 如權利要求5所述的方法,其特征在于,所述按照生成的編號,將該數(shù)據(jù)寫入HBase 數(shù)據(jù)庫的相應服務器中包括: 根據(jù)設置的切分位數(shù)m,其中m等于k,按照生成的編號,將所述數(shù)據(jù)寫入HBase數(shù)據(jù)庫 的相應服務器。
7. 根據(jù)權利要求1或2所述的方法,其特征在于,所述HBase數(shù)據(jù)庫的配置信息包括: HBase數(shù)據(jù)庫中服務器的數(shù)量及HBase數(shù)據(jù)庫中服務器的硬盤數(shù)量。
8. 根據(jù)權利要求1或2所述的方法,其特征在于,所述數(shù)據(jù)包括:視頻數(shù)據(jù)和圖像數(shù) 據(jù)。
9. 一種基于HBase數(shù)據(jù)庫對數(shù)據(jù)的寫操作裝置,其特征在于,所述裝置包括: 接收模塊,用于接收編號生成請求; 逆序模塊,用于根據(jù)當前的流水號,及預存的逆序位數(shù)k,將當前流水號的最后k位逆 序,其中所述k根據(jù)HBase數(shù)據(jù)庫的配置信息確定,其為不小于1的整數(shù); 編號模塊,用于將逆序后的最后k位設置在編號的首端,并根據(jù)該流水號剩余位數(shù)生 成編號; 寫入模塊,用于按照生成的編號,將該數(shù)據(jù)寫入HBase數(shù)據(jù)庫的相應服務器中。
10. 根據(jù)權利要求9所述的裝置,其特征在于,所述接收模塊,還用于接收編號生成請 求,其中所述請求中攜帶待生成編號的數(shù)據(jù)的類型信息; 所述編號模塊,還用于將逆序后的最后k位設置在編號的首端,并根據(jù)該流水號剩余 位數(shù)及該類型信息對應的類型碼生成編號。
11. 根據(jù)權利要求9或10所述的裝置,其特征在于,所述裝置還包括: 確定模塊,用于根據(jù)HBase數(shù)據(jù)庫的配置信息,確定數(shù)據(jù)被切分的數(shù)量X;根據(jù)數(shù)據(jù)被 切分的數(shù)量X,確定流水號的逆序位數(shù)k。
12. 根據(jù)權利要求11所述的裝置,其特征在于,所述確定模塊,具體用于針對10進制流 水號,取數(shù)量X的對數(shù),將取對數(shù)的結果進行上取整操作;將上取整操作后的整數(shù)確定為逆 序位數(shù)k。
13. 如權利要求12所述的裝置,其特征在于,所述寫入模塊,具體用于根據(jù)設置的切分 位數(shù)m,其中m等于k,按照生成的編號,將所述數(shù)據(jù)寫入HBase數(shù)據(jù)庫的相應服務器。
【專利摘要】本發(fā)明實施例公開了一種基于HBase數(shù)據(jù)庫對數(shù)據(jù)的寫操作方法及裝置,以實現(xiàn)負載均衡,提高并發(fā)處理效率。該方法包括接收編號生成請求,根據(jù)當前的流水號,及預存的根據(jù)HBase數(shù)據(jù)庫的配置信息確定的逆序位數(shù),將當前流水號的最后k位逆序前置在編號的首端,并生成編號,按照生成的編號,將該數(shù)據(jù)寫入HBase數(shù)據(jù)庫的相應服務器中。由于本發(fā)明實施例中根據(jù)HBase數(shù)據(jù)庫的配置信息,確定了流水號的逆序位數(shù)k,并在編號生成時將流水號的最后k位逆序設置在編號的首端,從而生成一個首端高頻變化的編號,在對數(shù)據(jù)進行寫操作時,可以將數(shù)據(jù)均勻地分配到HBase數(shù)據(jù)庫的每個服務器中,實現(xiàn)負載均衡并提高對數(shù)據(jù)進行并行寫操作的效率。
【IPC分類】G06F17-30
【公開號】CN104794226
【申請?zhí)枴緾N201510217729
【發(fā)明人】楊和東
【申請人】北京奇藝世紀科技有限公司
【公開日】2015年7月22日
【申請日】2015年4月30日