浅析postgresql 数据库 TimescaleDB 修改分区时间范围

 更新时间:2021年01月20日 10:48:21   作者:yang_z_1  
这篇文章主要介绍了浅析postgresql 数据库 TimescaleDB 修改分区时间范围,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

今天遇到一个问题 之前用TimescaleDB创建的超表 是已7天为单位的 由于7天的数据量过大 影响查询效率 需要把7天的分区改为一天一分区

在这里插入图片描述

创建超表 create_hypertable()

1.创建普通版表

CREATE TABLE "超表名" (
 "collect_time" timestamp(6) NOT NULL,
 "code" varchar(36) COLLATE "pg_catalog"."default" NOT NULL,
 "value" numeric(14,4) NOT NULL,
 "create_time" timestamp(6) NOT NULL
)
;

2.改为超表 create_hypertable()

SELECT create_hypertable('超表名', 'collect_time', chunk_time_interval => INTERVAL '7 day');

3.插入数据

INSERT INTO 超表名("collect_time", "code", "value", "create_time") VALUES ('2020-10-15 16:35:00', '22255220522', '23.4672', '2020-10-14 16:35:26.659');
INSERT INTO 超表名("collect_time", "code", "value", "create_time") VALUES ('2020-10-16 16:35:00', '26622569666', '0.1085', '2020-10-14 16:35:27.546');
INSERT INTO 超表名("collect_time", "code", "value", "create_time") VALUES ('2020-10-13 16:35:00', '525941155555', '25.0549', '2020-10-14 16:35:28.473');
INSERT INTO 超表名("collect_time", "code", "value", "create_time") VALUES ('2020-10-14 16:35:00', '744445411114', '0.0000', '2020-10-14 16:35:24.01');
INSERT INTO 超表名("collect_time", "code", "value", "create_time") VALUES ('2020-10-12 16:35:00', '774484457444', '0.0000', '2020-10-14 16:35:23.032');

查看分区,你会发现这些数据在2个分区内

修改分区 set_chunk_time_interval()

一.查看分区情况

1.查看_timescaledb_catalog.dimension 表

SELECT * FROM "_timescaledb_catalog"."dimension"

在这里插入图片描述

interval_length上显示 604800000000 (TIMESTAMP类型)意思是一周
2.查看分区块状态
查看 dimension_slice 表

在这里插入图片描述

转换时间戳
1602720000000000 2020-10-15 08:00:00
1603324800000000 2020-10-22 08:00:00
这里可以看到分区是7天的

二.修改分区时间 set_chunk_time_interval()

1.修改分区时间

SELECT set_chunk_time_interval('超表名', interval '24 hours');

2.插入数据验证

INSERT INTO 超表名("collect_time", "code", "value", "create_time") VALUES ('2021-1-14 16:35:00', '375222D001', '27.7932', '2020-10-14 16:35:15.011');
INSERT INTO 超表名("collect_time", "code", "value", "create_time") VALUES ('2021-1-15 16:35:00', '3715044111', '0.0000', '2020-10-14 16:35:20.389');
INSERT INTO 超表名("collect_time", "code", "value", "create_time") VALUES ('2021-1-16 16:35:00', '202Q0019QT001', '0.3663', '2020-10-14 16:35:19.087');
INSERT INTO 超表名("collect_time", "code", "value", "create_time") VALUES ('2021-1-17 16:35:00', '3702000284441', '22.2946', '2020-10-14 16:35:15.035');
INSERT INTO 超表名("collect_time", "code", "value", "create_time") VALUES ('2021-1-18 16:35:00', '37075225555501', '0.3022', '2020-10-14 16:35:24.041');
INSERT INTO 超表名("collect_time", "code", "value", "create_time") VALUES ('2021-1-19 16:35:00', '25555222206001', '0.0000', '2020-10-14 16:35:23.956');

三.查看 修改结果

查看_timescaledb_catalog.dimension 表

在这里插入图片描述

变成 86400000000 了
2.查看分区
分区也多了

在这里插入图片描述

还有第2种(未测试)
我想能不能直接"_timescaledb_catalog".“dimension” 表的 interval_length 字段直接 改为86400000000

到此这篇关于postgresql 数据库 TimescaleDB 修改分区时间(范围)的文章就介绍到这了,更多相关postgresql 数据库 TimescaleDB 分区时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PostgreSQL 数组类型操作使用及特点详解

    PostgreSQL 数组类型操作使用及特点详解

    这篇文章主要为大家介绍了PostgreSQL 数组类型操作使用及特点详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • 使用navicat连接postgresql报错问题图文解决办法

    使用navicat连接postgresql报错问题图文解决办法

    我们在日常开发中有时候需要用navicate连接postgresql数据库,有时候会连接不上数据库,下面这篇文章主要给大家介绍了关于使用navicat连接postgresql报错问题图文解决办法,需要的朋友可以参考下
    2023-11-11
  • Postgres bytea类型 转换及查看操作

    Postgres bytea类型 转换及查看操作

    这篇文章主要介绍了Postgres bytea类型 转换及查看操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • DBeaver中PostgreSQL数据库显示不全的解决方法

    DBeaver中PostgreSQL数据库显示不全的解决方法

    最近,在DBeaver中连接了本地的PostgreSQL数据库,但是连接后打开这个数据库时发现,数据库显示不全,所以本文给大家介绍了DBeaver中PostgreSQL数据库显示不全的解决方法,需要的朋友可以参考下
    2024-11-11
  • Postgresql源码分析returns setof函数oracle管道pipelined

    Postgresql源码分析returns setof函数oracle管道pipelined

    这篇文章主要为大家介绍了Postgresql源码分析returns setof函数oracle管道pipelined,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • 自定义函数实现单词排序并运用于PostgreSQL(实现代码)

    自定义函数实现单词排序并运用于PostgreSQL(实现代码)

    这篇文章主要介绍了自定义函数实现单词排序并运用于PostgreSQL,本文给大家分享实现代码,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • PostgreSQL教程(十八):客户端命令(2)

    PostgreSQL教程(十八):客户端命令(2)

    这篇文章主要介绍了PostgreSQL教程(十八):客户端命令(2),本文讲解了pg_dump、pg_restore、psql、内置命令应用示例等内容,需要的朋友可以参考下
    2015-05-05
  • PostgreSQL数据库的基本查询操作

    PostgreSQL数据库的基本查询操作

    这篇文章采用详细的代码示例为大家介绍了PostgreSQL数据库的基本查询操作使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • PostgreSQL中的日期/时间函数详解

    PostgreSQL中的日期/时间函数详解

    这篇文章主要给大家介绍了关于PostgreSQL中日期/时间函数的相关资料,文章通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • Postgresql之时间戳long,TimeStamp,Date,String互转方式

    Postgresql之时间戳long,TimeStamp,Date,String互转方式

    这篇文章主要介绍了Postgresql中的时间戳long,TimeStamp,Date,String互转方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03

最新评论