问题标签 [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 - Postgresql 和 dblink:我如何进行 UPDATE FROM?
这是已经有效的方法,但它使用的是循环:
(我正在nickname, slug
为本地表中的每一行更新远程表上的字段)
现在,我想做的是做大量UPDATE (remote) FROM (local)
通过查看各种解决方案( postgresql: INSERT INTO ... (SELECT * ...) ),我已经走到了这一步SELECT
,DELETE
并且我知道如何在INSERT/SELECT
. 我也可以使用绑定变量进行直接更新。但是怎么样UPDATE FROM
?
如果不可能,我应该查看 PostgresFOREIGN TABLE
或类似的东西吗?
本地和远程数据库都在同一个 Postgres 服务器上。如果重要的话,还有一点信息是,任何一个数据库都可以单独删除和恢复,我更喜欢一个轻量级的解决方案,每次都不需要大量配置来重新建立通信。
postgresql - Postgres 外部数据包装器 (FDW) 的最大表/查询大小限制?
PostgreSQL 外部数据包装器扩展是否有限制?即是否可以通过 FDW 将源表(或模式/数据库)设置为外部表的最大大小?我们正在使用 Postgres 10.6
我们偶尔会遇到这样的情况:表超过某个大小阈值(~8GB)时它似乎失败了,但我不确定这是否是我们可以调整的,或者可能是对源数据库端的限制。(在此示例中,源表位于 Redshift 中。)
返回的错误消息是:
ERROR: exceeded the maximum size allowed for the total set of cursor data: 8000MB.
编辑:发现问题的根源 - 这个特定 Redshift 实例的大小有这个光标大小限制。它们在此处列出:https ://docs.aws.amazon.com/redshift/latest/dg/declare.html#declare-constraints
我们最终过滤了结果以使 FDW 更可行。
postgresql - PostgreSQL 外表错误关系不存在
我创建了一个外部表urltrackerft
在我的外国服务器util
中,它有表urltracker
:
我已按照此处创建外部服务器和表的步骤: https ://www.postgresql.org/docs/current/postgres-fdw.html
我的创建脚本如下所示:
但是当我尝试阅读urltrackerft
表格时,我收到以下错误消息:
对我来说,看起来可能外国服务器没有完全同步。
检查用户映射,信息看起来正确,可能是主机不是 IP 而是 DNS?
对于其中一台服务器,可能firewall
或hba_conf
不正确。但我util
在主服务器中看到了外国服务器。我对这个有点迷茫。任何帮助表示赞赏,谢谢!
主服务器在 PostgreSQL v10 上,外部服务器在 PostgreSQL v11 上。
sql - 在两个 Postgres 服务器之间复制大量数据集
我想在两个 postgres 服务器之间复制大量数据集。具体来说,我想:
- 将源数据库服务器中的两个表中的一些列(不是全部)复制到目标数据库服务器中的单个表中。
- 重命名目标表中的这些列(因为数据集是副本),因为目标列名与原始列名不同(也许我应该说在目标表中的 some_column_name 中插入值)。
我知道postgres_fdw
不能用于完成此任务,因为它将整个表复制到新表(不合并选定字段以形成新表)并且源表和目标表都必须具有匹配的列号。
我的源数据库服务器是一个远程 I ssh,要复制的数据集约为 5GB。
有什么建议可以完成我的任务吗?
postgresql - postgres_fdw 和 uuid-ossp 缺少二进制文件
我正在将我的数据库从 10.4 升级到 11.3,但是在使用 pg_upgrade 执行检查时,我收到以下错误:
我正在使用 CentOS 7 并查看是否需要先创建扩展,我尝试了以下操作并收到以下错误:
因此,当我执行 postgres 页面上记录的 yum install 时,似乎没有加载 FDW 二进制文件。有没有办法单独安装这些文件,或者有另一种方法可以让它工作,以便我可以完成升级?
sql - 当使用多个远程 fdw 源进行插入时,Postgres BIGSERIAL 不共享序列
我正在尝试使用外部数据包装器从其他两个 Postgres 数据库插入 Postgres 数据库中的表。目标是拥有一个独立于源的自动生成主键,因为其中会有两个以上。
我首先像这样定义表:
目标数据库:
来源数据库:
只要我仅从一个源插入,此解决方案就可以正常工作,当我尝试从另一个源插入时,没有指定 dummy_pk,我收到以下消息:
重复键 (dummy_pk)=(1)
因为 postgres 尝试插入 id 为 1,所以我相信每个源外部表使用的序列是不同的。我稍微更改了源表,试图让目标表的序列完成 id 的工作:
这次我得到了一个不同的错误:
NULL 值违反了 «dummy_pk » 列上的 NOT NULL 约束
因此,我相信源服务器向 dummy_pk 为空的目标发送查询,并且目标不会将其替换为默认值。
那么,有没有一种方法可以强制在源上执行的查询中使用目标的序列?也许我必须分享那个序列,我可以创建一个外来序列吗?我无法删除外部表上的列,因为我需要对它们进行读取访问。
谢谢!
postgresql - 如何在 postgresql 中使用 postgres_fdw 从另一个数据库中获取记录
我的案例我已经连接到另一个 GP DB 以将数据导入我的 PostgreSQL 表并编写 Java 调度程序以每天刷新它。但是当我每天尝试使用 SQL 函数获取记录时,它给了我一个错误Greenplum Database does not support REPEATABLE READ transactions
。所以,任何人都可以建议我如何将数据从 GP 频繁加载到 postgres 而没有隔离麻烦。
我知道执行刷新表格
但是,由于交易块,我无法在功能中使用相同的功能。
postgresql - PostgreSQL - 创建外部表时如何导入自定义数据类型(使用 postgres-fdw)?
我正在尝试使用postgresql_fdw
(https://www.postgresql.org/docs/current/postgres-fdw.html)创建外部表视图。
尝试时IMPORT FOREIGN SCHEMA public FROM SERVER replica_db1 INTO db1
,它会报告
type "public.custom_type" does not exist
与https://www.postgresql.org/docs/current/postgres-fdw.html中的相同
我想知道,如何自动将自定义数据类型复制到目标数据库中?
谢谢!
django - Django 模型对 postgres 外部表的引用 (clickhouse_fdw)
我有一个 Django 项目。我已经使用 clickhouse_fdw 将 clickhouse 表与 postgres 表连接起来。按照 clickhouse_fdw 的说明,在 postgres 中我做了:
它正在使用 psql 命令工作,但现在我想从 django 访问(我可以毫无问题地访问所有其他表)。我为 clickhouse 表添加了一个新模型,并在 django 中忽略了它的迁移和管理。
然后在 django shell 中我尝试过:
我得到的每一个查询:
同样来自 dbshell:
有什么建议么?