浅析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天的
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 分区时间内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 浅析postgresql 数据库 TimescaleDB 修改分区时间范围
相关文章
- POSTGRESQL 15 从等待中被驱逐的JSON新功能,只能祈祷 PostgreSQL 16
- Postgresql数据库character varying和character的区别说明
- postgresql数据库基础 之 实现时间范围查询
- 在Ubuntu中安装Postgresql数据库的步骤详解
- postgresql—-时间类型详解数据库
- postgresql数据库创建、修改、删除详解数据库
- postgresql:字符串求和(拼接)详解数据库
- postgresql – 服务配置详解数据库
- PostgreSQL登录:体验自由融洽的数据库访问(postgresql登陆)
- PostgreSQL新建数据库:快速搭建实现数据存储 (postgresql新建数据库)
- PostgreSQL:未来数据库发展的光明前景(postgresql前景)
- 快速安全!PostgreSQL下载,数据库管理必备!(postgresql下载)
- PostgreSQL:轻松入门的开源数据库(postgresql介绍)
- PostgreSQL的弊端:不可忽视的缺陷(postgresql缺点)
- 利用 PostgreSQL 脚本加速数据库操作!(postgresql脚本)
- 如何顺利升级PostgreSQL数据库?(升级postgresql)
- Postgresql数据库实现事务回滚技术(postgresql回滚)
- 优化提升数据库性能:PostgreSQL优化指南(postgresql性能)