gpt4 book ai didi

sql - 我可以在没有定义外部表的情况下使用 postgres_fdw 吗?

转载 作者:行者123 更新时间:2023-11-29 12:16:22 25 4
gpt4 key购买 nike

我有一个生产数据库“PRODdb1”,它有一个只读用户帐户。我需要查询(选择语句)这个数据库并将数据插入到名为“RPTdb1”的辅助数据库中。我最初计划从我的选择中在 PRODdb1 中创建一个临时表,但权限是问题。

我已经阅读了 dblink 和 postgres_fdw,但它们中的任何一个都可以解决我的问题吗?我不会创建外部表,因为我的 SELECT 正在连接来自 PRODdb1 的许多表,所以我不知道 postgres_fdw 是否仍然是我的用例的一个选项。

另一种选择是将 SELECT 的结果保存到 .CSV 文件或其他文件中。我的主要障碍是我只有一个只读用户可以使用,但没有办法解决这个问题。

最佳答案

简单的答案是否定的。如果不在 RPTdb1 中定义外部表,则不能使用 postgres_fdw。不过这应该不是什么大问题,因为创建外部表非常容易。

我和你在同一条船上。我们将第三方产品(基于 Postgres 9.3)用于我们的生产数据库,我们拥有的用户角色非常受限(即只读访问、无复制、无法创建触发器/函数/表/等)。

我相信 postgres_fdw 具有您正在寻找的功能,但有一个警告。您的本地报告服务器需要运行 PostgreSQL 版本 10(或至少 9.6)。我们目前在我们的本地服务器上使用 9.3,虽然简单的查询工作得很好,但任何更复杂的事情都需要永远,因为 9.3 中的 FDW 会在它能够执行 JOIN 甚至使用 WHERE 语句之前尝试提取表中的所有数据。

9.6 版:在返回结果之前将 JOIN 下推到远程数据库。

版本 10:在返回结果之前将 COUNT 和 SUM 等聚合下推到远程数据库。

(我不确定哪个版本添加了将 WHERE 语句下推到远程数据库的功能,但我知道这在 9.5 中是不可能的)。

本周我们正在将本地服务器升级到版本 10。我会尽力让您了解我们的最新进展,您也可以随时这样做。

关于sql - 我可以在没有定义外部表的情况下使用 postgres_fdw 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52042481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com