HBase获取数据性能对比

hbase

hbase

对HBase中的数据读取,有多种方式,如Get,List,Scan等,本文通过对不同数据读取方式进行了对比。

数据准备

首先,准备数据写入HBase,总数10万记录,格式如下:

1-aabbcc

10-aabbcc

100-aabbcc

2-aabbcc

20-aabbcc

200-aabbcc

获取方式

取k条连续数据(如k=1000,取2000aabbcc到3000aabbcc),采用3种方式进行获取:

  • Get循环

  • List

  • Scan(startRow,stopRow)

  • Scan(startRow,stopRow)加上RowFilter(RegexStringComparator)

获取数量 1 2 3 4
k=1000 3415 1480 596 93
k=2000 6395 1062 1156 156
k=3000 8465 2400 1557 245
k=4000 11669 1582 2082 276
k=5000 14503 2140 2756 422
k=6000 17585 2221 2794 380
k=7000 21285 4578 3474 542

start loop query table ……

k=1000 Start:2000 End:3000

end query data:3675ms

Sum value:2502500

================================================

start batch query table ……

end query data:612ms

Sum value:2502500

Result lines:1001

================================================

start scan query table ……

end scan data:111ms

Sum value:2502500

Result lines:1001

================================================

===================================================================

k=2000 Start:2000 End:4000

end query data:6819ms

Sum value:6003000

================================================

start batch query table ……

end query data:941ms

Sum value:6003000

Result lines:2001

================================================

start scan query table ……

end scan data:153ms

Sum value:6003000

Result lines:2001

================================================

===================================================================

k=3000 Start:2000 End:5000

end query data:10832ms

Sum value:10503500

================================================

start batch query table ……

end query data:1358ms

Sum value:10503500

Result lines:3001

================================================

start scan query table ……

end scan data:278ms

Sum value:10503500

Result lines:3001

================================================

===================================================================

k=4000 Start:2000 End:6000

end query data:23075ms

Sum value:16004000

================================================

start batch query table ……

end query data:1639ms

Sum value:16004000

Result lines:4001

================================================

start scan query table ……

end scan data:440ms

Sum value:16004000

Result lines:4001

================================================

===================================================================

k=5000 Start:2000 End:7000

end query data:15879ms

Sum value:22504500

================================================

start batch query table ……

end query data:1840ms

Sum value:22504500

Result lines:5001

================================================

start scan query table ……

end scan data:334ms

Sum value:22504500

Result lines:5001

================================================

===================================================================

k=6000 Start:2000 End:8000

end query data:21886ms

Sum value:30005000

================================================

start batch query table ……

end query data:2813ms

Sum value:30005000

Result lines:6001

================================================

start scan query table ……

end scan data:479ms

Sum value:30005000

Result lines:6001

================================================

===================================================================

k=7000 Start:2000 End:9000

end query data:23398ms

Sum value:38505500

================================================

start batch query table ……

end query data:3200ms

Sum value:38505500

Result lines:7001

================================================

start scan query table ……

end scan data:632ms

Sum value:38505500

Result lines:7001

================================================

===================================================================

filter

加了filter

start scan query table ……

end scan data:1749ms

Sum value:10498500

Result lines:33333

未加filter,正确结果:

start scan query table ……

end scan data:2009ms

Sum value:10503500

Result lines:33344

作者

ovasty

发布于

2021-02-18

更新于

2021-02-18

许可协议

评论

You forgot to set the shortname for Disqus. Please set it in _config.yml.