/*Dsiplay the size of each schema in Redshift*/
SELECT
schemaname,
SUM(megabytes) as total_mb
FROM
admin.v_space_used_per_tbl
GROUP BY
schemaname;
Tag: redshift
List Redshift tables, views and their owners
SELECT n.nspname AS schema_name
, pg_get_userbyid(c.relowner) AS table_owner
, c.relname AS table_name
, CASE WHEN c.relkind = 'v' THEN 'view' ELSE 'table' END
AS table_type
, d.description AS table_description
FROM pg_class As c
LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
LEFT JOIN pg_tablespace t ON t.oid = c.reltablespace
LEFT JOIN pg_description As d
ON (d.objoid = c.oid AND d.objsubid = 0)
WHERE c.relkind IN('r', 'v')
ORDER BY n.nspname, c.relname ;
Get table creation date in Redshift
SELECT
TRIM(nspname) AS schema_name,
TRIM(relname) AS table_name,
relcreationtime AS creation_time
FROM pg_class_info
LEFT JOIN pg_namespace ON pg_class_info.relnamespace = pg_namespace.oid
WHERE reltype != 0
AND TRIM(nspname) = 'schemanamehere'
and TRIM(relname) = 'tablenamehere';
Find long running queries in Redshift
/*Find long running queries on redshift*/
SELECT pid, trim(user_name), starttime, substring(query,1,20), duration, db_name, status,query
FROM stv_recents
WHERE status='Running'
order by duration desc;
Redshift – Script to generate statements to recreate users and groups
--Script to generate statements to re-create users in redshift
select 'create user '+ usename +' password ''Hidden1!'' ;' from pg_user
order by usename asc;
--Script to generate statements to re-create groups
select 'create group '+ groname +';' from pg_group
order by groname asc;
--Script to generate statements to add users to various groups
SELECT 'alter group '+ groname + ' add user ' + usename + ';'
FROM "admin".v_get_users_in_group
order by groname , usename;