博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PostgreSQL数据保留窗口功能的使用
阅读量:6953 次
发布时间:2019-06-27

本文共 1004 字,大约阅读时间需要 3 分钟。

标签

PostgreSQL , 保留窗口 , ttl , stream , continuous view , pipelinedb


背景

类似mongodb的rotate collate(设置表的上限容量、上限记录数,持续写入,自动覆盖最老的记录),PostgreSQL通过pipelinedb也能实现类似的功能。

此类功能非常适合日志数据,无需维护成本,持续写入,自动覆盖最老的记录。

pipelinedb计划会在2017-07月份转换为postgresql插件,届时使用会更加便利。

如果不使用pipelinedb的cv ttl功能,直接使用postgresql的话,可以使用PostgreSQL 10的worker process,设置删除任务,自动调度,删除记录,效果也是一样的。

pipelinedb cv ttl例子

创建一个流(定义数据的格式)

CREATE STREAM s1 (id int, info text, crt_time timestamp default now());

创建cv ttl,例如根据crt_time字段,保留1分钟。

CREATE CONTINUOUS VIEW cv1 WITH (ttl = '1 min', ttl_column = 'crt_time') AS    SELECT id,info,crt_time FROM s1;

激活cv

activate cv1;

测试

写入数据

pipeline=# insert into s1 values (1,'test',now());  INSERT 0 1

查看数据

pipeline=# select * from cv1;   id | info |          crt_time            ----+------+----------------------------    1 | test | 2017-06-12 17:11:45.774904  (1 row)

1分钟后查看数据,自动被删除。

修改ttl,保留10秒

pipeline=# select set_ttl('cv1', '10 second', 'crt_time');   set_ttl   ---------   (10,3)  (1 row)

重新测试,数据写入10秒后,自动删除。

参考

转载地址:http://eunil.baihongyu.com/

你可能感兴趣的文章
set 集合容器实现元素的插入与中序排序
查看>>
最常使用Eclipse快捷键
查看>>
jmeter的如何设置headers
查看>>
ssh免密登入
查看>>
拖拽文件作为文件输入
查看>>
Eclipse设置智能提示
查看>>
HTML-CSS线性渐变
查看>>
SAP 生产订单变更管理 OCM Order Changement Management
查看>>
虚拟化这八年-【软件和信息服务】2014.11
查看>>
【转】SVM算法的生动讲解
查看>>
使用swfupload上传超过30M文件,使用FLASH上传组件
查看>>
OkHttp简介
查看>>
如何使用通用Mapper
查看>>
MYSQL建表语法(主键,外键,联合主键)
查看>>
linux基础-第十单元 系统的初始化和服务
查看>>
多线程的通信和同步(Java并发编程的艺术--笔记)
查看>>
Python格式化输出
查看>>
Linux使用du和df查看磁盘和文件夹占用空间
查看>>
java 消息机制 ActiveMQ入门实例
查看>>
CentOS 6.6 MySQL install
查看>>