我在Java客户端上对PUT性能做了一些工作,但结果对我来说并不清楚。
问题在于: 什么是HBase的最佳方式?一个包含1000列(4个系列)或1000个单一列的单个列?也许4个赌注,每个250列?
理论上,什么是最好的策略?
PS:我不能使用批处理,因为我需要Wals for Solr。
感谢。
答案 0 :(得分:1)
首先使用尽可能少的列族(我在此answer中提供了详细信息)。其次,您不仅要指定写入模式,还要指定读取模式。 HBase最适合"写一次并阅读许多"场景。因此,您希望设计表格,从而提供最快的数据访问。而这个标准将决定你是否需要" tall"或"宽"表。查看" HBase in Action"的HBase table design章节。
答案 1 :(得分:1)
要获得写操作的良好性能,您应该使用一个Put for single Row。在其他情况下,性能将显着降低,因为HBase会为行键创建锁定,在这种情况下,同步会浪费大量时间。在每行单次放置的情况下,写入性能将与批量负载相当。