greenplum中在master上查看底层所有节点的sql语句
来源:互联网 发布:小刀源码 编辑:程序博客网 时间:2024/06/16 06:50
greenplum是一个分布式数据库,底下有很多的postgresql的数据库,我们有时候需要知道底层节点在干些什么,能否直接在master上有一个视图,或者sql,可以看到底下每个节点的sql,并且可以标识出是哪一个机器,哪一个端口的数据库,下面介绍方法:
3.3跟4.0的架构有所改变,所以方法也不一样。
1.创建v_active_sql视图方便查看sql:
CREATE VIEW v_active_sql AS
SELECT pg_stat_activity.procpid, pg_stat_activity.sess_id, pg_stat_activity.usename, pg_stat_activity.waiting AS w, to_char(pg_stat_activity.query_start, ‘mm-dd hh24:mi:ss’::text) AS query_start, to_char(now() – pg_stat_activity.query_start, ‘hh24:mi’::text) AS exec, pg_stat_activity.current_query
FROM pg_stat_activity
WHERE pg_stat_activity.current_query <> ‘<IDLE>’::text
ORDER BY pg_stat_activity.datname, to_char(pg_stat_activity.query_start, ‘yyyymmdd hh24:mi:ss’::text);
Gp3.3:
CREATE or replace FUNCTION public.hostname(a text)
RETURNS text
AS $$
import socket
return socket.gethostname()
$$ LANGUAGE plpythonu;
查询每个节点的sql:
select hostname(current_query), current_setting(replace(’port’||current_query,current_query,”)),* from gp_dist_random(’v_active_sql’) where current_query not like ‘%IDLE%’;
Gp4.0:
1.创建hostname获取hostname
CREATE or replace FUNCTION public.hostname()
RETURNS text
AS $$
import socket
return socket.gethostname()
$$ LANGUAGE plpythonu;
2.创建v_sql视图:
create VIEW v_sql AS select hostname() as hostname ,current_setting(’port’) as port,* from v_active_sql;
3.创建get_sql函数:
CREATE OR REPLACE FUNCTION get_sql(a text)
returns setof v_sql
security definer
as
$$
return plpy.execute(”SELECT hostname() as hostname ,current_setting(’port’) as port,pg_stat_activity.procpid, pg_stat_activity.sess_id, pg_stat_activity.usename, pg_stat_activity.waiting AS w, to_char(pg_stat_activity.query_start, ‘mm-dd hh24:mi:ss’::text) AS query_start, to_char(now() – pg_stat_activity.query_start, ‘hh24:mi’::text) AS exec, pg_stat_activity.current_query/
FROM pg_stat_activity/
WHERE pg_stat_activity.current_query <> ‘<IDLE>’::text/
ORDER BY pg_stat_activity.datname, to_char(pg_stat_activity.query_start, ‘yyyymmdd hh24:mi:ss’::text)”);
$$ language plpythonu;
4.
CREATE VIEW all_seg_sql AS select (t.get_sql).* from (select get_sql(gpname::text) from gp_dist_random(’gp_id’))t;
最后的效果大概如下:
aligputf8=# select * from all_seg_sql;
hostname | port | procpid | sess_id | usename | w | query_start | exec | current_query
———-+——-+———+———+———+—+—————-+——-+—————————-
hadoop4 | 30000 | 14101 | 84 | gpadmin | f | 03-31 18:44:16 | 00:00 | select * from all_seg_sql;
hadoop4 | 30001 | 14103 | 84 | gpadmin | f | 03-31 18:44:16 | 00:00 | select * from all_seg_sql;
hadoop5 | 30000 | 10822 | 84 | gpadmin | f | 03-31 18:44:16 | 00:00 | select * from all_seg_sql;
hadoop5 | 30001 | 10824 | 84 | gpadmin | f | 03-31 18:44:16 | 00:00 | select * from all_seg_sql;
hadoop6 | 30000 | 16492 | 84 | gpadmin | f | 03-31 18:44:16 | 00:00 | select * from all_seg_sql;
hadoop6 | 30001 | 16494 | 84 | gpadmin | f | 03-31 18:44:16 | 00:00 | select * from all_seg_sql;
(6 rows)
- greenplum中在master上查看底层所有节点的sql语句
- greenplum gp 数据库锁 查看所有sql
- 查看SQL语句在SQL Server上的执行时间
- 查看SQL语句在SQL Server上的执行时间
- Greenplum通过gp_dist_random('gp_id') 在所有节点调用某个函数
- 【SQL精彩语句】SQL SERVER 2000中查询指定节点及其所有子节点的函数(表格形式显示)
- 【SQL精彩语句】SQL SERVER 2005中查询指定节点及其所有子节点的方法(表格形式显示)
- 在mysql binlog中查看原生的SQL语句
- 查看设备树platform总线上的所有节点
- Greenplum常用sql语句
- Greenplum SQL语句开发
- 查看greenplum库各个节点数据的分布情况
- 一个查看MSSQL数据库中所有表信息的SQL语句
- 一个查看MSSQL数据库中所有表信息的SQL语句
- 一个查看MSSQL数据库中所有表信息的SQL语句
- 一个查看MSSQL数据库中所有表信息的SQL语句
- 查看用户所拥有的所有权限的sql语句
- 在论坛中出现的比较难的sql问题:21(递归问题 检索某个节点下所有叶子节点)
- 如何学习Android
- java P3P header解决iframe跨域访问cookie
- GDI+ Graphics类
- Linux CentOS5.5配置ip地址,从底层配置
- getopt的用法
- greenplum中在master上查看底层所有节点的sql语句
- 利用Nginx搭建高效Moodle学习平台(并不认为是moodle 2.0 好的配置文章,注意php5.3编译)
- linux shell 将当前文件地址作为默认路径写入环境变量
- jquery 遍历json数组
- 最近系统整理一下 linux 各配置文件备份、编译命令备份、源文件路径、编译命名路径等记录
- 手机中文实名怎么样?
- 用正确的方法来写出质量好的软件的75条体会
- 启动ArcSDE服务报“Unable to start ArcSDE, Please check for zombie processes”的解决办法
- 链接中的href与onclick执行js的区别