tds_fdwのインストール
Installing on CentOSのページを見てインストールしました。
EPELをインストール
yum install epel-release
TDSをインストール
yum install freetds freetds-devel
alpha版を除くと20180528現在は1.08が最新でした。2016のだけど。
export TDS_FDW_VERSION="1.0.8"
PostgreSQLはバージョン9.6にしています。
export POSTGRES_VERSION="9.6"
wget https://github.com/tds-fdw/tds_fdw/archive/v${TDS_FDW_VERSION}.tar.gz -O tds_fdw-${TDS_FDW_VERSION}.tar.gz tar -xvzf tds_fdw-${TDS_FDW_VERSION}.tar.gz cd tds_fdw-${TDS_FDW_VERSION} PATH=/usr/pgsql-{POSTGRES_VERSION}/bin:$PATH make USE_PGXS=1 sudo PATH=/usr/pgsql-{POSTGRES_VERSION}/bin:$PATH make USE_PGXS=1 install
\dxでインストールしたEXTENSIONを確認出来ます。
続いてpostgresの設定です。
psqlで作業します。
postgres=# create extension tds_fdw; CREATE EXTENSION
servernameはsql serverがインストールされているサーバを適宜記載
postgres=# create server TDS_TestDB foreign data wrapper tds_fdw options (servername 'localhost', port '1433', database 'TestDB', tds_version '4.2', character_set 'UTF-8'); CREATE SERVER
grantする
postgres=# grant usage on foreign server TDS_TestDB to postgres; GRANT
sql serverの情報を記載
postgres=# create user mapping for postgres server TDS_TestDB options (username 'sa', password 'password'); CREATE USER MAPPING
sql serverのほうはMicroSoftのページの情報でテーブルを作っているとするとPostgreSQL側では下記の指定になります。
create foreign table t1 (id integer, name VARCHAR(50), quantity integer) server TDS_TestDB options (table 'Inventory');
下記サイトを参考にしました。
tdsのインストール
https://github.com/tds-fdw/tds_fdw
PostgreSQLの設定
https://www.openscg.com/bigsql/docs/tds_fdw/
MicroSoft
https://docs.microsoft.com/ja-jp/sql/linux/quickstart-install-connect-red-hat?view=sql-server-linux-2017