加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

从PostgreSQL数据库存档超过时间线的记录

发布时间:2020-12-13 16:07:22 所属栏目:百科 来源:网络整理
导读:假设我们有一个公交公司的数据库. 我们收集有关公共汽车乘客,乘客名单,燃料等的数据. 我们主要处理有关即将到来的游乐设施的数据 有时我们需要查看历史记录(用于记帐),但时间范围很短(最多3个月). 出于显而易见的原因(存储浪费,查询速度慢等),我们不希望将所
假设我们有一个公交公司的数据库.

>我们收集有关公共汽车乘客,乘客名单,燃料等的数据.
>我们主要处理有关即将到来的游乐设施的数据
>有时我们需要查看历史记录(用于记帐),但时间范围很短(最多3个月).
>出于显而易见的原因(存储浪费,查询速度慢等),我们不希望将所有记录保留在我们的生产/开发服务器上.
>我们希望有一个单独的数据库,我们将存档整个历史记录.
>在PostgreSQL上实现这一目标的最佳方法是什么?

我们正在寻找这样的东西:

>我们想复制生产数据库(包括结构变更,序列等)
>我们希望从生产数据库中删除旧数据,但要从复制中排除这些语句以保持存档不变.

例:

>当公共汽车旅行超过3个月时,将其从生产数据库中删除,但将其保存在已存在的存档数据库中.

我们目前正在研究的内容:

>某种主/从复制(Slony?).
>为特定表启用REPLICA RULE,我们使用一些时间规则修改DELETE / UPDATE语句(WHERE日期< NOW() - interval'6 months')
感谢您的见解.

解决方法

这是一个逻辑复制(像Bucardo或Slony这样的东西)可以真正帮助的领域,因为您只能复制所需的表并在它们周围维护自己的触发器.在这种情况下,您可以使用更新和删除触发器来存档旧版本的数据,以便查看它.

当然,您也可以使用生产数据库中的触发器执行此操作,然后根据注释建议使用外部数据包装器.但是如果你要走这条路线,你也可以考虑复制到csv和加载,这样你就有了气隙,并且如果最终需要那么做转换.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读