很多复杂的报表项目,是借助报表工具(或插件)来实现的,下面以jasperReport举例。这些报表工具可以对传统的数据源(关系型数据库、collectionsjava Bean Array)进行很好的支持。

        HBase的数据结构虽然与关系型数据库不一样,但HBase本身就是java开发的。有专门的java API实现对HBase的操作,当然也包括查询,以下是一段javaHBase的查询代码:

        HTable table=new HTable(hbaseConfig,tablename);  

        Get g = new Get(Bytes.toBytes(rowKey));  

        Result r=table.get(g);  

        for(KeyValue kv:r.raw()){  

            System.out.println("column: "+new String(kv.getColumn()));  

            System.out.println("value: "+new String(kv.getValue())); 

        } 

通过以上查询代码,可以发现HBase的查询结果是存放到java Bean Array&collections中的,因此,通过一定的处理,基于HBase的报表是可以实现的。

以下是我个人简单的设计思路:

    wKiom1Ny02nxX0B8AACJ2ahnS6g063.jpg

 

 本人正处于Hadoop/HBase的入门阶段,对HBase的数据模型还没有理解透彻, 基于HBase的报表实现目前只是我个人的设想,欢迎有兴趣的朋友一起探讨!