timescale学习记录

关于pgsql大量数据分表和数据保留策略


前言

基于postgresql的开源时序数据库,支持原生sql,对于数据量很大的表可以进行分表操作,在此基础上设置时间保留策略,能让过期数据自动删除。

一、pandas是什么?

TimescaleDB是一款针对快速获取和复杂查询而优化的开源时间序列数据库。

二、使用步骤

1.下载安装插件

下载安装操作


2.具体使用

启用插件:

CREATE EXTENSION IF NOT EXISTS timescaledb;

创建超级表:

create_hypertable()

SELECT create_hypertable('conditions', 'time');

设置块聚合时间:

chunk_time_interval()

SELECT set_chunk_time_interval('conditions', INTERVAL '24 hours');

//  修改分块的触发条件

SELECT set_chunk_time_interval('conditions', 1000);

压缩策略(暂时不需要使用):

设置压缩分组

ALTER TABLE example SET (timescaledb.compress,timescaledb.compress_segmentby = 'device_id'
);

超过7天进行压缩处理

 SELECT add_compression_policy('example', INTERVAL '7 days');

数据保留策略:

保留24H数据

SELECT add_retention_policy('conditions', INTERVAL '24 hours');//清除数据保留策略
SELECT remove_retention_policy('conditions');// 查看计划作业
SELECT * FROM timescaledb_information.job_stats;

TimesacleDB设置

// 查看超表
select show_chunks('tablename');

SELECT drop_chunks('tablename', older_than =>id); 删除当前id之前的块

数据保留策略两种方法

方法一
步骤一:创建超表(分区字段time字段是时间格式 类型(TIMESTAMP, TIMESTAMPTZ,DATE))
SELECT create_hypertable('tablename', 'time',chunk_time_interval => 5000000);
注 :①  按时间分区,时间字段要设为主键(对于时间不重复的情况下)②  chunk_time_interval => 5000000(分区时间段,单位为毫秒)
步骤二: 创建数据保留策略(默认一天执行一次该策略)
SELECT add_retention_policy('tablename', INTERVAL '1 minutes');
该语句表示只保留1分钟的数据
方法二:
步骤一:创建超表(分区字段id是Integer 类型(SMALLINT, INT, BIGINT))
SELECT create_hypertable('tablename', 'id',chunk_time_interval => 5000000,if_not_exists => TRUE);
注 :①  id类型分区,字段要设为主键②  chunk_time_interval => 5000000(分区字段,表示按多少数量分区,表示500万数据一个分区)
步骤二: 创建数据保留策略,按时间保留(默认一天执行一次该策略)
SELECT add_retention_policy('tablename',BIGINT'60000');
必须运行如下语句:(记录当前插入数据的unix(秒))
CREATE OR REPLACE FUNCTION unix_now() returns INTEGER LANGUAGE SQL STABLE as $$ SELECT extract(epoch from now())::INTEGER $$;SELECT set_integer_now_func('tablename', 'unix_now');
其中 INERGER 要和id字段的类型相同
若要重建策略,先删除原来的策略
SELECT remove_retention_policy('cigarette_single');
查看策略任务详细信息
select * from timescaledb_information.jobs
查看策略任务执行情况
SELECT * FROM timescaledb_information.job_stats
修改策略执行时间
SELECT alter_job(1015, schedule_interval => INTERVAL '6 minutes');
注:1015是策略任务信息中的 job_id,schedule_interval 表示任务执行周期
其他:开启dbug调试,并查看任务运行情况
SET client_min_messages TO DEBUG1;
CALL run_job(1015);

删除块(整数型字段)

SELECT drop_chunks('tablename',older_than =>4184002807); 删除id小于4184002807的块


pg数据库插件timescale时序库使用记录相关推荐

  1. SQL 审核:基于PG数据库插件hook的SQL规范审核工具

    关注"数据和云",精彩不容错过 内容来源:2017 年 10 月 21 日,平安科技数据库架构师陈刚在"PostgreSQL 2017中国技术大会"进行< ...

  2. postgresql数据库迁移timescale插件问题处理

    postgresql数据库迁移timescale插件问题处理 问题说明 使用pg_dump进行数据库迁移后,开发人员表示在使用timescale的表时报错: ERROR: invalid INSERT ...

  3. 安装 部署 postgresql数据库 搭建timescaledb数据库 (时序库)

    安装 部署 postgresql数据库 搭建timescaledb数据库 (时序库) timescaledb 搭建 文章目录 安装 部署 postgresql数据库 搭建timescaledb数据库 ...

  4. 如何看pg数据库版本号_pg版本是什么-和pg版本相关的问题-阿里云开发者社区

    关于 pg版本的搜索结果 问题 DMS for PG 的版本 还停留在 1.7.0,发布日期是 2018-1-10,一年多了没有发布新版本了,DMS for PG 有没有更新计划? DMS for P ...

  5. 【自建分布式数据库详细指南】(四)设计:CITUS分布式数据仓库OLAP/OLTP的架构选择及PG数据库优化方法策略

    关于数据库的整体设计,很少有书籍专门试讲,因为这需要博大精深的理论水平以及阅历丰富的工作经验,但往往这两者不可兼得,在设计数据库时需要考虑多方面的因素,如需求,数据体量,数据库架构,硬件环境,成本.这 ...

  6. 时序数据库分析 - TimescaleDB时序数据库介绍

    背景 随着物联网的发展,时序数据库的需求越来越多,比如水文监控.工厂的设备监控.国家安全相关的数据监控.通讯监控.金融行业指标数据.传感器数据等. 在互联网行业中,也有着非常多的时序数据,例如用户访问 ...

  7. DTS 及其在PG 数据库生态中的应用

    目录 一.PostgreSQL 数据传输通道关键技术 (一)什么是数据传输通道? (二)PostgreSQL 内置数据类型 (三)PostgreSQL 分区表 (四)PostgreSQL 增量数据获取 ...

  8. 如何看pg数据库版本号_查看pg数据库版本

    PostgreSQL 基本命令 链接:http://blog.itpub.net/28602568/viewspace-1841163/ 标题:PostgreSQL 基本命令 作者:lōττéry©版 ...

  9. mysql分库一个库和多个库_数据库分库后不同库之间的关联

    数据库分库后不同库之间的关联 一.所有库在同一节点上 当业务垂直拆分出很多业务库的时候,如果都部署在同一个源上(同一个机器节点上),那么这种情况是最好办的,直接库名+表名 join就可以. 二.不在一 ...

最新文章

  1. 谷歌丰田联合成果ALBERT了解一下:新轻量版BERT,参数小18倍,性能依旧SOTA
  2. Linux环境——MySQL安装及配置(8.0版本)
  3. MyEclipse 7.5优化
  4. 【Groovy】编译时元编程 ( ASTTransformation#visit 方法中访问 Groovy 类、方法、字段、属性 | 完整代码示例及进行编译时处理的编译过程 )
  5. 机器人水库涵洞检测_2019 届高三上学期期末教学质量检测原创卷 03
  6. java中如何合并两个网格_java – 如何在GXT中合并网格单元格
  7. NeatUpload:支持大文件上传 进度条
  8. Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(4) - 数据传输指令
  9. Dependency, Association, Aggregation Composition的四种区别
  10. a59s刷机包卡刷 oppo_OPPO A59st刷机教程_OPPO A59st卡刷升级更新官方系统包
  11. WIN7系统设置保护视力的豆沙绿过程
  12. 最近在测FREEBSD平台下ISP邮件系统前的准备知识摘录
  13. 投资黄金,当然选贸易场行员平台真宝金业,安全有保障,返佣高,平仓返。
  14. 公司域名邮箱如何注册?163公司邮箱注册好用吗?
  15. 数据分析_python数据可视化(基于matplotlib+pandas)
  16. arm编程语言基础c,ARM基础:ARM 伪指令详解
  17. 亚马逊上卖毛绒玩具CPC认证注意事项
  18. md文件转换word文档
  19. 斯坦福大学物理教授张首晟:In Math We Trust | 清华x-lab公开课
  20. HC-CB01数字光纤同轴模块说明

热门文章

  1. 分享《生死狙击2》的大场景草渲染
  2. 拒绝服务攻击过程详解
  3. 任务管理器在打开的瞬间是CPU占用过大
  4. Python ffmpeg视频处理
  5. 日紫白飞星算法_紫白飞星择日法
  6. 【进程线程】1. 概念和区别
  7. [个人学习]透视画法的一点记录
  8. gulp两种配置方式总结
  9. Golang 入门 : 结构体(struct)
  10. 需求预测模型分类与选择