操作场景
RDS-PostgreSQL支持 tds_fdw
插件,可以连接到使用表格数据流(TDS)协议的数据库,如Sybase数据库和Microsoft SQL Server。
前提条件
- 请确保您的实例内核大版本满足,本插件所支持的内核版本,请参考支持的版本插件列表。
注意事项
- 请确保目标数据库的网络与您的数据库实例互通。
插件使用
- 安装插件
CREATE EXTENSION IF NOT EXISTS tds_fdw;
- 卸载插件
DROP EXTENSION IF EXISTS tds_fdw;
使用示例
-- 1.创建服务器,示例如下:
CREATE SERVER mssql_svr
FOREIGN DATA WRAPPER tds_fdw
OPTIONS (servername '<SQL_SERVER_VPC_IP>', port 'SQL_SERVER_VPC_DB_PORT', database 'testdb', tds_version '7.1');
-- 说明:服务器定义中的servername必须配置为SQL Server的内网地址,port必须配置为SQL Server的内网端口。
-- 2.创建外部表。您可以通过多种方式创建外部表:
-- 2.1使用table_name定义创建外部表,示例如下:
CREATE FOREIGN TABLE mssql_table1 (
id integer,
data varchar)
SERVER mssql_svr
OPTIONS (table_name 'dbo.mytable', row_estimate_method 'showplan_all');
-- 2.2使用schema_name和table_name定义创建外部表,示例如下:
CREATE FOREIGN TABLE mssql_table2 (
id integer,
data varchar)
SERVER mssql_svr
OPTIONS (schema_name 'dbo', table_name 'mytable', row_estimate_method 'showplan_all');
--2.3使用query定义创建外部表,示例如下:
CREATE FOREIGN TABLE mssql_table3 (
id integer,
data varchar)
SERVER mssql_svr
OPTIONS (query 'SELECT * FROM dbo.mytable', row_estimate_method 'showplan_all');
--2.4使用远程列名创建外部表,示例如下:
CREATE FOREIGN TABLE mssql_table4 (
id integer,
col2 varchar OPTIONS (column_name 'data'))
SERVER mssql_svr
OPTIONS (schema_name 'dbo', table_name 'mytable', row_estimate_method 'showplan_all');
--2.5创建用户映射,示例如下:
CREATE USER MAPPING FOR root
SERVER mssql_svr
OPTIONS (username 'test', password 'Pgdb12%^');
--2.6导入外部模式,示例如下:
IMPORT FOREIGN SCHEMA dbo
EXCEPT (mssql_table)
FROM SERVER mssql_svr
INTO public
OPTIONS (import_default 'true');
- <SQL_SERVER_VPC_IP>:SQL Server的内网地址。
- <SQL_SERVER_VPC_DB_PORT>:SQL Server的内网端口。
常见问题
此插件使用方法与开源方法一致,请详见tds_fdw开源社区。