问题标签 [foreign-data-wrapper]

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 回答
2751 浏览

postgresql - 使用 Postgresql 外部数据包装器更新表

  1. 我创建了一个名为t_userinto的外部数据包装表mySchema

    /li>
  2. myServer一边添加了一些列t_user,但是外部表没有相应地更新。

  3. 我试图删除外表t_user,但它被我的视图和物化视图使用t_user,所以删除失败。

关于如何更新此表的任何想法?

0 投票
1 回答
72 浏览

postgresql - 添加限制子句时插入选择获得更好的计划

这是我正在运行的服务器

我从编写选择开始(ext.t_event 和 ext.t_event_data 是 oracle_fdw(1.1 版)从远程 oracle 数据库获取的两个外部表)

获取整个记录集(3600 条记录)大约需要 10 秒。

但后来我把选择变成了插入选择

我被迫终止查询,它已经运行了 30 多分钟!

经过几个小时的挣扎和绝望的尝试,我决定试试这个

并且......在 20 秒内让我感到惊讶,我将整个记录集存储在 stg_data 中。

为了更好地理解差异,我决定分析这些计划。

选择无限制

有限制地选择

因此,它基本上向 Oracle 发送相同的查询,并在获取完成后立即在本地应用 FILTER。

INSER-SELECT 计划看起来一样吗?不!

带有 LIMIT 的 INSERT_SELECT

INSERT-SELECT 无 LIMIT 子句

这就解释了为什么它比另一个需要更长的时间。它从一个外部表中检索日期过滤的记录,从第二个外部表中检索完整集并在本地进行连接。那将需要很长时间!这是几百万条记录而不是几千条记录。

最后我的两个问题

1)我想制定第一个计划,但要摆脱 LIMIT 条款(让我的脊椎发抖:-))。你会怎么做?除了 join 子句外,我无意对 ext.t_event_data 应用过滤器。

2) 为什么两个 INSERT-SELECT 计划看起来如此不同,尽管这两个 SELECT 计划看起来如此相似?

感谢阅读,祝您有美好的一天

0 投票
1 回答
314 浏览

postgresql - 如何解决 Postgres 11 错误:无法将插入的元组路由到外部表

我正在尝试https://pgdash.io/blog/postgres-11-sharding.html中解释的分区和 FDW 示例。创建 FDW 扩展和外部分区表 ( temperatures_2016) 后,当我尝试将 2016 数据插入主表温度时,它会抛出

错误:无法将插入的元组路由到外部表。

我该如何解决这个问题?

-- 在其他服务器 box2 上

--在我的服务器上

我希望该行被插入到外部分区表中,而不是我得到

错误:无法将插入的元组路由到外部表 SQL 状态:0A000

0 投票
2 回答
1372 浏览

postgresql - 无法使用 Postgres FDW 访问外部表

我在 Postgres 10 中设置了一个外部表。角色“role1”已被授予使用postgres超级用户设置的外部服务器 (fs) 的使用权限。

我使用 import schema 命令导入了表:

那工作得很好。

但是,当我尝试查询表时,出现以下错误:

我的理解是 FDW 应该对视图和表一视同仁。

0 投票
2 回答
861 浏览

sql - 从 SQL Server 检索任何外部表数据时,Postgresql 外部数据包装器引发错误

我在 postgresql 中设置外部数据包装器,使用 freetds 连接到 SQL Server,并tds_fdw在 postgresql 中安装了扩展,但是当从外部表中选择数据时,代码总是会引发这个 DB-Library 错误:

DB #: 4075 错误:
USE 数据库语句失败,因为旧客户端驱动程序无法识别数据库排序规则 Persian_100_CI_AI。尝试升级客户端操作系统或对数据库客户端软件应用服务更新,或使用不同的排序规则。有关更改排序规则的详细信息,请参阅 SQL Server 联机丛书

我深入研究了位于的 net 和配置 freets.conf 文件/etc/freetds

这是我在 postgres 中的 sql 代码

而且我还需要使用 where 子句,但反斜杠转义字符'select from where ssn = \'1234\''不起作用并给出语法错误。

任何帮助,将不胜感激..

0 投票
2 回答
864 浏览

django - Django 模型对 postgres 外部表的引用 (clickhouse_fdw)

我有一个 Django 项目。我已经使用 clickhouse_fdw 将 clickhouse 表与 postgres 表连接起来。按照 clickhouse_fdw 的说明,在 postgres 中我做了:

它正在使用 psql 命令工作,但现在我想从 django 访问(我可以毫无问题地访问所有其他表)。我为 clickhouse 表添加了一个新模型,并在 django 中忽略了它的迁移和管理。

然后在 django shell 中我尝试过:

我得到的每一个查询:

同样来自 dbshel​​l:

有什么建议么?

0 投票
1 回答
299 浏览

postgresql - Postgres 11 FDW 找不到分区表

尝试使用 postgres 11 外部数据包装器访问分区表。我可以访问基础表,但不能访问表。

这似乎很好。然后我创建了一个链接:

这有效:

这不

有什么想法吗?

0 投票
0 回答
125 浏览

sql - PostgreSQL:从函数内创建外部服务器和外部表

我有一个很长的 PLPGSQL 函数,它可以做几件事,其中之一是创建一个外部服务器和外部表来联系来自另一个数据库的表并在其中插入行。为此,我有一个看起来像这样的函数:

当我直接调用这个函数时,一切都很好。但是当我在我的主函数中执行此操作时,它什么也不做(未创建外部服务器和外部表),并且该函数后来因此崩溃。奇怪的是函数中的通知被打印出来了,所以代码正在执行但它没有创建我的服务器。

0 投票
1 回答
86 浏览

postgresql - 如何正确防止尝试将数据插入到不可访问的外部表的插入触发器之后的延迟

我使用 PostgreSQL 11。

我使用postgres_fdw扩展将行插入到不同服务器上的表中。

所以我创建了一个外部表......让我们调用它foo,我有一个AFTER INSERT触发器,它执行一个函数,该函数将该行插入到配置的远程服务器上的外部表中。

如果服务器没有响应,触发器将冻结直到超时。

所以我对这个问题有几个问题:

  1. 查询执行能否在执行后插入之前返回客户端,这样就不会阻止用户执行其他插入

  2. 系统可以检查此服务器的有效性,如果它无法连接到它以标记它几分钟,因此它甚至不会尝试将插入发送给它?

一般来说,插入被发送到备份服务器,如果服务器没有响应或者响应时间太长,它不应该对客户端产生任何影响。

所以我不希望后插入延迟行实际插入到表中,我不希望任何与连接相关的问题导致任何延迟。

我怎样才能实现这样的事情?

我将创建一个示例代码,以便您了解我在做什么。

假设 foo 是我的外表。

0 投票
1 回答
70 浏览

postgresql - PostgreSQL 未使用 informix_fwd 创建 TCP 连接

我正在尝试使用informix_fwd从PostgreSQL访问 InformixDB 。我已经创建了外部服务器、用户映射和外部表。我在尝试查询外部表时正在监视 netstat,但输出中未列出任何连接,并且查询以以下错误结束: ERROR: could not open connection to informix server: SQLCODE=-908

PostgreSQLInformixDB是一个独立的服务器,telnet 和 dbaccess 工作。