Skip to content
Database

postgres_fdw

这个扩展可以让 Postgres 查询远程 Postgres 服务器上的表和视图。

🌐 The extension enables Postgres to query tables and views on a remote Postgres server.

启用扩展 #

🌐 Enable the extension

  1. 在仪表板中转到数据库页面。
  2. 点击侧边栏的 扩展。
  3. 搜索“postgres_fdw”并启用该扩展。

创建到另一个数据库的连接 #

🌐 Create a connection to another database

1
Create a foreign server

定义远程数据库地址

create server "<foreign_server_name>"
foreign data wrapper postgres_fdw
options (
host '<host>',
port '<port>',
dbname '<dbname>'
);
2
Create a server mapping

为远程服务器设置用户凭据

create user mapping for "<dbname>"
server "<foreign_server_name>"
options (
user '<db_user>',
password '<password>'
);
3
Import tables

从外部数据库导入表

示例:从一个模式中导入所有表

import foreign schema "<foreign_schema>"
from server "<foreign_server>"
into "<host_schema>";

示例:导入特定表

import foreign schema "<foreign_schema>"
limit to (
"<table_name1>",
"<table_name2>"
)
from server "<foreign_server>"
into "<host_schema>";
4
Query foreign table
select * from "<foreign_table>"

配置执行选项 #

🌐 Configuring execution options

Fetch_size#

每次操作获取的最大行数。例如,如果 fetch_size 设置为 100,要获取 200 行就需要 2 次请求。

🌐 Maximum rows fetched per operation. For example, fetching 200 rows with fetch_size set to 100 requires 2 requests.

alter server "<foreign_server_name>"
options (fetch_size '10000');

Batch_size#

每个周期插入的最大行数。例如,如果将 batch_size 设置为 100,插入 200 行就需要 2 次请求。

🌐 Maximum rows inserted per cycle. For example, inserting 200 rows with batch_size set to 100 requires 2 requests.

alter server "<foreign_server_name>"
options (batch_size '1000');

扩展 #

🌐 Extensions

列出共享扩展。如果没有它们,涉及未列出扩展函数或操作符的查询可能会失败或遗漏引用。

🌐 Lists shared extensions. Without them, queries involving unlisted extension functions or operators may fail or omit references.

alter server "<foreign_server_name>"
options (extensions 'vector, postgis');

想要更多服务器选项的话,可以看看这个扩展的官方文档

🌐 For more server options, check the extension's official documentation

资源 #

🌐 Resources