问题标签 [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.
postgresql - 查询存储在不同服务器中的两个不同的postgres数据库
我有两个POSTGRES数据库存储在不同的服务器中。
“ Firstdb”是9.2版 ,它存储在 LAN 服务器的端口5432中。
“ Seconddb”是版本 10,它作为本地主机存储到我的 PC 端口5432。
我可以通过pgAdmin4 version 2.0访问它们。
我想在这两个数据库之间运行查询来比较数据。
关于如何做到这一点的任何想法?
谢谢大家的时间。
postgresql - Postgres_FDW 没有推低 WHERE 标准
我正在使用两个 PostgreSQL 9.6 数据库,并尝试使用 postgres_fdw 从另一个数据库中查询一个(一个是具有数据的生产备份数据库,另一个是用于进行各种分析的数据库)。
我遇到了一些奇怪的行为,尽管查询中某些类型的 WHERE 子句没有传递给远程数据库,而是保留在本地数据库中并用于过滤从远程数据库接收到的结果。这导致远程数据库尝试通过网络发送比本地数据库需要更多的信息,并且受影响的查询速度大大降低(15 秒对 15 分钟)。
我经常看到这个与时间戳相关的子句,下面的例子是我第一次遇到这个问题的方式,但我已经在其他几个变体中看到它,例如用 TIMESTAMP 文字(慢)或 TIMESTAMP WITH TIME ZONE 文字替换它(快速地)。
有没有我想念的设置可以帮助解决这个问题?我正在将此设置为一个团队使用混合级别的 SQL 背景,大多数人没有审查 EXPLAIN 计划之类的经验。我想出了一些解决方法(例如将相对时间子句放在子 SELECT 中),但我不断遇到问题的新实例。
一个例子:
解释计划
上面的运行大约需要 15-20 分钟,而下面的在几秒钟内完成。
解释计划
postgresql - 如果外部数据库在同一台服务器中,我可以简化 postgres_fdw 的使用吗
我的服务器有几个数据库。我希望能够从 db2 中的查询中读取 db1。我知道我可以使用 postgres_fdw 来做到这一点,但这有几个缺点。主要的一个是我必须传递凭据,担心我何时更改密码等。
postgresql - 如何访问外部表上的大型对象存储
我已经设置了 postgres_fdw 来访问一个“远程”数据库(实际上它在同一台服务器上)。工作正常。除了其中一列是大对象的 oid,我如何读取该数据?
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 与其他聚合函数一样被对待?
postgresql - postgres_fdw:可以将数据推送到外部服务器以供加入吗?
假设我有一个类似的查询
其中 remote_table 是一个FOREIGN TABLE
withpostgres_fdw
并且local_table
是一个常规表。
local_table
小(100 行)和remote_table
大(数百万行)。
看起来远程表被完全拉出并在本地加入,而将较小的表发送到远程服务器并远程加入会更有效。
有没有办法让 postgres_fdw 做到这一点?
sql - 我可以在没有定义外部表的情况下使用 postgres_fdw 吗?
我有一个生产数据库“PRODdb1”,具有只读用户帐户。我需要查询(选择语句)这个数据库并将数据插入到名为“RPTdb1”的辅助数据库中。我最初计划从我的选择中只在 PRODdb1 中创建一个临时表,但是权限是问题所在。
我已经阅读了 dblink 和 postgres_fdw,但是这些都可以解决我的问题吗?我不会创建外部表,因为我的 SELECT 正在加入来自 PRODdb1 的许多表,所以我不熟悉 postgres_fdw 是否仍然是我的用例的一个选项。
另一种选择是将 SELECT 的结果获取到 .CSV 文件或其他内容的任何方法。我的主要障碍是我只有一个只读用户可以使用,但无法解决这个问题。
postgresql - 使用 postgresql_fdw 导入外部类型
我有一个自定义类型的数据库,无法使用IMPORT FOREIGN SCHEMA public FROM SERVER replica_db1 INTO db1
因为CREATE FOREIGN TABLE
失败导入。如何导入自定义类型?此外,自定义类型是从公共架构中引用的,如何将其更改为使用本地服务器的架构?
谢谢
postgresql - PostgreSQL 11 中外部表的并行追加
是否可以在 PostgreSQL 11 中的外部表上实现并行追加(就像在本地表上一样)?
本地表:
国外表:
是否有任何参数可以提示 postgres 在外部表上使用并行追加?
postgresql - 需要在 PostgreSQL 中的外部表上并行追加
我们开发了一个基于 postgres_fdw 的 fdw,它在保持数据压缩的大存储库(大数据)中实现搜索。我们正在尝试使用 postgres 分区表的概念,以便我们可以同时在多个分区上并行搜索。对于外部数据包装器,我们需要“并行追加”。
有人知道这是否会在 Postgres 11 中得到解决?
如果我的查询导致在本地分区搜索,postgres 使用并行性,但如果它导致外部扫描,则不会。
本地分区:
国外分区: