Phoenix is an open source SQL skin for HBase. You use the standard JDBC APIs instead of the regular HBase client APIs to create tables, insert data, and query your HBase data.(Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。Phoenix完全使用Java编写,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。)
Phoenix作为应用层和HBASE之间的中间件,以下特性使它在大数据量的简单查询场景有着独有的优势。
-
二级索引支持(global index + local index)
-
编译SQL成为原生HBASE的可并行执行的scan
-
在数据层完成计算,server端的coprocessor执行聚合
-
下推where过滤条件到server端的scan filter上
-
利用统计信息优化、选择查询计划(5.x版本将支持CBO)
-
skip scan功能提高扫描速度
一般可以使用以下三种方式访问Phoenix
-
JDBC API
-
使用Python编写的命令行工具(sqlline, sqlline-thin和psql等)
-
SQuirrel
- First, let’s create a us_population.sql file, containi