2015-02-06 116 views
4

我使用Apache Phoenix来简化我在Hbase上的数据检索/更新操作。但是我想知道从的性能角度看哪个更好?凤凰或自定义包装使用Hbase本机API?或者我们有没有其他方法不影响性能?Apache Phoenix vs Hbase Native API

回答

3

在完美的世界中Native api的工作速度会更快,但是您需要一直努力工作,因为为Hbase开发良好的API是一个单独的项目。大项目。

而且您需要对map-reduce和hbase内部过程有很好的理解。但凤凰已经为你做了这一切。 例如 辅助索引可在主表上创建并自动维护全局索引。 查询在更高效时自动使用索引,将全表扫描转换为点扫描和范围扫描。 多列可能按升序或降序排列顺序编制索引。 索引中可能包含额外的主表列,以形成覆盖索引。 有两种风格: 可变数据的服务器端索引维护。 客户端索引维护针对一次写入附加用例进行了优化。

凤凰也为您跳过扫描map-reduce。 还有更多...看看这里http://phoenix-hbase.blogspot.com/http://phoenix.apache.org/performance.html#

团队,根据凤凰工作已经花费了大量的时间来优化这一切操作,如果你想与原生API编写。你一定要确保你能做得更好。

作为另一种解决方案,您可以使用Hive或SparkSQL。 但Hive的性能较差,Spark是独立的群集,也是困难的技术。

也是一个很好的技术是SparkOnHbase的高性能http://blog.cloudera.com/blog/2014/12/new-in-cloudera-labs-sparkonhbase/ 这一个更快,但更复杂。并没有像索引和Hbase原生函数一样的好功能。所以你需要写它。

0

Phoenix将会非常合适,因为它可以更好地理解Hbase的内部工作原理,将SQL查询转换为本地HBase调用。它会为你实现协处理器,为你维护索引,如果你打算通过Hbase API实现将是一个繁琐的过程。所以凤凰使得Hbase查询的生活更容易。由于它是由salesforce创建的,您可以为其担保。此外,它有良好的社区支持。