PostgreSQL访问SqlServer工具—tds_fdw

一、tds_fdw概述

1.1、tds_fdw 功能介绍

tds_fdw 是 PostgreSQL 中的一个外部数据包装器(Foreign Data Wrapper),它允许 PostgreSQL 连接到使用 Tabular Data Stream(TDS)协议的数据库,如 Sybase 和 Microsoft SQL Server。tds_fdw 的核心功能是通过 FreeTDS 库实现与 TDS 协议兼容数据库的通信,支持 PostgreSQL 9.2 及更高版本,并且已经在多种操作系统上进行了测试,包括但不限于 CentOS、Ubuntu、openSUSE 等。

1.2、tds_fdw 用途

主要是在 PostgreSQL 中集成和操作远程的 SQL Server 数据,而无需进行复杂的数据迁移或重建整个数据结构。它适用于需要在 PostgreSQL 环境中集成 SQL Server 或 Sybase 数据的场景,或者在进行数据迁移或实时同步任务时需要临时访问非 PostgreSQL 数据库的场景。

1.3、部署流程:

安装 tds_fdw 通常涉及以下几个步骤:
  • 安装依赖:首先需要安装 freetds 及其开发库,这可以通过包管理器如 yum 或 apt 来完成。
  • 下载和解压tds_fdw包:从 GitHub 仓库下载 tds_fdw 的压缩包,并在服务器上解压。
  • 编译和安装:使用 make 命令编译 tds_fdw,并通过 make install 将编译后的文件安装到 PostgreSQL 的扩展目录中。
  • 创建外部服务器和用户映射:在 PostgreSQL 中创建外部服务器和用户映射,以便 PostgreSQL 知道如何连接到远程数据库。
  • 创建外部表:创建一个外部表来表示远程数据库中的表,这样就可以在 PostgreSQL 中查询远程数据了。

1.4、官网地址

更多信息,请查看官网地址:
https://github.com/tds-fdw/tds_fdw

二、环境准备

2.1、安装依赖

sudo yum install epel-release
sudo yum install freetds-devel
sudo yum install centos-release-scl
sudo yum install gcc make wget

2.2、下载安装包

[postgres16@Server install]$ wget https://github.com/tds-fdw/tds_fdw/archive/refs/heads/master.zip
--2024-07-25 13:32:12--  https://github.com/tds-fdw/tds_fdw/archive/refs/heads/master.zip
正在解析主机 github.com (github.com)... 20.205.243.166
正在连接 github.com (github.com)|20.205.243.166|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 302 Found
位置:https://codeload.github.com/tds-fdw/tds_fdw/zip/refs/heads/master [跟随至新的 URL]
--2024-07-25 13:32:13--  https://codeload.github.com/tds-fdw/tds_fdw/zip/refs/heads/master
正在解析主机 codeload.github.com (codeload.github.com)... 20.205.243.165
正在连接 codeload.github.com (codeload.github.com)|20.205.243.165|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:未指定 [application/zip]
正在保存至: “master.zip”

master.zip                                  [    <=>                                                                         ] 127.58K   153KB/s  用时 0.8s

2024-07-25 13:32:15 (153 KB/s) - “master.zip” 已保存 [130641]

[postgres16@Server install]$

2.3、解压安装包

[postgres16@Server install]$ unzip master.zip
Archive:  master.zip
a694e823f3df2a3fd8f56744461ea4fe4338d8ea
   creating: tds_fdw-master/
  inflating: tds_fdw-master/.gitattributes
   creating: tds_fdw-master/.github/
  inflating: tds_fdw-master/.github/ISSUE_TEMPLATE.md
  inflating: tds_fdw-master/.gitignore
  inflating: tds_fdw-master/ForeignSchemaImporting.md
  inflating: tds_fdw-master/ForeignServerCreation.md
  inflating: tds_fdw-master/ForeignTableCreation.md
  inflating: tds_fdw-master/InstallAlpine.md
  inflating: tds_fdw-master/InstallDebian.md
  inflating: tds_fdw-master/InstallOSX.md
  inflating: tds_fdw-master/InstallRHELandClones.md
  inflating: tds_fdw-master/InstallUbuntu.md
  inflating: tds_fdw-master/InstallopenSUSE.md
  inflating: tds_fdw-master/LICENSE
  inflating: tds_fdw-master/META.json
  inflating: tds_fdw-master/Makefile
  inflating: tds_fdw-master/README.md
  inflating: tds_fdw-master/UserMappingCreation.md
  inflating: tds_fdw-master/Variables.md
   creating: tds_fdw-master/include/
  inflating: tds_fdw-master/include/deparse.h
  inflating: tds_fdw-master/include/options.h
  inflating: tds_fdw-master/include/tds_fdw.h
  inflating: tds_fdw-master/include/visibility.h
   creating: tds_fdw-master/logo/
  inflating: tds_fdw-master/logo/tds_fdw.svg
   creating: tds_fdw-master/sql/
  inflating: tds_fdw-master/sql/tds_fdw.sql
   creating: tds_fdw-master/src/
  inflating: tds_fdw-master/src/deparse.c
  inflating: tds_fdw-master/src/options.c
  inflating: tds_fdw-master/src/tds_fdw.c
  inflating: tds_fdw-master/tds_fdw--2.0.1--2.0.2.sql
  inflating: tds_fdw-master/tds_fdw--2.0.2--2.0.3.sql
  inflating: tds_fdw-master/tds_fdw.control
   creating: tds_fdw-master/tests/
 extracting: tds_fdw-master/tests/.gitignore
  inflating: tds_fdw-master/tests/README.md
   creating: tds_fdw-master/tests/lib/
 extracting: tds_fdw-master/tests/lib/__init__.py
  inflating: tds_fdw-master/tests/lib/messages.py
  inflating: tds_fdw-master/tests/lib/tests.py
  inflating: tds_fdw-master/tests/mssql-tests.py
  inflating: tds_fdw-master/tests/postgresql-tests.py
   creating: tds_fdw-master/tests/tests/
   creating: tds_fdw-master/tests/tests/mssql/
  inflating: tds_fdw-master/tests/tests/mssql/000_create_schema.json
  inflating: tds_fdw-master/tests/tests/mssql/000_create_schema.sql
  inflating: tds_fdw-master/tests/tests/mssql/001_create_tinyint_min_table.json
  inflating: tds_fdw-master/tests/tests/mssql/001_create_tinyint_min_table.sql
  inflating: tds_fdw-master/tests/tests/mssql/002_create_tinyint_max_table.json
  inflating: tds_fdw-master/tests/tests/mssql/002_create_tinyint_max_table.sql
  inflating: tds_fdw-master/tests/tests/mssql/003_create_smallint_min_table.json
  inflating: tds_fdw-master/tests/tests/mssql/003_create_smallint_min_table.sql
  inflating: tds_fdw-master/tests/tests/mssql/004_create_smallint_max_table.json
  inflating: tds_fdw-master/tests/tests/mssql/004_create_smallint_max_table.sql
  inflating: tds_fdw-master/tests/tests/mssql/005_create_int_min_table.json
  inflating: tds_fdw-master/tests/tests/mssql/005_create_int_min_table.sql
  inflating: tds_fdw-master/tests/tests/mssql/006_create_int_max_table.json
  inflating: tds_fdw-master/tests/tests/mssql/006_create_int_max_table.sql
  inflating: tds_fdw-master/tests/tests/mssql/007_create_bigint_min_table.json
  inflating: tds_fdw-master/tests/tests/mssql/007_create_bigint_min_table.sql
  inflating: tds_fdw-master/

你可能感兴趣的:(postgresql,sqlserver,数据库)