Phoenix常用指令大全

Phoenix常用命令

创建phoenix表
create table if not exists testtable(
A bigint not null,
B double,
C varchar(200),
D varchar(200)
CONSTRAINT testtable PRIMARY KEY(A));
查看表结构
!desc testtable;

删除表
drop table testable;

向表添加数据
python /export/servers/phoenix-4.14.0-cdh5.14.2/bin/psql.py -t testable node01 /opt/xxx.csv

数据查询
Select * from testable where A> 100;

1.5.4、Phoenix索引

目标:掌握Phoenix索引类型,及创建语法。
掌握创建索引与查询条件的设计原则。
在海量数据背景下,查询数据快速返回是典型的应用场景。在phoenix数据表基础之上创建索引,能够大幅提高数据的查询效率。Phoenix支持的索引有三个类型,分别是覆盖索引、全局索引、本地索引

A: 覆盖索引Covered Index

覆盖索引要求查询语句中的条件字段、查询字段都必须创建过索引,否则就会触发“全局扫描”(full table scan)
创建语法:create index coverindex user_index on user (name) include (age);
因此它的特点是:只需要通过索引就能返回所要查询的数据 。

B: 全局索引Global indexes

global是默认的索引格式。

全局索引适用于多读少写的场景,在写操作上会给性能带来极大的开销,因为所有的更新和写操作(DELETE,UPSERT VALUES和UPSERT SELECT)都会引起索引的更新,在读数据时,Phoenix将通过索引表来达到快速查询的目的。如;

create index userid_index on user (userid);
它有一个缺陷,如果查询语句中的条件字段或查询字段不是索引字段,就会触发全表扫描。例如:select userid,name from user where userid='8960321’

解决办法有两个:
一是和覆盖索引一样,创建索引时把查询的相关字放入段include来。
create index userid_index on user (userid) include (name );

二是强制使用索引:
select /*+ index(user,userid_index) */ name FROM user userid='8960321’;

制使用索引的查询语句会导致二次检索数据表,第一次检索是去索引表中查找符合userid='8960321’的数据,此时候发现 name 字段并不在索引字段中,会去user 表中第二次扫描name。因此只有当用户明确知道name符合检索条件的数据较少的时候才适合使用,否则会造成全表扫描,对性能影响较大。

C: 本地索引Local Indexing

与Global Indexing不同,本地索引适用于写多读少的场景,当使用Local Indexing的时候即使查询的所有字段都不在索引字段中时也会用到索引进行查询,Phoneix在查询时会自动选择是否使用本地索引(这是由Local Indexing自动完成的)。

create local index user_Index on user (userid,name);

D: 索引常用操作

查看表索引
!index “harve_user”;

删除索引
drop index user_Index on user;

E: 索引有序性

创建的索引字段的顺序,与查询语句条件字段的顺序,两者之间的对应关系对索引是否生效有较大影响。
查询语句条件字段的顺序尽量与索引的顺序相同。索引的首字段在查询条件中尽量第一个出现。

测试
创建测试表
create table if not exists testdata(
A bigint not null,
B bigint,
C bigint,
D bigint,
E bigint,
F bigint,
G bigint,
H bigint,
I bigint
CONSTRAINT testdata PRIMARY KEY(A));

加载一千万数据
python /export/servers/phoenix-4.14.0-cdh5.14.2/bin/psql.py -t TESTDATA node01 TestDatas.csv

创建索引
CREATE INDEX testdataindex ON testdata (B,C,D,E,F)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值