服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - PostgreSQL - 浅析postgresql 数据库 TimescaleDB 修改分区时间范围

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

2021-03-31 17:57yang_z_1 PostgreSQL

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

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

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

创建超表 create_hypertable()

1.创建普通版表

?
1
2
3
4
5
6
7
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()

?
1
select create_hypertable('超表名', 'collect_time', chunk_time_interval => interval '7 day');

3.插入数据

?
1
2
3
4
5
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 表

?
1
select * from "_timescaledb_catalog"."dimension"

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

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

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

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

二.修改分区时间 set_chunk_time_interval()

1.修改分区时间

?
1
select set_chunk_time_interval('超表名', interval '24 hours');

2.插入数据验证

?
1
2
3
4
5
6
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 表

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

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

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

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

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

原文链接:https://blog.csdn.net/yang_z_1/article/details/112766944

延伸 · 阅读

精彩推荐
  • PostgreSQLPostgreSQL标准建表语句分享

    PostgreSQL标准建表语句分享

    这篇文章主要介绍了PostgreSQL标准建表语句分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    码上得天下7962021-02-27
  • PostgreSQL分布式 PostgreSQL之Citus 架构

    分布式 PostgreSQL之Citus 架构

    节点 Citus 是一种 PostgreSQL 扩展,它允许数据库服务器(称为节点)在“无共享(shared nothing)”架构中相互协调。这些节点形成一个集群,允许 PostgreSQL 保存比单...

    未知802023-05-07
  • PostgreSQLRDS PostgreSQL一键大版本升级技术解密

    RDS PostgreSQL一键大版本升级技术解密

    一、PostgreSQL行业位置 (一)行业位置 在讨论PostgreSQL(下面简称为PG)在整个数据库行业的位置之前,我们先看一下阿里云数据库在全球的数据库行业里的...

    未知1192023-05-07
  • PostgreSQLpostgresql 中的to_char()常用操作

    postgresql 中的to_char()常用操作

    这篇文章主要介绍了postgresql 中的to_char()常用操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    J符离13432021-04-12
  • PostgreSQLPostgresql开启远程访问的步骤全纪录

    Postgresql开启远程访问的步骤全纪录

    postgre一般默认为本地连接,不支持远程访问,所以如果要开启远程访问,需要更改安装文件的配置。下面这篇文章主要给大家介绍了关于Postgresql开启远程...

    我勒个去6812020-04-30
  • PostgreSQLpostgresql 数据库中的数据转换

    postgresql 数据库中的数据转换

    postgres8.3以后,字段数据之间的默认转换取消了。如果需要进行数据变换的话,在postgresql数据库中,我们可以用"::"来进行字段数据的类型转换。...

    postgresql教程网12482021-10-08
  • PostgreSQL深入理解PostgreSQL的MVCC并发处理方式

    深入理解PostgreSQL的MVCC并发处理方式

    这篇文章主要介绍了深入理解PostgreSQL的MVCC并发处理方式,文中同时介绍了MVCC的缺点,需要的朋友可以参考下 ...

    PostgreSQL教程网3622020-04-25
  • PostgreSQLPostgresql查询效率计算初探

    Postgresql查询效率计算初探

    这篇文章主要给大家介绍了关于Postgresql查询效率计算的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Postgresql具有一定的参考学习价...

    轨迹4622020-05-03