Cara Menggunakan PostgreSQL : Foreign Data Wrapper

Postgres_fdw (foreign data wrapper) merupakan salah satu modul milik PostgreSQL yang memungkinkan kita untuk dapat mengakses data pada database PostgreSQL yang lain (baik sesama local database maupun remote database). Postgres_fdw memungkinkan kita untuk mendapatkan refference tabel yang berada pada database lainnya, sehingga seakan-akan tabel tersebut terdapat pada database project yang sedang kita kerjakan.

 

Kapan saat yang tepat untuk menggunakannya?

 
postgres_fdw baik digunakan tentu saja untuk mengakses data pada tabel yang ada di database lain. Terutama jika kita sering melakukan query yang melibatkan database lain.

 

4 Langkah mudah menggunakan postgres_fdw

  1. Install postgres_fdw Extension
    Mula-mula kita harus meng-install extension postgres_fdw pada database tempat kita mengerjakan project. Hal ini dapat dilakukan dengan perintah CREATE EXTENTION. Contoh penggunaannya adalah sebagai berikut:CREATE EXTENSION postgres_fdw;
  2. Membuat Foreign Server
    langkah selanjutnya adalah membuat foreign server yang akan menjadi refference untuk server dari database lain yang datanya ingin kita ambil. Hal ini dapat dilakukan dengan menggunakan perintah CREATE SERVER. Berikut adalah contoh penggunaannya:CREATE SERVER server_lain FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host ‘10.12.3.125’, dbname ‘database_lain’, port ‘1234’);

    Dengan perintah ini, kita membuat foreign server yang bernama server_lain yang memiliki alamat 10.12.3.125 dan port 1234, serta kita mengakses database_lain yang menyimpan data yang ingin kita ambil.

  3. Membuat User Mapping
    langkah selanjutnya adalah membuat user mapping untuk menentukan user mana saja yang dapat menggunakan foreign server yang sudah kita buat. Hal ini dapat dilakukan dengan menggunakan perintah CREATE USER MAPPING. Contoh penggunaannya adalah sebagai berikut:CREATE USER MAPPING FOR nama_user SERVER server_lain OPTIONS (user ‘nama_user’, password ‘password_user’);

    Dengan ini, kita mengizinkan nama_user untuk dapat mengakses foreign server yang sudah dibuat sebelumnya.

  4. Membuat Foreign Table
    Terakhir, kita membuat foreign tabel tempat data yang ingin diakses berada. Hal ini dapat dilakukan dengan menggunakan perintah CREATE FOREIGN TABLE. Seumpama kita ingin mengambil data pada tabel pegawai (terdiri dari id, nama, dan divisi) yang ada di database_lain, maka syntaxnya adalah sebagai berikut:CREATE FOREIGN TABLE pegawai (
    id integer NOT NULL,
    nama varchar NOT NULL,
    divisi varchar NOT NULL
    )
    SERVER server_lain;

Akhirnya foreign table pegawai sudah selesai dibuat! jika kita ingin mengakses data pada tabel tersebut, kita hanya perlu query biasa seperti halnya mengakses data pada database yang sedang dikerjakan. Jika data pada tabel pegawai yang berada pada server lain diupdate, maka foreign table yang telah dibuat juga akan mendapatkan update datanya secara otomatis.

 

Bagaimana postgres_fdw dapat mengganti db_link

 
Modul postgres_fdw sebenarnya memiliki fungsi yang mirip dengan db_link. Namun, penggunaan db_link dilakukan setiap kali kita melakukan query. Maka dari itu akan lebih praktis jika kita sudah melakukan implementasi foreign data satu kali saja. Selain itu, kita juga dapat menghasilkan query yang lebih simple, terutama jika kita melibatkan tabel dengan banyak dimensi.

 

Meskipun demikian, pengubahan data pada foreign table juga akan mempengaruhi data yang ada pada database lain. maka dari itu kita harus berhati – hati dalam melakukan akses ke tabel tersebut, dan disarankan agar foreign table hanya digunakan untuk akses data saja(YEC).

Cara Menggunakan PostgreSQL : Foreign Data Wrapper

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s