从this article开始,Phoenix适用于快速HBase查找。它的二级索引功能支持许多SQL构造,并且通过非主键字段进行的查找比全表扫描更有效。通过提供复合行键并在使用Phoenix接口编写数据时强制对数据进行约束,从而简化了以行为中心的类型数据的创建和管理。
但是,通常,NoSQL DB上的联接选项很昂贵。联接需要扫描每个区域并将结果广播到其他区域。 Phoenix的主要优点之一是将SQL用于hbase,而join是使用SQL的重要组成部分。因此,既然在NoSQL DB上进行联接,那么拥有Phoenix的意义何在?
我可以说Phoenix的一个好用例没有很多联接吗?
答案 0 :(得分:0)
以下是我的看法,这是主观的。我偏爱凤凰,因为我经常使用它!
a)SQL语义是一个大+
b)Phoenix还可以使用内部机制并行化查询(Phoenix指南文章)
c)Phoenix提供了一种很好的预拆分表格(1字节盐)的方法,可以帮助您避免热点
d)在HBase中使用零件键进行删除很困难,您可以在Phoenix中确定地做到这一点
e)凤凰城中的汇总非常方便(分组依据)
f)Phoenix的某些连接器要好得多(例如spark扩展函数,phoenixTableAsDataFrame)
g)在编写复杂查询时,我经常使用解释计划来理解扫描内容
h)提示(我喜欢SKIP_SCANS,尤其是在采样过程中),广播连接提示也很有用
i)诸如CONVERT_TZ,SQL上的DATE函数之类的好东西
j)视图整洁,带有投影视图的漂亮基表非常方便(尤其是共享环境)