Greenplum各類Tips(不定時更新)

Greenplum接觸也有一段時間了,在使用過程當中積累了一些命令,在此分享給你們。mysql

 1. 查看segment是否有切換(沒有記錄則沒有切換)sql

SELECT * from gp_segment_configuration where status='d' or mode <> 's';

 2.  查看錶的分佈是否均勻數據庫

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

3. 統計各個數據庫大小spa

select datname,pg_size_pretty(pg_database_size(datname)) from pg_database;

4.  顯示哪些沒有統計信息且可能須要ANALYZE的表code

SELECT * from gp_toolkit.gp_stats_missing ;

5.  顯示在系統表中被標記爲掉線的Segment的信息orm

SELECT * from gp_toolkit.gp_pgdatabase_invalid;

6. 顯示庫中表的大小(單位G)blog

SELECT  sotdoid,sotdsize/1024/1024/1024 as sotdsize,sotdtoastsize,sotdadditionalsize,sotdschemaname,sotdtablename from gp_toolkit.gp_size_of_table_disk order by sotdsize desc;

7.  查詢一個庫中有多少表(若是有分區表不列出子分區)字符串

SELECT relname from pg_class a,pg_namespace b where relname not like '%prt%' and relkind ='r'  and a.relnamespace=b.oid and nspname not in ('pg_catalog','information_schema','gp_toolkit') and nspname not like '%pg_temp%';

8. 查詢某個用戶對某個表有什麼權限it

select * from INFORMATION_SCHEMA.role_table_grants where grantee='user_name' and table_name='table';

9. 查看分區表的信息io

SELECT tablename,partitiontablename,partitiontype,partitionboundary from pg_partitions where tablename='table_name' order by partitionboundary desc limit 3;

10.  字符串類型轉換到整型

ALTER TABLE table_name  ALTER COLUMN COLUMN_NAME  TYPE bigint USING (COLUMN_NAME::bigint);

11.  inet類型轉換到varchar類型不要子網掩碼

ALTER TABLE table_name ALTER COLUMN COLUMN_NAME TYPE varchar(16) USING host(COLUMN_NAME);

12. 導出數據

COPY t1 to '/home/gpadmin/t1.txt' with delimiter '|';

13. 導入數據

copy t1 from '/home/gpadmin/t1.txt' with delimiter '|' LOG ERRORS INTO INSERT_ERRS SEGMENT REJECT LIMIT 100;

14. 遠程導入數據

psql -h 1.1.1.1  -U user_name -d db_name -W -c "copy tb1 from stdin with delimiter '|'" < /home/gpadmin/tb1.txt

15. 導數據指定分隔符(和mysql的select into outfile很像)

psql -d db_name -c "select * from tb1" -o tb1.txt -t -A -F $'\t'

16. 生成受權語句

SELECT 'grant select on '||relname||' to user_name;' from pg_class a,pg_namespace b where relname not like '%prt%' and relkind ='r' and has_table_privilege('user_name',a.oid,'select')='f' and a.relnamespace=b.oid and nspname not in ('pg_catalog','information_schema','gp_toolkit') and nspname not like '%pg_temp%';

 

總結:

無非就是一些SQL命令以及數據字典的使用。熟悉數據字典很是重要。

相關文章
相關標籤/搜索