首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Postgres citus柱状存储备选方案中删除

在Postgres citus柱状存储备选方案中删除
EN

Stack Overflow用户
提问于 2022-10-21 11:01:04
回答 1查看 82关注 0票数 0

我计划使用citus来存储系统日志,最多不超过几天,这些日志应该是deleted.Citus柱状存储,在我阅读之前,它们看起来就像一个完美的数据库,其中提到的任何删除都可以在列上执行。那么,我的问题是,在柱状商店中是否有实现删除的替代方法?

EN

回答 1

Stack Overflow用户

发布于 2022-10-21 14:12:45

可以将表访问方法临时切换到行模式以删除或更新表。然后,在操作之后,您可以切换回柱状访问方法。下面是一个示例用法:

代码语言:javascript
复制
-- create table and fill with generated data until 20 days before
CREATE TABLE logs (
  id int not null,
  log_date timestamp
);

-- set access method columnar
SELECT alter_table_set_access_method('logs', 'columnar');

-- fill the table with generated data which goes until 20 days before
INSERT INTO logs select i, now() - interval '1 hour' * i from generate_series(1,480) i;
    
-- now you want to drop last 10 days data, you can switch to row access method temporarily to execute delete or updates
SELECT alter_table_set_access_method('logs', 'heap');
DELETE FROM logs WHERE log_date < (now() - interval '10 days');

-- switch back to columnar access method
SELECT alter_table_set_access_method('logs', 'columnar');

--日志归档的一个更好的替代方案:我们正在创建一个完整的源表副本,以便有一个具有新访问方法的表。桌子越大,消耗的资源就越多。更好的选择是,如果可以将日志表划分为几天或几个月的分区,则只需更改单个分区的访问方法。注意,您应该为每个分区分别设置access方法。列目前不支持直接设置分区表的访问方法。

了解更多:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74152659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档