Greenplum使用简明手册
GP服务启停
su - gpadmin
gpstart #正常启动
gpstop #正常关闭
gpstop -M fast #快速关闭
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命令行执行\q
参数查询
psql -c 'SHOW ALL;' -d gpdb
gpconfig --show max_connections
创建数据库 createdb -h localhost -p 5432 dhdw
创建GP文件系统
# 文件系统名
gpfsdw
# 子节点,视segment数创建目录
mkdir -p /gpfsdw/seg1
mkdir -p /gpfsdw/seg2
chown -R gpadmin:gpadmin /gpfsdw
# 主节点
mkdir -p /gpfsdw/master
chown -R gpadmin:gpadmin /gpfsdw
gpfilespace -o gpfilespace_config
gpfilespace -c gpfilespace_config
创建GP表空间
psql gpdb
create tablespace TBS_DW_DATA filespace gpfsdw;
SET default_tablespace = TBS_DW_DATA;
删除GP数据库 gpdeletesystem -d /gpmaster/gpseg-1 -f
查看segment配置 select * from gp_segment_configuration;
文件系统 select * from pg_filespace_entry;
磁盘、数据库空间
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;
表数据分布 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的操作统计
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;
队列 SELECT * FROM pg_resqueue_status
查看指定数据库 select pg_size_pretty(pg_database_size('<database_name>'));
所有数据库 select datname,pg_size_pretty(pg_database_size(<database_name>)) from pg_database;
查看数据库表清单(包括临时表) pg_tables
主表与分区表 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)数据到Greenplum数据库
gpfdist外部表
# 启动服务
gpfdist -d /share/txt -p 8081 –l /share/txt/gpfdist.log &
# 创建外部表,分隔符为’/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;
# 创建普通表
create table test select * from TD_APP_LOG_BUYER;
# 索引
# CREATE INDEX idx_test ON test USING bitmap (ip);
# 查询数据
select ip , count(*) from test group by ip order by count(*);
gpload
# 创建控制文件
# 加载数据
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数据库卸载(UNLOAD)数据
gpfdist外部表
# 创建可写外部表
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);
# 写权限
GRANT INSERT ON writable_ext_table TO <name>;
# 写数据
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';
执行sql文件
psql gpdbname –f yoursqlfile.sql
或者psql登陆后执行
\i yoursqlfile.sql
如何杀掉greenplum、postgresql的会话进程
在linux命令行执行kill -s SIGTERM <procid>杀掉该会话的进程
用函数杀sql
对于查询SQL
select pg_cancel_backend(procpid);
其他SQL
select pg_terminate_backend(procpid);
调整Greenplum的SQL查询计划
在oracle中使用hint可以调整SQL的执行计划,在postgresql可以使用如下的方法进行调整
使用set<option> to off/on;调整查询计划,参数如下:
enable_seqscan 是否走全表扫描
enable_hashjoin 是否允许走
hash 连接
enable_nestloop 是否允许走
nestloo 连接
enable_mergejoin 是否允许走合并连接
enable_tidscan 是否允许走tid 扫描(类似oracle中的按rowid访问)
enable_bitmapscan 是否允许走
bitmap 扫描
enable_hashagg 是否允许走
hash 聚集(也就是做group by时)
enable_indexscan 是否允许走索引
enable_sort 是否允许走排序
constraint_exclusion 是否允许走分区
Greenplum使用简明手册的更多相关文章
- Python 绝对简明手册
Python 绝对简明手册 help(函数名)来获取相关信息 另外,自带的文档和google也是不可少的 2. 基本语法2.1. if / elif / else x=int(raw_input(&q ...
- tomcat和iis共用80端口的简明手册
对于使用tomcat-connector实现iis与tomcat实现80端口共用的问题,网上的信息异常混乱,很多地方误人子弟,浪费时间.本文给出简明手册式的做法: 首先列出我们需要做的事项: 1. ...
- PostgreSQL 一主多从(多副本,强同步)简明手册 - 配置、压测、监控、切换、防脑裂、修复、0丢失 - 珍藏级
参考来源: https://github.com/digoal/blog/blob/master/201803/20180326_01.md#postgresql-一主多从多副本强同步简明手册---配 ...
- Git简明手册
文/AbnerKang(简书作者)原 文链接:http://www.jianshu.com/p/d7a7ba4f2341?utm_campaign=maleskine& utm_content ...
- Git 简明手册
0,Git 是什么 Git 是一个VCS(Version Control System),即版本控制系统. 版本控制系统从字面意思来看,它的用途就是管理/控制文件的版本.使用它,可以方便的知道一个文件 ...
- gdb简明手册
如果是在windows环境下,首先要添加环境变量: 新建一个环境变量MinGW_PATH,值为MinGW的运行目录: 然后在系统的Path变量后面加上一句:(每两个变量之间用 ; 分开) ------ ...
- python简明手册学习
1.行末单独一个反斜杠表示字符串在下一行继续,而不是开始一个新的行. >>> "This is the first sentence.\ ... This is the s ...
- Subversion简明手册--使用hook svn
使用 hook ,为了方便管理员 控制提交的过程 Subversion 提供了 hook 机制.当特定的 事件发生时,相应的 hook 会被调用, hook 其实就相当于特定 事件的处理函数.每个 h ...
- 使用MaxCompute访问TableStore(OTS) 简明手册
摘要: 大数据计算服务 MaxCompute 能够提供强大的分析能力,而分布式 NoSQL 数据库表格存储在行级别上的实时更新和可覆盖性写入等特性,相对于 MaxCompute 内置表 append- ...
随机推荐
- [POI2007]MEG-Megalopolis (树状数组,Dfs序)
题目描述 Solution 这道题考试的时候竟然没有仔细想,结果只拿了暴力分... 其实就是一个 DFS序+树状数组. 我们先把用 DFS 把它变成一个序列,同时记录它们的 \(siz\). 那么我们 ...
- testng依赖
Testng提供了两种依赖实现 1.强制依赖:某个测试用例之前需要执行的依赖链中如果有一个失败,那么接下来所有的测试都不会被执行 2.顺序依赖(软依赖):顺序依赖的用处更多是用来检测一个测试链是否按照 ...
- tyvj 2020 rainbow 的信号
期望 被精度坑惨的我 注意:能开 long long 尽量开, 先除后乘, int 转 double 的时候 先转换在做运算 本题与位运算有关,位与位之间互不影响,所以我们可以分开考虑 #includ ...
- 大规模SOA系统中的分布事务思考
首先是不建议采用XA两阶段提交方式去处理分布式事务,要知道要能够支持XA分布式事务,必须是要实现XA规范才可以,而Service本身是无状态的,如果这样去做了等于是把Service内部的东西暴露了出去 ...
- POJ1167 The Buses
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 6234 Accepted: 1698 Description A man ...
- Linux 之 LNMP服务器搭建-前期准备
LNMP服务器搭建-前期准备 参考教程:[千峰教育] 系统环境: 系统:centos 6.8. 软件安装位置: (1)软件源代码包存放位置:/lnmp/src 命令:mkdir -p /lnmp/sr ...
- html5(历史管理)
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/h ...
- AC日记——Super Mario hdu 4417
Super Mario Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- JS-禁止移动端长按页面后弹出“在浏览器打开”这个菜单
阻止浏览器的touchstart事件 document.addEventListener('touchstart', function(e) { e.preventDefault(); ...
- Codeforces Round #482 (Div. 2)
D. Kuro and GCD and XOR and SUM 字典树真好玩... 牛老板提供的思路:建1e5个 字典树,每个数插入到以它的因子为根所在的字典树中,这样就实现了整除,当然gcd(k, ...