phoenix的元数据一般存在哪里_Phoenix常用操作

简介

Phoenix本意是凤凰的意思,Apache Phoenix是构建在HBase之上的关系型数据库层,作为内嵌的客户端JDBC驱动用以对HBase中的数据进行低延迟访问。Apache Phoenix会将用户编写的sql查询编译为一系列的scan操作,最终产生通用的JDBC结果集返回给客户端。数据表的元数据存储在HBase的表中被会标记版本号,所以进行查询的时候会自动选择正确的schema。直接使用HBase的API,结合协处理器(coprocessor)和自定义的过滤器的话,小范围的查询在毫秒级响应,千万数据的话响应速度为秒级。

特性

Phoenix可以用SQL语句来查询Hbase,且只能查Hbase,别的类型比如查询文本文件等都不支持!如果要查文本文件等,可以使用Hive和Impala,Phoenix在Hbase上查询的性能较Hive和Impala具有优势。

常用操作

登录。1./sqlline.py localhost

查看HBase所有表。1!tables

table schema为system的是系统表。

查看HBase中表名为test的所有列。1!columns test

表名不用加引号。

查询表数据。1

2

3select * from test;

select name from test;//查询指定列

select * from test where name = 'jiangxiaoqiang';//条件查询

删除表数据。1

2delete from test where condition;//语法

delete from test where name is null;//例子

condition是过滤条件,注意结尾需要有分号,表示SQL语句已经结束,可以提交给引擎执行。

清除表的重复数据。1delete from tablename where vtime in ( select vtime from tablename group by vtime having count(*)>1) and id not in (select max(id) from tablename group by vtime having count(*)>1 );

清除同一时间重复的数据(同一时刻只能有1条数据)。

连接查询。1SELECT P.id as id, vtime, A.description FROM 表P P left join 表A A on P.id=A.positional_Id WHERE P.vehicle_id='cae21196-cb66-4256-88a6-7cdfb23e2c78' and P.vtime >= '2016-10-10 00:00:00' and P.vtime <= '2016-10-13 23:59:59' and P.alarm is not null and P.alarm != '0' order by P.vtime;

注意在做MyBatis映射时,P.id列需要一个别名,对应定义的实体字段。

函数(Function)

substr函数用于截取字符串。1select substr(time,0,11) from test group by substr(time,0,11);

time为需要截取的字符串,从第0位开始截取11位长度。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值