您可以使用tds_fdw插件訪問SQL Server數據庫的數據。
前提條件
背景信息
tds_fdw是PostgreSQL外部數據包裝器,可以連接到使用Tabular Data Stream(TDS)協議的數據庫,例如Microsoft SQL server。
詳細說明請參見postgres_fdw。
創建插件
連接實例后創建tds_fdw插件,命令如下:
create extension tds_fdw;
使用插件
創建服務器,示例如下:
CREATE SERVER mssql_svr FOREIGN DATA WRAPPER tds_fdw OPTIONS (servername '<連接地址>', port '<連接端口>', database 'tds_fdw_test', tds_version '7.1');
說明服務器定義中的
servername
必須配置為SQL Server的內網地址,port
必須配置為SQL Server的內網端口。創建外部表。您可以通過多種方式創建外部表:
使用table_name定義創建外部表,示例如下:
CREATE FOREIGN TABLE mssql_table ( id integer, data varchar) SERVER mssql_svr OPTIONS (table_name 'dbo.mytable', row_estimate_method 'showplan_all');
使用schema_name和table_name定義創建外部表,示例如下:
CREATE FOREIGN TABLE mssql_table ( id integer, data varchar) SERVER mssql_svr OPTIONS (schema_name 'dbo', table_name 'mytable', row_estimate_method 'showplan_all');
使用query定義創建外部表,示例如下:
CREATE FOREIGN TABLE mssql_table ( id integer, data varchar) SERVER mssql_svr OPTIONS (query 'SELECT * FROM dbo.mytable', row_estimate_method 'showplan_all');
使用遠程列名創建外部表,示例如下:
CREATE FOREIGN TABLE mssql_table ( id integer, col2 varchar OPTIONS (column_name 'data')) SERVER mssql_svr OPTIONS (schema_name 'dbo', table_name 'mytable', row_estimate_method 'showplan_all');
創建用戶映射,示例如下:
CREATE USER MAPPING FOR postgres SERVER mssql_svr OPTIONS (username 'sa', password '123456');
導入外部模式,示例如下:
IMPORT FOREIGN SCHEMA dbo EXCEPT (mssql_table) FROM SERVER mssql_svr INTO public OPTIONS (import_default 'true');
文檔內容是否對您有幫助?