Apache Phoenix 与 Hbase Native API

Ash*_*thy 5 hbase phoenix

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

Gri*_*ick 5

在完美世界中,本机 api 会运行得更快,但您需要一直努力,因为为 Hbase 开发好的 api 是一个单独的项目。大工程。

并且您需要对 map-reduce 和 hbase 内部流程有深入的了解。但是凤凰已经为你做了这一切。例如,二级索引用于创建和自动维护主表上的全局索引。查询在效率更高时自动使用索引,将全表扫描转换为点扫描和范围扫描。可以按升序或降序对多个列进行索引。索引中可以包含其他主表列以形成覆盖索引。有两种版本: 可变数据的服务器端索引维护。客户端索引维护针对一次写入、仅追加用例进行了优化。

Phoenix 还为您制作了跳过扫描地图缩小功能。还有更多……看这里http://phoenix-hbase.blogspot.com/http://phoenix.apache.org/performance.html#

在phoenix下工作的团队花了很多时间来优化所有这些操作,如果你想用原生api来写。你必须确信你可以做得更好。

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

还有一个非常好的技术是具有高性能的 SparkOnHbase http://blog.cloudera.com/blog/2014/12/new-in-cloudera-labs-sparkonhbase/ 这个速度更快,但更复杂。并且没有一些好的特性,比如索引和 Hbase 原生函数。所以你需要写它。