HBase的快取和批量處理

2021-08-22 19:41:28 字數 1107 閱讀 6892

1、cache,面向行級操作,只影響效率!

(1)每乙個next()呼叫都會為每行資料生成乙個單獨的rpc請求,當單元格資料小時,這樣做的效能不會很好,我們可以一次rpc請求獲取多行資料,這樣的方法由掃瞄器快取實現,預設情況下,該快取是關閉的。程式設計時可在兩個層面開啟掃瞄器快取:表層面和掃瞄層面。

(2)**

public void testcache() throws exception

}//關閉資源

table.close();

conn.close();

}

2、batch,面向列級操作

(1)批量處理,當有一列或幾列的資料量非常大時,使用者可以設定每次呼叫next()方法得到多少列(以行為單位)

(2)**

public void testbatch() throws exception

}//關閉資源

table.close();

conn.close();

}

3、綜合練習

建立一張有兩個列族的表,新增十行資料,每行的每個列族下有十列(每列只有乙個版本),即共有200個單元格

快取大小

批量處理

result個數

rpc次數說明1

1200

201每個列都作為乙個result例項返回,最後還多乙個rpc確認掃瞄完成

2001

2002

每個result例項包含一列的值,他們都被一次rpc請求取回(加一次完成檢查)210

2011

每個result例項包含十列的值,需要十次rpc請求取回(加一次完成檢查)

5100103

每個result例項包含二十列的值,需要兩次rpc請求取回(加一次完成檢查)520

103每個result例項包含二十列的值,需要兩次rpc請求取回(加一次完成檢查)

1010203

每個result例項包含十列的值,需要兩次rpc請求取回(加一次完成檢查)

rpc請求次數=(行數 x 列數) / min(每行列數,批量大小) / 快取大小

mysql的批量處理

對於大批量資料的遷移工作,採用資料庫自身的高速批量處理能力可以較快的實現 匯出select from tablename into outfile c programdata mysql mysql server 5.7 uploads 檔名 fields terminated by lines t...

JDBC的批量處理

jdbc的批量處理 批量處理出現的原因 statement的execute 等方法一次只能執行一條sql語句,如果有多條sql語句要執行的話,可以使用addbatch 方法將要執行的sql語句加進來,然後執行executebatch方法,就可以在呼叫中執行多條語句,提高效率 批量處理的 public...

hbase中快取的優先順序

今天同事問到hbase中in memory屬性的作用,以前沒有注意過,今天仔細看了下 hbase內部的blockcache分三個佇列 single multi以及memory,分別占用25 50 25 的大小。這涉及到family屬性中的in memory選項,預設是false。設為false的話,...