天天看點

PostgreSQL資料保留視窗功能的使用

postgresql , 保留視窗 , ttl , stream , continuous view , pipelinedb

類似mongodb的rotate collate(設定表的上限容量、上限記錄數,持續寫入,自動覆寫最老的記錄),postgresql通過pipelinedb也能實作類似的功能。

此類功能非常适合日志資料,無需維護成本,持續寫入,自動覆寫最老的記錄。

pipelinedb計劃會在2017-07月份轉換為postgresql插件,屆時使用會更加便利。

如果不使用pipelinedb的cv ttl功能,直接使用postgresql的話,可以使用postgresql 10的worker process,設定删除任務,自動排程,删除記錄,效果也是一樣的。

建立一個流(定義資料的格式)

建立cv ttl,例如根據crt_time字段,保留1分鐘。

激活cv

測試

寫入資料

檢視資料

1分鐘後檢視資料,自動被删除。

修改ttl,保留10秒

重新測試,資料寫入10秒後,自動删除。

<a href="http://docs.pipelinedb.com/continuous-views.html#time-to-live-ttl-expiration">http://docs.pipelinedb.com/continuous-views.html#time-to-live-ttl-expiration</a>

<a href="https://github.com/digoal/blog/blob/master/201703/20170316_01.md">《postgresql 10.0 preview 功能增強 - 背景運作(pg_background)》</a>

繼續閱讀