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>