程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 如何將關系型數據表轉換至hbase數據表

如何將關系型數據表轉換至hbase數據表

編輯:DB2教程

如何將關系型數據表轉換至hbase數據表


首先需要把關系型數據庫的數據表的數據增加由 “縱向延伸”,轉變為HBase數據表的“橫向延伸”

一、Hbase的存儲結構

a) HBase以表(HTable)的形式存儲數據

b) HTable包括很多行,每行通過RowKey唯一標記,行按照RowKey的字典序排列,表在行的方向上分割為多個HRegion

c) 每行包括一個RowKey和多個Column Family,數據按照Column Family進行物理切割,即不同Column Family的數據放在不同的Store中,一個Column Family放在一個Strore中

d) HRegion由多個Store組成。一個Store由物理上存在的一個MemStrore(內存中)和多個StoreFile(HFile)中

二、設計原則:

(1)rowkey

a) rowkey是hbase的key-value存儲中的key,通常使用用戶要查詢的字段作為rowkey查詢結果作為valueHBase中RowKey是按照字典序排列的
 

(2)Column Family的設計需遵循:

a) 不同Column Family的數據,在物理上是分開的,盡量避免一次請求需要拿到的Column分布在不同的Column Family中;

b) CF的數量盡量要少,原因是過多的columnfamily之間會互相影響

(3) column

對於column需要擴展的應用,column可以按普通的方式設計,但是對於列相對固定的應用,最好采用將一行記錄封裝到一個column中的方式,這樣能夠節省存儲空間。封裝的方式推薦protocolbuffer。

三、參考例子:

(1) Oracle關系數據表有100億車聯網監控數據

其中x表示經度,y表示緯度,creat_at:創建時間,type:1表示報警點,2表示正常點,org_id:組織機構id

需要支持:a、查詢指定天指定車輛的軌跡,b、下載指定天指定單位所有報警點,

給出一種hbase的表結構

rowkey

ColumnFamily

   

car_id+create_at+org_id+type

地點1(x,y)

地點2(x,y)

             

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved