性能优化:
1、Row Key:将最近可能被访问的数据放在一起;
Long.MAX_VALUE - timestamp作为行键;
2、InMemory:相关数据放在缓存中,实时性高;
创建表的时候,设置HColumnDescriptor.setInMemory(true);
3、Max Version:节约存储空间;
创建表的时候,设置HColumnDescriptor.setMaxVersions(int maxVersions);
4、Time to Live:根据时间自动清理过期数据;
创建表的时候,设置HColumnDescriptor.setTimeToLive(int timeToLive);
HBase性能监测工具,Master-status(自带)、Ganglia、OpenTSDB、Ambari(这个企业比较常见);
HBase构建SQL引擎:(有点不明白所以没总结)
NoSQL区别于关系型数据库的一点就是NoSQL不使用SQL作为查询语言,至于为何在NoSQL数据存储HBase上提供SQL接口,有如下原因:
1.易使用。使用诸如SQL这样易于理解的语言,使人们能够更加轻松地使用HBase。
2.减少编码。使用诸如SQL这样更高层次的语言来编写,减少了编写的代码量。
方案:
1.Hive整合HBase
Hive与HBase的整合功能从Hive0.6.0版本已经开始出现,利用两者对外的API接口互相通信,通信主要依靠hive_hbase-handler.jar工具包(Hive Storage Handlers)。由于HBase有一次比较大的版本变动,所以并不是每个版本的Hive都能和现有的HBase版本进行整合,所以在使用过程中特别注意的就是两者版本的一致性。
2.Phoenix
Phoenix由Salesforce.com开源,是构建在Apache HBase之上的一个SQL中间层,可以让开发者在HBase上执行SQL查询。