问题标签 [postgres-fdw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2014 浏览

postgresql - 查询存储在不同服务器中的两个不同的postgres数据库

我有两个POSTGRES数据库存储在不同的服务器中。

Firstdb”9.2 ,它存储在 LAN 服务器的端口5432中。

Seconddb”版本 10,它作为本地主机存储到我的 PC 端口5432

我可以通过pgAdmin4 version 2.0访问它们。

我想在这两个数据库之间运行查询来比较数据。

关于如何做到这一点的任何想法?

谢谢大家的时间。

0 投票
2 回答
1579 浏览

postgresql - Postgres_FDW 没有推低 WHERE 标准

我正在使用两个 PostgreSQL 9.6 数据库,并尝试使用 postgres_fdw 从另一个数据库中查询一个(一个是具有数据的生产备份数据库,另一个是用于进行各种分析的数据库)。

我遇到了一些奇怪的行为,尽管查询中某些类型的 WHERE 子句没有传递给远程数据库,而是保留在本地数据库中并用于过滤从远程数据库接收到的结果。这导致远程数据库尝试通过网络发送比本地数据库需要更多的信息,并且受影响的查询速度大大降低(15 秒对 15 分钟)。

我经常看到这个与时间戳相关的子句,下面的例子是我第一次遇到这个问题的方式,但我已经在其他几个变体中看到它,例如用 TIMESTAMP 文字(慢)或 TIMESTAMP WITH TIME ZONE 文字替换它(快速地)。

有没有我想念的设置可以帮助解决这个问题?我正在将此设置为一个团队使用混合级别的 SQL 背景,大多数人没有审查 EXPLAIN 计划之类的经验。我想出了一些解决方法(例如将相对时间子句放在子 SELECT 中),但我不断遇到问题的新实例。

一个例子:

解释计划

上面的运行大约需要 15-20 分钟,而下面的在几秒钟内完成。

解释计划

0 投票
1 回答
1936 浏览

postgresql - 如果外部数据库在同一台服务器中,我可以简化 postgres_fdw 的使用吗

我的服务器有几个数据库。我希望能够从 db2 中的查询中读取 db1。我知道我可以使用 postgres_fdw 来做到这一点,但这有几个缺点。主要的一个是我必须传递凭据,担心我何时更改密码等。

0 投票
2 回答
160 浏览

postgresql - 如何访问外部表上的大型对象存储

我已经设置了 postgres_fdw 来访问一个“远程”数据库(实际上它在同一台服务器上)。工作正常。除了其中一列是大对象的 oid,我如何读取该数据?

0 投票
1 回答
157 浏览

postgresql - postgres_fdw 下推总和和计数,但不是最小值和最大值

从 PostgreSQL 10.x 开始,外部表支持聚合下推。

我注意到 sum 和 count 操作被推送到远程服务器,但 min 和 max 的推送方式不同。

显示带有 ORDER BY 的外部扫描,后跟本地应用的 LIMIT。

在我的例子中,远程服务器实际上是 Redshift 而不是另一个 PostgreSQL 实例,所以这将比在查询上发出正确的方式要慢,min就像 sum 或 count 一样,奇怪的是,如果你执行类似的查询

将被推送到查询中min

为什么 postgres_fdw 对 min/max 的处理方式不同,是否有优化器设置可以让 min/max 与其他聚合函数一样被对待?

0 投票
2 回答
606 浏览

postgresql - postgres_fdw:可以将数据推送到外部服务器以供加入吗?

假设我有一个类似的查询

其中 remote_table 是一个FOREIGN TABLEwithpostgres_fdw并且local_table是一个常规表。

local_table小(100 行)和remote_table大(数百万行)。

看起来远程表被完全拉出并在本地加入,而将较小的表发送到远程服务器并远程加入会更有效。

有没有办法让 postgres_fdw 做到这一点?

0 投票
1 回答
440 浏览

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

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

我已经阅读了 dblink 和 postgres_fdw,但是这些都可以解决我的问题吗?我不会创建外部表,因为我的 SELECT 正在加入来自 PRODdb1 的许多表,所以我不熟悉 postgres_fdw 是否仍然是我的用例的一个选项。

另一种选择是将 SELECT 的结果获取到 .CSV 文件或其他内容的任何方法。我的主要障碍是我只有一个只读用户可以使用,但无法解决这个问题。

0 投票
1 回答
1009 浏览

postgresql - 使用 postgresql_fdw 导入外部类型

我有一个自定义类型的数据库,无法使用IMPORT FOREIGN SCHEMA public FROM SERVER replica_db1 INTO db1因为CREATE FOREIGN TABLE失败导入。如何导入自定义类型?此外,自定义类型是从公共架构中引用的,如何将其更改为使用本地服务器的架构?

谢谢

0 投票
0 回答
357 浏览

postgresql - PostgreSQL 11 中外部表的并行追加

是否可以在 PostgreSQL 11 中的外部表上实现并行追加(就像在本地表上一样)?

本地表:

国外表:

是否有任何参数可以提示 postgres 在外部表上使用并行追加?

0 投票
1 回答
381 浏览

postgresql - 需要在 PostgreSQL 中的外部表上并行追加

我们开发了一个基于 postgres_fdw 的 fdw,它在保持数据压缩的大存储库(大数据)中实现搜索。我们正在尝试使用 postgres 分区表的概念,以便我们可以同时在多个分区上并行搜索。对于外部数据包装器,我们需要“并行追加”。

有人知道这是否会在 Postgres 11 中得到解决?

如果我的查询导致在本地分区搜索,postgres 使用并行性,但如果它导致外部扫描,则不会。

本地分区:

国外分区:

PostgreSQL 11 中外部表的并行追加