Phoenix 指南

1)create:可以创建一张表或视图。表名如果没有用双引号括起来,默认都会使用其对应的大写字母名字表示,括起来后跟括起来的值保持一致。如果创建的表已经存在,且其不是通过phoenix create语法创建的,则可以继续使用phoenix create创建同名表,不影响原有表数据,但会影响通过phoenix select结果值存在部分不需要的值。创建视图时,需要对应的表和列族已存在,不能对表中数据进行更新操作。建表语句中,还可以附加一些HBase表、列族配置选项,如VERSIONS、MAX_FILESIZE etc.

CREATETABLE IF NOT EXISTS test( id char(10) not null primary key, value integer); 

 

2)alter:可添加或删除一列或更新表属性。被移除的列,其上数据会被删除。如果该列是主键,不能被移除,如果移除列的是一个视图,数据是不会受影响的。

ALTERTABLE testADD dept_name varchar(50)

 

3)drop:删除表或视图。如果删除表,表中数据也会被删除,如果是视图则不受影响。

DROPTABLE test

 

4)upsert:更新或插入数据。如果表中不存在该数据则插入,否则更新,所以可以看出phoenix没有单独定义insert 或update命令。列列表可以省略,但后面插入的值顺序需要与表schema定义顺序保持一致,也可自己定义插入哪些column对应值,顺序与之对应即可。目前还支持一种选择性upsert的方式,它将另外一个查询的结果作为值插入表中。如果auto commit开启的话,会在服务端就提交了,否则会缓存到客户端,等着显式提交的时候进行批量upsert,通过配置” phoenix.mutate.upsertBatchSize”指定大小,默认10000行/次。

UPSERTINTO TEST VALUES('foo','bar',3);

 

5)delete:删除指定行。如果auto commit开启,则会直接在服务端执行删除。

DELETE FROM TEST WHERE ID=123;

 

6)index:二级索引。在表或视图上创建二级索引,当前版本仅支持对具有IMMUTABLE_ROWS属性的表上添加二级索引。目前实现是在数据行插入后便插入了索引。当创建了索引后,其实也会在HBase中创建一张表,表名为该二级索引名,所以还可对该index指定创建表相关参数。同时还可删除索引和修改索引。

CREATEINDEX my_idx ON sales.opportunity(last_updated_date DESC)

 

7)explain:执行计划。提供一个很简单的方式查看执行给定命令所需的逻辑步骤。每个步骤局势以单行字符串进行输出表示。这个可以很容易定位查询的性能瓶颈,或者所建二级索引是否生效等。

explain select * from test where age>0;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值