问题标签 [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 回答
483 浏览

postgresql - 外部数据包装器,ogr_fwd 层 Postgresql

我以这种方式正确地(它连接了我)一个带有外部数据的服务器:

然后我做一个这样的外表:

当我对 pt_test 进行选择时,它给了我这个错误:

我现在不知道什么是层。有什么帮助吗?

0 投票
1 回答
195 浏览

postgresql - (如何)是否可以在 Postgres 中将表转换为外部表?

我们的 Postgres 生产数据库中有一个大表,我们希望使用外部表和继承开始“分片”。

所需的体系结构将有 1 个(空)表定义架构和几个从空“父”表继承的外部表。(可以在 Postgres 9.5 中使用)

我发现这篇写得很好的文章https://www.depesz.com/2015/04/02/waiting-for-9-5-allow-foreign-tables-to-participate-in-inheritance/解释了如何从头开始做。我的问题是如何将所需的数据迁移减少到最低限度。

我们现在有这个 100+ GB 的表,它应该成为我们的第一个“分片”。未来我们会定期添加新的“分片”。在某些时候,较旧的分片将被移动到另一个表空间(在更便宜的硬件上,因为它们变得不那么重要了)。

我现在的问题是: 有没有办法将现有表“更改”为外部表?

0 投票
1 回答
266 浏览

postgresql - 是否有可以访问压缩 csv 文件的 postgreSQL 外部表包装器?

我有兴趣将长期静态数据存储在数据库之外,最好是在访问时动态解压缩的压缩文件中。我目前正在出于某种目的使用现有的 file_fdw,但真的希望能够压缩数据。

我们目前使用 9.3。

0 投票
2 回答
2389 浏览

postgresql - 无法为 oracle_fdw 加载库

我在创建 oracle_fdw 时遇到问题。

我已将 oracle_fdw.dll 复制到 postgres lib 文件夹 * .sql 文件和控制文件都复制到 shrared/extension

现在,当我使用超级管理员用户连接到 psql 并进行查询时

我得到回应

0 投票
0 回答
524 浏览

postgresql - 国外数据包装器 elasticsearch postgresql

我尝试使用 Foreign Data Wrapper 一起执行 postgresql 和 Elasticsearch。我遵循了这个:https ://github.com/Mikulas/pg-es-fdw

当我插入新文章时,一切正常,但是当我尝试更新或删除时,它显示了一些错误:

任何人都可以帮助我吗?谢谢!

0 投票
1 回答
680 浏览

oracle - Postgres 外部数据包装器编码问题

我正在尝试将具有 ' ' 编码的 Oracle 数据迁移到具有 ' we8mswin1252' 编码的我的数据库中UTF8

我正在使用外国数据包装器

我越来越

invalid byte sequence error

我该怎么办?

0 投票
2 回答
6092 浏览

oracle - 无法在 Postgres 上创建 oracle_fdw 扩展

我按照此处的说明在PostgreSQL 服务器上安装 Oracle 外部数据包装器oracle_fdw 。

Oracle 版本: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64 位生产,在 Red Hat Linux 7.2 上运行

PostgreSQL 版本: x86_64-unknown-linux-gnu 上的 PostgreSQL 9.4.4,由 gcc (Debian 4.7.2-5) 4.7.2 编译,64 位,在 Debian 7 (wheezy) 上运行。

我能够安装 sqlplus 并成功使用 sqlplus 从 PostgreSQL 服务器连接到 Oracle 服务器,因此连接不是问题。

但是当我尝试创建扩展时,我收到以下错误:

然后我从https://github.com/dalibo/pg_qualstats/issues/1中获取线索,并将 oracle_fdw 添加到 postgresql.conf 中的 shared_preload_libraries 中,如下所示:

但现在我无法重新启动 Postgres:

查看 /var/log/postgresql/postgresql-9.4-main.log 我只看到这两行:

从 shared_preload_libraries 中删除 oracle_fdw 允许重新启动 postgres,因此这是导致重新启动失败的原因。所以我从 shared_preload_libraries 中删除了 oracle_fdw 并将其保留在 postgresql.conf 中:

然后我能够重新启动 Postgres。


以下是完成的确切步骤:

PostgreSQL 服务器的操作系统版本

Oracle Instant Client 的安装

使用此处给出的说明安装: https ://help.ubuntu.com/community/Oracle%20Instant%20Client

我从http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html下载了以下 rpm 文件:

  • oracle-instantclient-basic-10.2.0.3-1.x86_64.rpm
  • oracle-instantclient-devel-10.2.0.3-1.x86_64.rpm
  • oracle-instantclient-sqlplus-10.2.0.3-1.x86_64.rpm

并使用以下命令将它们安装在 PostgreSQL 服务器上:

确认安装:

使用 sqlplus 连接到 Oracle 服务器

所以这很好用。

安装 oracle_fdw

从http://pgxn.org/dist/oracle_fdw/下载 oracle_fdw 版本 1.4.0 即文件 oracle_fdw-1.4.0.zip

然后解压缩并像这样安装它:

在 Postgres 中创建扩展


堆栈跟踪

我按照 Laurenz Albe 在他的回答中的建议安装了 GNU 调试器(gdb),并得到了以下堆栈跟踪(目前没有调试符号):


更新:我能够在运行在 debian 8(8.6,jessie)上的 Postgres 9.4.9 上安装扩展。我使用了 Oracle 即时客户端版本 12.1.0.2.0-1 和 oracle_fdw 版本 1.5。

0 投票
1 回答
3019 浏览

sql - 使用索引使用 postgres_fdw 执行远程查询

如前所述,这里 postgres_fdw无法访问索引。

一种解决方法是在远程服务器上创建一个视图,然后在本地服务器上为该视图创建外部表包装器。

但是如果我想将参数传递给我的视图怎么办?通常我会创建一个function(myparam)that RETURNS TABLE()。但是如何调用它postgres_fdw

有什么想法可以解决这种情况(dblink如果不需要,最好不要使用)?

例子

我有这样的查询要在我的远程数据库上执行:

如您所见,里面有一个参数_my_date

所以我创建了外部表my_remote_server_public.my_remote_server_public_foo并从本地数据库运行它,例如:

但是当我这样做时 - 它会持续 2-3 分钟postgres_fdw,因为无法访问foo索引。

我想过get_foo_by_date(_my_date date)在远程数据库上创建一个函数并postgres_fdw从本地调用它,但不知道它是否可能......

更新

假设我将普通视图处理为内部具有恒定日期的外部表。

此视图将返回我远程表中的 ID 列表。

我想从远程表中删除列出的行并将它们归档到本地表中。

当我这样称呼它时:

它持续 5 分钟...再次因为DELETE查询无法访问索引...我是否也需要在dblink这里调用函数?还有其他解决方法吗?

0 投票
1 回答
1777 浏览

postgresql - Updating a PostgreSQL table from a CSV file

I am trying to find a way to automatically update data from a csv file on a PostgreSQL table.

The csv file holds LabVIEW test data, which will renew with every execution and is stored on the local computer.

So far I am able to import data from the csv into table 'test1' using 2 methods:

  1. COPY command

    /li>
  2. Foreign Data Wrappers (file_fdw)

    /li>

From there I can insert data into test1 using

This is ok for a single update, but I need this process to be automated. I tried using triggers and trigger functions and I am able to create the trigger on the foreign table, but the table does not update when I run a new LabVIEW test.

I read on a forum post that file_fdw does not support the trigger function, can anyone confirm this in the latest version of PostgreSQL (9.6)?

Does anyone know of a way to automatically update tables from a foreign table or from the .csv file directly?

0 投票
2 回答
1062 浏览

sql - Postgresql,将数据从外部表复制到新表

我正在尝试将数据从模式“nathalia”的名为“m_aduana”的外部表复制到我的模式“publico”和表“mae_aduana”。

我需要做一个查询,复制表“m_aduana”中的所有值,避免重复。

我现在得到了类似的东西,但结果给我发送了一个 Insert 0 0,这意味着没有插入任何内容。