Cara Cross Database Query Menggunakan Postgres FDW Extension - Java Community

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');

Tahap 3

Membuat User Mapping
CREATE 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
Hasilnya
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.

Copyrighted.com Registered & Protected

Subscribe to receive free email updates:

0 Response to "Cara Cross Database Query Menggunakan Postgres FDW Extension"

Posting Komentar