【发布时间】:2020-08-25 17:57:09
【问题描述】:
我们目前将内容存储到 Redis 中以进行临时聚合,并有一个工作人员可以将其批量插入 Postgres。有没有一种方法可以在单个插入事务中跨多个模式进行批量插入?这将消除在 Redis 中聚合事物的需要。或者,有没有更好的方法来聚合请求?
提前感谢您的帮助。
【问题讨论】:
-
我想您可以设置一个带有 INSERT 触发器的表,并让您的触发器函数的逻辑确定要写入哪个表,然后将其复制到该表中。不是我之前尝试过或基准测试过的东西,但我的期望是这会比每个目标表只插入一个要慢。
-
“单次插入事务”应该是什么?单笔交易——当然,没问题。 Single INSERT - 基本上不可能,INSERT 插入到 single 表中。使用规则或触发器或可能进行分区的解决方法...请提出一个包含详细信息的正确问题。
-
我会建议一种不同的方法。使用 redis_fdw (pgxn.org/dist/redis_fdw) 使 Postgres 作为外部表访问 Redis 资源。安排查询 Redis 表并插入 Postgres 模式/表的 Postgres SQL 作业。您可以在单个事务中作为匿名 PL/pgSQL
do块来执行此操作。
标签: postgresql