Cara Cross Database Query Menggunakan Postgres FDW Extension
Pada artikel sebelumnya saya membuat tutorial tentang cara melakukan query cross database menggunakan DBLink Extension. Namun sekarang kita akan mencoba melakukan cross query database juga menggunakan Postgres FDW Extension. Postgres FDW Extension dapat digunakan untuk mengakses data yang tersimpan di server eksternal PostgreSQL.
Sebagai contoh, saya memiliki 2(dua) database yaitu produk_DB dan kategori_DB. Pada database produk_DB saya ingin melakukan JOIN atau penggabungan data dari tabel produk yang terdapat di database produk_DB dengan tabel kategori yang terdapat di database kategori_DB. Untuk melakukan hal itu diperlukan Postgres FDW Extention.
Membuat Database kategori_DB
CREATE DATABASE kategori_DB;
Membuat Tabel kategori
CREATE TABLE kategori ( masterkey bigserial, nama_kategori character varying(255), CONSTRAINT kategori_pk PRIMARY KEY (masterkey) );
INSERT INTO kategori(masterkey, nama_kategori) VALUES (1, 'Smartphone'); INSERT INTO kategori(masterkey, nama_kategori) VALUES (2, 'Laptop'); INSERT INTO kategori(masterkey, nama_kategori) VALUES (3, 'Notebook'); INSERT INTO kategori(masterkey, nama_kategori) VALUES (4, 'Tablet');
Membuat Database produk_DB
CREATE DATABASE produk_DB;
Membuat Tabel produk
CREATE TABLE produk ( masterkey bigserial, idkategori bigserial, nama_produk character varying(255), CONSTRAINT produk_pk PRIMARY KEY (masterkey) );
INSERT INTO produk(masterkey, idkategori, nama_produk) VALUES (1, 4, 'Asus Zendphone'); INSERT INTO produk(masterkey, idkategori, nama_produk) VALUES (2, 2, 'Asus ROG'); INSERT INTO produk(masterkey, idkategori, nama_produk) VALUES (3, 3, 'Toshiba Satelite'); INSERT INTO produk(masterkey, idkategori, nama_produk) VALUES (4, 1, 'Lenovo'); INSERT INTO produk(masterkey, idkategori, nama_produk) VALUES (5, 1, 'Apple X'); INSERT INTO produk(masterkey, idkategori, nama_produk) VALUES (6, 2, 'MSI Gaming'); INSERT INTO produk(masterkey, idkategori, nama_produk) VALUES (7, 1, 'Nokia 6.1 Pro');
Berikut ini 5 tahapan bagaimana cara install Postgres FDW extension dan penerapannya di Postgresql :
Tahap 1
Install atau Membuat Postgres FDW Extention.CREATE EXTENSION postgres_fdw;
Tahap 2
Membuat Server Connection.CREATE SERVER server_kategori FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'localhost', dbname 'kategori_DB', port '5432');
BACA JUGA
Tahap 3
Membuat User MappingCREATE USER MAPPING FOR postgres SERVER server_kategori OPTIONS (user 'postgres', password 'postgres');
Tahap 4
Melakukan Import Data
IMPORT FOREIGN SCHEMA public FROM SERVER server_kategori INTO public;
Testing
Saya akan melakukan query join di database produk_DB antara tabel produk yang berada di database produk_DB dengan tabel kategori yang berada di database kategori_DB, perhatikan query berikut :
SELECT p.masterkey, nama_produk, nama_kategori FROM produk p LEFT JOIN kategori k ON p.idkategori = k.masterkey ORDER BY masterkey
masterkey | nama_produk | nama_kategori |
1 | Asus Zendphone | Tablet |
2 | Asus ROG | Laptop |
3 | Toshiba Satelite | Notebook |
4 | Lenovo | Smartphone |
5 | Apple X | Smartphone |
6 | MSI Gaming | Laptop |
7 | Nokia 6.1 Pro | Smartphone |
Sekian tutorial cara melakukan query cross database meanggunakan Postgres FDW Extension di postgresql. Semoga bermanfaat.
0 Response to "Cara Cross Database Query Menggunakan Postgres FDW Extension"
Posting Komentar