问题标签 [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.
postgresql - 外部数据包装器,ogr_fwd 层 Postgresql
我以这种方式正确地(它连接了我)一个带有外部数据的服务器:
然后我做一个这样的外表:
当我对 pt_test 进行选择时,它给了我这个错误:
我现在不知道什么是层。有什么帮助吗?
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 的表,它应该成为我们的第一个“分片”。未来我们会定期添加新的“分片”。在某些时候,较旧的分片将被移动到另一个表空间(在更便宜的硬件上,因为它们变得不那么重要了)。
我现在的问题是: 有没有办法将现有表“更改”为外部表?
postgresql - 是否有可以访问压缩 csv 文件的 postgreSQL 外部表包装器?
我有兴趣将长期静态数据存储在数据库之外,最好是在访问时动态解压缩的压缩文件中。我目前正在出于某种目的使用现有的 file_fdw,但真的希望能够压缩数据。
我们目前使用 9.3。
postgresql - 无法为 oracle_fdw 加载库
我在创建 oracle_fdw 时遇到问题。
我已将 oracle_fdw.dll 复制到 postgres lib 文件夹 * .sql 文件和控制文件都复制到 shrared/extension
现在,当我使用超级管理员用户连接到 psql 并进行查询时
我得到回应
postgresql - 国外数据包装器 elasticsearch postgresql
我尝试使用 Foreign Data Wrapper 一起执行 postgresql 和 Elasticsearch。我遵循了这个:https ://github.com/Mikulas/pg-es-fdw
当我插入新文章时,一切正常,但是当我尝试更新或删除时,它显示了一些错误:
任何人都可以帮助我吗?谢谢!
oracle - Postgres 外部数据包装器编码问题
我正在尝试将具有 ' ' 编码的 Oracle 数据迁移到具有 ' we8mswin1252
' 编码的我的postgres数据库中UTF8
。
我正在使用外国数据包装器。
我越来越
invalid byte sequence error
我该怎么办?
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。
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
这里调用函数?还有其他解决方法吗?
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:
COPY command
/li>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?
sql - Postgresql,将数据从外部表复制到新表
我正在尝试将数据从模式“nathalia”的名为“m_aduana”的外部表复制到我的模式“publico”和表“mae_aduana”。
我需要做一个查询,复制表“m_aduana”中的所有值,避免重复。
我现在得到了类似的东西,但结果给我发送了一个 Insert 0 0,这意味着没有插入任何内容。