Steps melakukan setup FDW dari Mssql to Postgres :
# Persyaratan sebelum setup
1. Pastikan koneksi antara MsSQL dan PostgreSQL terkoneksi dan tidak ada Firewal yang melakukan blocking pada port database dari PostgreSQL to MsSQL.
# Disisi MsSQL yang perlu dilakukan :
1. Siapkan user dan list tabel yang akan di fdw kan.
Sebagai contoh saya menggunakan
- User : SA
- Port : 1433
- Database : mssql_testing
Contoh tabel yang akan di daftarkan :
- Tabel dengan nama "mhs_table" (nim int, nama varchar, alamat varchar)
CREATE TABLE mssql_testing.dbo.mhs_table (
id int NULL,
nama varchar(100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
alamat varchar(100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
);
INSERT INTO mssql_testing.dbo.mhs_table (id,nama,alamat) VALUES
(18101,N'indroid',N'Jakarta'),
(18102,N'raw',N'Tanggerang'),
(18103,N'waldi',N'Riau'),
(18104,N'ubuy',N'Ciamis');
Note : jika user yang digunakan bukan menggunakan super user pastikan user tersebut sudah diberikan hak akses pada tabel yang akan di fdwkan (GRANT).
# Disisi PostgreSQL yang perlu dilakukan :
Persiapan :
1. Install dependensi berikut :
$ sudo apt install freetds-devel freetds-doc freetds-common libsybdb52. Download tds_fdw disini kemudian install
extract file yang sudah di download
cd tds_fwdSesuai path binary PostgreSQL kalian.
sudo PATH=/usr/pgsql-11.5/bin:$PATH make USE_PGXS=1
CREATE EXTENSION tds_fdw;
- Membuat koneksi ke mssql
CREATE SERVER mssql_conn FOREIGN DATA WRAPPER tds_fdw OPTIONS (servername '127.0.0.1', port '1433', database 'mssql_testing', tds_version '7.1');
Note: karena server nya di lokal jadi servernamanya ke lokal kalau beda server tinggal sesuaikan saja IP nya.
- Membuat user mapping yang digunakan untuk tabel fdw nya.
CREATE USER MAPPING FOR pgsql SERVER mssql_conn OPTIONS (username 'sa',password 'xxxxxxxxx');
- Membuat tabel FDW
CREATE FOREIGN TABLE mhs_table (id int, nama varchar, alamat varchar) SERVER mssql_conn OPTIONS ( table_name 'dbo.mhs_table', row_estimate_method 'showplan_all' );
Note: nama tabel harus sama dan bisa membuat kolom yang akan di pilih saja, namun nama kolom dan type kolom harus sama dengan source
Note:
- hitam = syntax
- biaru = paramter
Berikut hasilnya :
0 komentar
EmoticonEmoticon