greenplum 常用操作

注:greenplum只能在master主节点进行登陆查询

 

一、常用操作

1、连接数据库, 默认的用户和数据库是postgres

psql -U user -d dbname

2、切换数据库,相当于MySQL的use dbname

\c dbname

3、列举数据库,相当于mysql的show databases

\l

4、列举表,相当于mysql的show tables

\dt

5、查看表结构,相当于desc tblname,show columns from tbname

\d tblname

6、查看索引

\di

7、查看函数

\df

8、创建数据库

create database [数据库名];

9、删除数据库:

drop database [数据库名];

10、重命名一个表:

alter table [表名A] rename to [表名B];

11、删除一个表:

drop table [表名];

12、在已有的表里添加字段:

alter table [表名] add column [字段名] [类型];

13、删除表中的字段:

alter table [表名] drop column [字段名];

14、重命名一个字段:

alter table [表名] rename column [字段名A] to [字段名B];

15、给一个字段设置缺省值:

alter table [表名] alter column [字段名] set default [新的默认值];

16、去除缺省值:

alter table [表名] alter column [字段名] drop default;

17、在表中插入数据:

insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......);

18、修改表中的某行某列的数据:

update [表名] set [目标字段名]=[目标值] where [该行特征];

19、删除表中某行数据:

delete from [表名] where [该行特征];
delete from [表名];--删空整个表


20、创建表:

create table ([字段名1] [类型1] <references 关联表名(关联的字段名)>;,[字段名2] [类型2],......<,primary key (字段名m,字段名n,...)>;);

21、显示 PostgreSQL 的使用和发行条款

\copyright

22、显示或设定用户端字元编码

\encoding [字元编码名称]

23、SQL 命令语法上的说明,用 * 显示全部命令

\h [名称]

24、提示用户设定内部变数

\prompt [文本] 名称

25、修改用户密码

\password [USERNAME]

26、退出 psql

\q

二、运维操作

1、查看分区

select * from pg_partitions;

 

2、查看表的分区键

select d.nspname||'.'||a.relname as table_name,string_agg(b.attname,',') as column_name
from
pg_catalog.pg_class a
inner join
pg_catalog.pg_attribute b
on a.oid=b.attrelid
inner join
pg_catalog.gp_distribution_policy c
on a.oid=c.localoid
inner join pg_catalog.pg_namespace d
on a.relnamespace=d.oid
where a.relkind='r' and b.attnum=any(c.attrnums)
and a.relname not like '%prt%'
group by table_name
order by table_name desc;

 

3、删除分区表(分区表名称:class_one_prt_class_b,删除不需要输入前缀)

alter table class_one drop partition class_b;

 

4、修改分布键(查寻分布键同上查询表结构)

alter table tab01 set distributed by(name);

 

5、随机分布

alter table tab01 set distributed randomly;

alter table tab01 set with(reorganize=true);

 

6、创建行存储表

create table t_digoal (id int, info text, crt_time timestamp) distributed by (id) partition by range(crt_time) (start (date '2016-08-01') inclusive end (date '2016-12-01') exclusive every (interval '1 day'));

 

7、创建列存储表

create table t_digoal_col(id int, info text, crt_time timestamp) with (appendonly=true, ORIENTATION=column) distributed by (id);

 

8、查询表倾斜(值越大说明越需要调整分布键)

select * from  gp_toolkit.gp_skew_coefficien;

 

 

9、查询各个节点存储表记录的个数

select gp_segment_id,count(1) from table_name group by 1;

 

posted @ 2021-11-22 13:53  运维之王  阅读(1072)  评论(0)    收藏  举报