日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Greenplum使用简明手册

發(fā)布時(shí)間:2023/12/9 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Greenplum使用简明手册 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

GP服務(wù)啟停

su - gpadmin

gpstart #正常啟動(dòng)

gpstop #正常關(guān)閉

gpstop -M fast #快速關(guān)閉

gpstop –r #重啟

gpstop –u #重新加載配置文件

登陸與退出Greenplum

#正常登陸

psql gpdb

psql -d gpdb -h gphostm -p 5432 -U gpadmin

#使用utility方式

PGOPTIONS="-c gp_session_role=utility" psql -h?-d dbname hostname -p port

#退出

在psql命令行執(zhí)行\(zhòng)q

參數(shù)查詢

psql -c 'SHOW ALL;' -d gpdb

gpconfig --show max_connections

創(chuàng)建數(shù)據(jù)庫(kù) createdb -h localhost -p 5432 dhdw

創(chuàng)建GP文件系統(tǒng)

# 文件系統(tǒng)名

gpfsdw

# 子節(jié)點(diǎn),視segment數(shù)創(chuàng)建目錄

mkdir -p /gpfsdw/seg1

mkdir -p /gpfsdw/seg2

chown -R gpadmin:gpadmin /gpfsdw

# 主節(jié)點(diǎn)

mkdir -p /gpfsdw/master

chown -R gpadmin:gpadmin /gpfsdw

gpfilespace -o gpfilespace_config

gpfilespace -c gpfilespace_config

創(chuàng)建GP表空間

psql gpdb

create tablespace TBS_DW_DATA filespace gpfsdw;

SET default_tablespace = TBS_DW_DATA;

刪除GP數(shù)據(jù)庫(kù) gpdeletesystem -d /gpmaster/gpseg-1 -f

查看segment配置 select * from gp_segment_configuration;

文件系統(tǒng) select * from pg_filespace_entry;

磁盤、數(shù)據(jù)庫(kù)空間

SELECT * FROM gp_toolkit.gp_disk_free ORDER BY dfsegment;

SELECT * FROM gp_toolkit.gp_size_of_database ORDER BY sodddatname;

日志

SELECT * FROM gp_toolkit.__gp_log_master_ext;

SELECT * FROM gp_toolkit.__gp_log_segment_ext;

表描述 /d+ <tablename>

表分析 VACUUM ANALYZE tablename;

表數(shù)據(jù)分布 SELECT gp_segment_id, count(*) FROM <table_name> GROUP BY gp_segment_id;

表占用空間

SELECT relname as name, sotdsize/1024/1024 as size_MB, sotdtoastsize as toast, sotdadditionalsize as other

???FROM gp_toolkit.gp_size_of_table_disk as sotd, pg_class

?WHERE sotd.sotdoid = pg_class.oid ORDER BY relname;

索引占用空間

SELECT soisize/1024/1024 as size_MB, relname as indexname

?FROM pg_class, gp_toolkit.gp_size_of_index

?WHERE pg_class.oid = gp_size_of_index.soioid

??AND pg_class.relkind='i';

OBJECT的操作統(tǒng)計(jì)

SELECT schemaname as schema, objname as table, usename as role, actionname as action, subtype as type, statime as time

?FROM pg_stat_operations

?WHERE objname = '<name>';

SELECT locktype, database, c.relname, l.relation, l.transactionid, l.transaction, l.pid, l.mode, l.granted, a.current_query

?FROM pg_locks l, pg_class c, pg_stat_activity a

?WHERE l.relation=c.oid

??AND l.pid=a.procpid

?ORDER BY c.relname;

隊(duì)列 SELECT * FROM pg_resqueue_status

查看指定數(shù)據(jù)庫(kù) select?pg_size_pretty(pg_database_size('<database_name>'));

所有數(shù)據(jù)庫(kù) select?datname,pg_size_pretty(pg_database_size(<database_name>))?from?pg_database;?

查看數(shù)據(jù)庫(kù)表清單(包括臨時(shí)表) pg_tables
主表與分區(qū)表 pg_partitions
字段清單 information_schema.columns
視圖 pg_views
字典 schema : information_schema

GP中查詢表和視圖清單,視圖的字段及其類型

查詢schema_name.view_name的字段及其類型:
??? select a.attname, pg_catalog.format_type(a.atttypid, a.atttypmod) as type,a.attnotnull
??? from pg_catalog.pg_attribute a,pg_catalog.pg_class c, pg_catalog.pg_namespace n
??? where? a.attrelid=c.oid
??? and c.relname='view_name'
??? and a.attnum>0 AND NOT a.attisdropped
??? and n.oid = c.relnamespace
??? and n.nspname='schema_name'
??? order by a.attnum
查詢指定schema下view的清單:
??? select c.relname
??? from pg_catalog.pg_class c, pg_catalog.pg_namespace n
??? where n.oid = c.relnamespace
??? and n.nspname='schema_name'
??? and? c.relkind='v'
查詢指定schema下所有table的清單:
??? select c.relname
??? from pg_catalog.pg_class c, pg_catalog.pg_namespace n
??? where n.oid = c.relnamespace
??? and n.nspname='schema_name'
??? and? c.relkind='r'
查詢指定schema下所有外部表的清單:
??? select c.relname
??? from pg_catalog.pg_class c, pg_catalog.pg_namespace n
??? where n.oid = c.relnamespace
??? and n.nspname='schema_name'
??? and? c.relkind='r'? and relstorage='x'
查詢指定schema下所有普通表的清單:
??? select c.relname
??? from pg_catalog.pg_class c, pg_catalog.pg_namespace n
??? where n.oid = c.relnamespace
??? and n.nspname='schema_name'
??? and? c.relkind='r'? and relstorage in ('h','a');
注意,relstorage字段取值“x”表示外部表,“h”表示heap表,“a”表示append-only表,“v”表示virtual表。
查詢指定schema_name下table_owner的表:
??? select * from
??? (
??? select c.relname, pg_catalog.pg_get_userbyid(c.relowner) as table_owner
??? from pg_catalog.pg_class c, pg_catalog.pg_namespace n
??? where n.oid = c.relnamespace
??? and n.nspname='schema_name'
??? ) t where t.table_owner = 'table_owner';
查詢指定指定table_owner的所有普通表:
??????? select * from
??????? (
??????? select n.nspname, c.relname, pg_catalog.pg_get_userbyid(c.relowner) as table_owner
??????? from pg_catalog.pg_class c, pg_catalog.pg_namespace n
??????? where n.oid = c.relnamespace and? c.relkind='r' and relstorage in ('h', 'a')
??????? ) t where t.table_owner = 'table_owner';

?

加載(LOAD)數(shù)據(jù)到Greenplum數(shù)據(jù)庫(kù)

gpfdist外部表

# 啟動(dòng)服務(wù)

gpfdist -d /share/txt -p 8081 –l /share/txt/gpfdist.log &

# 創(chuàng)建外部表,分隔符為’/t’

drop EXTERNAL TABLE TD_APP_LOG_BUYER;

CREATE EXTERNAL TABLE TD_APP_LOG_BUYER (

?IP???????? text,

?ACCESSTIME text,

?REQMETHOD? text,

?URL??????? text,

?STATUSCODE int,

?REF??????? text,

?name?????? text,

?VID??????? text)

LOCATION ('gpfdist://gphostm:8081/xxx.txt')

FORMAT 'TEXT' (DELIMITER E'/t'

FILL MISSING FIELDS) SEGMENT REJECT LIMIT 1 percent;

# 創(chuàng)建普通表

create table test select * from TD_APP_LOG_BUYER;

# 索引

# CREATE INDEX idx_test ON test USING bitmap (ip);

# 查詢數(shù)據(jù)

select ip , count(*) from test group by ip order by count(*);

gpload

# 創(chuàng)建控制文件

# 加載數(shù)據(jù)

gpload -f my_load.yml

copy

COPY country FROM '/data/gpdb/country_data'

?WITH DELIMITER '|' LOG ERRORS INTO err_country

?SEGMENT REJECT LIMIT 10 ROWS;

從Greenplum數(shù)據(jù)庫(kù)卸載(UNLOAD)數(shù)據(jù)

gpfdist外部表

# 創(chuàng)建可寫外部表

CREATE WRITABLE EXTERNAL TABLE unload_expenses

( LIKE expenses )

LOCATION ('gpfdist://etlhost-1:8081/expenses1.out',

'gpfdist://etlhost-2:8081/expenses2.out')

FORMAT 'TEXT' (DELIMITER ',')

DISTRIBUTED BY (exp_id);

# 寫權(quán)限

GRANT INSERT ON writable_ext_table TO <name>;

# 寫數(shù)據(jù)

INSERT INTO writable_ext_table SELECT * FROM regular_table;

copy

COPY (SELECT * FROM country WHERE country_name LIKE 'A%') TO '/home/gpadmin/a_list_countries.out';

執(zhí)行sql文件

psql gpdbname –f yoursqlfile.sql

或者psql登陸后執(zhí)行

\i yoursqlfile.sql

如何殺掉greenplum、postgresql的會(huì)話進(jìn)程

在linux命令行執(zhí)行kill -s SIGTERM <procid>殺掉該會(huì)話的進(jìn)程
用函數(shù)殺sql
對(duì)于查詢SQL
select pg_cancel_backend(procpid);
其他SQL
select pg_terminate_backend(procpid);

調(diào)整Greenplum的SQL查詢計(jì)劃

在oracle中使用hint可以調(diào)整SQL的執(zhí)行計(jì)劃,在postgresql可以使用如下的方法進(jìn)行調(diào)整

使用set<option> to off/on;調(diào)整查詢計(jì)劃,參數(shù)如下:
enable_seqscan 是否走全表掃描
enable_hashjoin 是否允許走
hash 連接
enable_nestloop 是否允許走
nestloo 連接
enable_mergejoin 是否允許走合并連接
enable_tidscan 是否允許走tid 掃描(類似oracle中的按rowid訪問)
enable_bitmapscan 是否允許走
bitmap 掃描
enable_hashagg 是否允許走
hash 聚集(也就是做group by時(shí))
enable_indexscan 是否允許走索引
enable_sort 是否允許走排序
constraint_exclusion 是否允許走分區(qū)

轉(zhuǎn)載于:https://www.cnblogs.com/zzjhn/p/5912383.html

總結(jié)

以上是生活随笔為你收集整理的Greenplum使用简明手册的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。