phoenix 根据条件更新_使用Phoenix通过sql语句更新操作hbase数据

hbase 提供很方便的shell脚本,可以对数据表进行 CURD 操作,但是毕竟是有一定的学习成本的,基本上对于开发来讲,sql 语句都是看家本领,那么,有没有一种方法可以把 sql 语句转换成 hbase的原生API呢? 这样就可以通过普通平常的 sql 来对hbase 进行数据的管理,使用成本大大降低。Apache Phoenix 组件就完成了这种需求,官方注解为 “Phoenix - we put the SQL back in NoSql”,通过官方说明,Phoenix 的性能很高,相对于 hbase 原生的scan 并不会差多少,而对于类似的组件 hive、Impala等,性能有着显著的提升,详细请阅读 https://phoenix.apache.org/performance.html。

一、安装使用

Phoenix 安装很简单,下载对应hbase版本的Phoenix,下载地址,以phoenix-4.4.0-HBase-0.98-bin.tar.gz为例,解压文件,将phoenix-4.4.0-server.jar 拷贝到hbase安装目录的lib下,注意:每台regionserver均需要拷贝,重启hbase server即可,官方如下:

download and expand the latest phoenix-[version]-bin.tar.

Add the phoenix-[version]-server.jar to the classpath of all HBase region server and master and remove any previous version. An easy way to do this is to copy it into the HBase lib directory (use phoenix-core-[version].jar for Phoenix 3.x)

restart the region servers

Add the phoenix-[version]-client.jar to the classpath of any Phoenix client.

download and setup SQuirrel as your SQL client so you can issue adhoc SQL against your HBase cluster

二、shell 命令

通过案例,create 表,插入语句,更新语句,删除语句案例,详细可参考:https://phoenix.apache.org/faq.html

Phoenix 连接hbase的命令如下,sqlline.py [zookeeper] :

bash[hadoop@slave2 lib]$ ./sqlline.py 10.35.66.72

Setting property: [isolation, TRANSACTION_READ_COMMITTED]

issuing: !connect jdbc:phoenix:10.35.66.72 none none org.apache.phoenix.jdbc.PhoenixDriver

Connecting to jdbc:phoenix:10.35.66.72

15/06/24 13:06:29 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

Connected to: Phoenix (version 4.2)

Driver: PhoenixEmbeddedDriver (version 4.2)

Autocommit status: true

Transaction isolation: TRANSACTION_READ_COMMITTED

Building list of tables and columns for tab-completion (set fastconnect to true to skip)...

193/193 (100%) Done

Done

sqlline version 1.1.2

0: jdbc:phoenix:10.35.66.72>!tables

+------------------------------------------+------------------------------------------+------------------------------------------+-------------------+

| TABLE_CAT | TABLE_SCHEM | TABLE_NAME | TA |

+------------------------------------------+------------------------------------------+------------------------------------------+-------------------+

| null | WL | BIG_LOG_DEVUTRACEID_INDEX | INDEX |

| null | WL | MSGCENTER_PUSHMESSAGE_V2_OWNERPAGE_INDEX | INDEX |

| null | SYSTEM | CATALOG | SYSTEM TABLE |

| null | SYSTEM | SEQUENCE | SYSTEM TABLE |

| null | SYSTEM | STATS | SYSTEM TABLE |

| null | DMO | SOWNTOWN_STATICS | TABLE |

| null | OL | BIGLOG | TABLE |

| null | WL | BIG_LOG | TABLE |

| null | WL | ERROR_LOG | TABLE |

| null | WL | MSGCENTER_PUSHMESSAGE | TABLE |

| null | WL | MSGCENTER_PUSHMESSAGE_V2 | TABLE |

+------------------------------------------+------------------------------------------+------------------------------------------+------------------

从上面能够看到,已经连接到了hbase集群上面࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值