Phoenix入门(上)

本文介绍了Phoenix,一个开源的HBase SQL层API,用于简化HBase的数据操作。内容包括Phoenix概述、与DBeaver的安装、使用命令行工具psql的实践,包括数据导入、删除表操作及Phoenix数据类型的理解。
摘要由CSDN通过智能技术生成

本文作者:林伟兵,叩丁狼高级讲师。原创文章,转载请注明出处。

1.Phoenix概述

Phoenix是一个开源的HBASE SQL层API。Phoeinx可以用标准的JDBC API替代HBASE client API来创建表,插入和查询查询HBASE中的数据。Phoenix作为应用层和HBASE之间的中间件,以下特性使它在大数据量的简单查询场景有着独有的优势:

  1. 支持二级索引.
  2. 编译SQL成为原生HBase的可并行执行的查询,并下推where过滤条件到server端的scan filter上
  3. 在数据层完成计算,server端的coprocessor执行聚合
  4. 利用统计信息优化、选择查询计划
  5. skip scan功能提高扫描速度

2.Phoenix&DBeaver安装

安装步骤如下:

  1. 不同版本的Phoenix对应不同的HBase版本,找到对应的版本下载并解压。下载地址如下:http://phoenix.apache.org/download.html
  2. 将 phoenix-[version]-server.jar 添加到HBase的各个节点的lib文件夹下。
  3. 重启 HBase.
  4. 配置Phoenix环境变量。
## PHOENIX PATH
export PHOENIX_HOME=/usr/local/phoenix
export PATH=$PATH:$PHOENIX_HOME/bin

3.Phoenix客户端实践

一般可以使用以下三种方式访问Phoenix:

  1. 使用Python编写的命令行工具(sqlline, sqlline-thin和psql等)
  2. JDBC API
  3. SQuirrel / DBeaver

3.1.命令行工具psql使用示例

psql.py主要是用来实现批量加载CSV数据的一个工具,其存放在bin目录下。用法如下:

1.创建一个建表的sql脚本文件 employee.sql:

CREATE TABLE IF NOT EXISTS t_employee (
 name VARCHAR PRIMARY KEY,
 age UNSIGNED_INT,
 gender CHAR(1),
 salary UNSIGNED_DOUBLE );

2.创建csv格式的数据文件t_employee.csv 【注意这里的文件后缀必须是csv】:

zhangsan,30,M,5600.50
lisi,35,M,4800.50
wangwu,33,M,9700.00
zhaoliu,54,M,12000.00
赵义,42,M,9200.00
郭芬芳,35,F,4200.00

3.创建一个查询sql脚本文件t_employee_queries.sql:

SELECT name as "员工姓名",gender as "性别",salary as "工资"
FROM t_employee
ORDER BY salary DESC;

4.执行psql.py工具运行sql脚本:

bin/psql.py hdp01 employee.sql t_employee.csv t_employee_queries.sql

执行结果如下:

员工姓名                                     性                                       工资 
---------------------------------------- - ---------------------------------------- 
zhaoliu                                  M                                  12000.0 
wangwu                                   M                                   9700.0 
赵义                                       M                                   9200.0 
zhangsan                                 M                                   5600.5 
lisi                                    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值