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的話,...