【问题标题】:AWS link databases and run query on multiple databasesAWS 链接数据库并在多个数据库上运行查询
【发布时间】:2021-06-01 14:38:56
【问题描述】:

我们在 AWS RDS 中托管了多个 postgreSQL 数据库,我想知道是否可以将它们连接在一起并在多个数据库上运行查询,例如:

SELECT * FROM databaseA.TableX ax
LEFT JOIN databaseB.TableX bx ON bx.id = ax.id

我记得SQL Server有这个功能,叫做链接服务器。

【问题讨论】:

  • 在 Postgres 中称为foreign data wrapper
  • 感谢您提供的信息。我遵循documentation 直到用户映射部分。现在如何从外部表中选择记录?
  • 我找到了解决办法,用户映射后:CREATE SCHEMA IF NOT exists northwind; IMPORT FOREIGN SCHEMA "public" FROM SERVER foreign_server INTO "northwind"; SELECT * FROM "northwind"."categories";

标签: postgresql amazon-s3 linked-server multiple-databases


【解决方案1】:

这是完整的命令序列:

-- Install extension
CREATE EXTENSION IF NOT EXISTS postgres_fdw WITH SCHEMA "public";

-- Link the foreign server
CREATE SERVER foreign_server
    FOREIGN DATA WRAPPER postgres_fdw
    OPTIONS (host '<url>', port '5432', dbname '<database>');

-- Map the local user with the foreign one
CREATE USER MAPPING FOR <local user>
    SERVER foreign_server
    OPTIONS (user '<foreign user>', password '<foreign user password>');

-- Create locally a schema
CREATE SCHEMA IF NOT EXISTS "northwind";

-- Import the foreign schema into the new local one
IMPORT FOREIGN SCHEMA "public" FROM SERVER foreign_server INTO "northwind";

-- Select from foreign table
SELECT * FROM "northwind"."categories";

【讨论】:

    猜你喜欢
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 2023-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多