使用phoenix查询hbase

栏目: Java · 发布时间: 6年前

内容简介:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kongxx/article/details/87996363

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kongxx/article/details/87996363

今天需要从的 hbase 使用 sql 来查询数据,于是想到了使用 phoenix 工具,在自己的环境里大概试了一下,一下子就通了,就这么神奇。

下载安装

首先从 apache 下载 phoenix 包,这里因为我的hbase hbase-1.4.9 版,所以我下载的对应的版本 apache-phoenix-4.14.1-HBase-1.4-bin.tar.gz

下载后解压之 apache-phoenix-4.14.1-HBase-1.4-bin.tar.gz

tar zxvf apache-phoenix-4.14.1-HBase-1.4-bin.tar.gz

准备 hbase

为了使用 phoenix,需要将 phoenix 目录下的 phoenix-*。jar 包复制到 hbase 的 lib 目录下,比如:

cp apache-phoenix-4.14.1-HBase-1.4-bin/phoenix-*.jar hbase-1.4.9/lib/

然后重新系统 hbase 服务

cd hbase-1.4.9/bin
./stop-hbase.sh
./start-hbase.sh

连接phoenix

可以使用下面两种方式连接

方式一:直接连接

cd apache-phoenix-4.14.1-HBase-1.4-bin/bin
# 默认连接本地hbase
./sqlline.py

# 连接指定机器的hbase
./sqlline.py localhost:2181

方式二:通过 queryserver 连接

首先启动 queryserver 服务

cd apache-phoenix-4.14.1-HBase-1.4-bin/bin
./queryserver.py

然后使用 sqlline-thin 命令连接

cd apache-phoenix-4.14.1-HBase-1.4-bin/bin
# 默认连接本地hbase
./sqlline-thin.py

# 连接指定机器的hbase
./sqlline-thin.py localhost:8765

基本操作

# 查看帮助
0: jdbc:phoenix:thin:url=http://localhost:876> !?
...

# 查看连接
0: jdbc:phoenix:thin:url=http://localhost:876> !list
1 active connection:
 #0  open     jdbc:phoenix:thin:url=http://localhost:8765;serialization=PROTOBUF

# 查询表
0: jdbc:phoenix:thin:url=http://localhost:876> !table
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----+
| TABLE_CAT  | TABLE_SCHEM  | TABLE_NAME  |  TABLE_TYPE   | REMARKS  | TYPE_NAME  | SELF_REFERENCING_COL_NAME  | REF_GENERATION  | INDEX_STATE  | IMM |
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----+
|            | SYSTEM       | CATALOG     | SYSTEM TABLE  |          |            |                            |                 |              | fal |
|            | SYSTEM       | FUNCTION    | SYSTEM TABLE  |          |            |                            |                 |              | fal |
|            | SYSTEM       | LOG         | SYSTEM TABLE  |          |            |                            |                 |              | tru |
|            | SYSTEM       | SEQUENCE    | SYSTEM TABLE  |          |            |                            |                 |              | fal |
|            | SYSTEM       | STATS       | SYSTEM TABLE  |          |            |                            |                 |              | fal |
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----+

# 创建一个数据表 users
0: jdbc:phoenix:thin:url=http://localhost:876> CREATE TABLE users (id INTEGER PRIMARY KEY, username VARCHAR, password VARCHAR);
No rows affected (1.573 seconds)
0: jdbc:phoenix:thin:url=http://localhost:876> !table
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----+
| TABLE_CAT  | TABLE_SCHEM  | TABLE_NAME  |  TABLE_TYPE   | REMARKS  | TYPE_NAME  | SELF_REFERENCING_COL_NAME  | REF_GENERATION  | INDEX_STATE  | IMM |
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----+
|            | SYSTEM       | CATALOG     | SYSTEM TABLE  |          |            |                            |                 |              | fal |
|            | SYSTEM       | FUNCTION    | SYSTEM TABLE  |          |            |                            |                 |              | fal |
|            | SYSTEM       | LOG         | SYSTEM TABLE  |          |            |                            |                 |              | tru |
|            | SYSTEM       | SEQUENCE    | SYSTEM TABLE  |          |            |                            |                 |              | fal |
|            | SYSTEM       | STATS       | SYSTEM TABLE  |          |            |                            |                 |              | fal |
|            |              | USERS       | TABLE         |          |            |                            |                 |              | fal |
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--------------+-----+

# 写入数据
0: jdbc:phoenix:thin:url=http://localhost:876> UPSERT INTO users (id, username, password) VALUES (1, 'admin', 'Letmein');
1 row affected (0.119 seconds)
0: jdbc:phoenix:thin:url=http://localhost:876>  UPSERT INTO users (id, username, password) VALUES (1, 'kongxx', 'Letmein');
1 row affected (0.033 seconds)

# 查询数据
0: jdbc:phoenix:thin:url=http://localhost:876> select * from users;
+-----+-----------+-----------+
| ID  | USERNAME  | PASSWORD  |
+-----+-----------+-----------+
| 1   | kongxx    | Letmein   |
+-----+-----------+-----------+
1 row selected (0.107 seconds)

操作多column-family的数据表

cd apache-phoenix-4.14.1-HBase-1.4-bin/bin
./sqlline.py

# 创建一个表包括两个 column-family:A 和 B,每个 column-family 里包含两个 column
0: jdbc:phoenix:> CREATE TABLE TEST (ID INTEGER PRIMARY KEY, A.A1 VARCHAR, A.A2 VARCHAR, B.B1 VARCHAR, B.B2 VARCHAR);
No rows affected (1.506 seconds)

# 写入数据
0: jdbc:phoenix:> UPSERT INTO TEST (ID, A.A1, A.A2, B.B1, B.B2) VALUES (1, 'a11', 'a12', 'b11', 'b12');
1 row affected (0.15 seconds)
0: jdbc:phoenix:> UPSERT INTO TEST (ID, A.A1, A.A2, B.B1, B.B2) VALUES (2, 'a21', 'a22', 'b21', 'b22');
1 row affected (0.015 seconds)

# 查询数据
0: jdbc:phoenix:> SELECT * FROM TEST;
+-----+------+------+------+------+
| ID  |  A1  |  A2  |  B1  |  B2  |
+-----+------+------+------+------+
| 1   | a11  | a12  | b11  | b12  |
| 2   | a21  | a22  | b21  | b22  |
+-----+------+------+------+------+
2 rows selected (0.111 seconds)

# 删除表
0: jdbc:phoenix:> drop table TEST;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

删除

删除

[英] 维克托•迈尔-舍恩伯格(Viktor Mayer-Schönberger)著 / 袁杰 译 / 浙江人民出版社 / 2013-1 / 49.90元

《删除》讲述了遗忘的美德,为读者展现了大数据时代的取舍之道。 《删除》从大数据时代信息取舍的目的和方法分别诠释了“被遗忘的权利”。维克托首先回溯了人类追寻记忆的过程,之后提出数字技术与全球网络正在瓦解我们天生的遗忘能力。对此,他考察了促进遗忘终止4大驱动力——数字化,廉价的存储器,易于提取,全球性访问。之后,他提出了当前数字化记忆的两大威胁——信息权力与时间,并给出了应对威胁的6大对策——数......一起来看看 《删除》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具