PGSQL的TimescaleDB

1、查询数据库的表

SELECT table_name FROM information_schema.tables
WHERE table_schema = '模式名称' and "table_name" like 'data_010521118%'

2、创建超表

先创建表:CREATE TABLE  表名 (time TIMESTAMPTZ NOT NULL, 字段。。。)

通过 time 进行分区将普通表转换为超表:SELECT  create_hypertable('表名','time')

3、移除旧的数据保存策略

SELECT remove_retention_policy('表名', true);

4、新建数据库保留策略(day、weeks、months、years)

SELECT add_retention_policy('表名', INTERVAL '3 weeks');

5、查看表的保留策略

SELECT * FROM timescaledb_information.jobs WHERE hypertable_schema = '模式' AND hypertable_name = '表名';

6、查看超表的块列表

SELECT show_chunks('表名')

7、手动删除块数据

SELECT drop_chunks('模式.表名', INTERVAL '3 months');

8、查看数据库的大小

SELECT pg_size_pretty(pg_database_size('mom')) AS schema_size;

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

9、循环删除超表数据,重新设置表的保存策略('内'用'')

DO $$
DECLARE
    row record;
BEGIN
    FOR row IN SELECT table_name FROM information_schema.tables WHERE table_schema = 'data' AND "table_name" like 'data_0105211161%' LOOP
        EXECUTE format('SELECT drop_chunks( ''%I'' , INTERVAL ''3 weeks'');SELECT remove_retention_policy(''%I'', true);SELECT add_retention_policy(''%I'', INTERVAL ''3 weeks'');', row.table_name, row.table_name, row.table_name);
    END LOOP;
END $$;

10、查看数据库各个模式的大小

SELECT
    schema_name,
    pg_size_pretty(sum(table_size)::bigint) AS schema_size
FROM (
    SELECT
        table_schema AS schema_name,
        pg_total_relation_size(table_schema || '.' || table_name) AS table_size
    FROM
        information_schema.tables
    WHERE
        table_schema NOT IN ('pg_catalog', 'information_schema')
) AS schema_tables
GROUP BY
    schema_name
ORDER BY
    sum(table_size) DESC;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值