Phoenix 整合 spark 进行查询分析
前言
Phoenix 是一个开源的 HBASE SQL 层。它不仅可以使用标准的 JDBC API 替代 HBASE client API 创建表,插入和查询 HBASE,也支持二级索引、事物以及多种 SQL 层优化。
为什么要使用 Phoenix ?
因为使用 hbase 的 api 查询,代码开发起来比较麻烦,而 Phoenix 使支持 SQL 查询的
Phoenix 可以构建盐表,能够解决热点问题,从而避免一个 rs 频繁被请求,其他的 rs 很闲的
Phoenix 支持二级索引,因为可以构建盐表,索引也是分区的.
为什么要和 spark 整合呢 ?
Phoenix 是 hbase 的 SQL 层,主要为了解决高并发、低延迟、简单查询
场景,当然也可以解决一定的分析需求。 必须命中索引 且 命中后 返回的数据较少, 此时 Phoenix 是比较适合的,但是如果有复杂的业务查询和大量的聚合操作,就会对hbase 的稳定性造成一定的影响,这个时候 Phoenix 是不适合的.
spark 提供的分析引擎满足 低并发,高延迟,复杂计算
场景。 不管怎么复杂的 SQL,都可以完成。 另外 Spark 可以支持sql、scala、java、python