Mengapa Integrasi S3 Penting?
Banyak organisasi menyimpan data dalam Amazon S3 atau penyimpanan cloud serupa. Dengan kemampuan DCloud Datamart untuk memuat data langsung dari S3, pengguna dapat menganalisis data besar secara efisien tanpa perlu proses ETL tambahan.
Dukungan Format
- CSV: Format teks sederhana yang umum digunakan
- Parquet: Format kolumnar terkompresi yang lebih optimal untuk analitik
Apa Itu Foreign Table?
Foreign table adalah fitur PostgreSQL yang memungkinkan Anda mengakses data eksternal seolah-olah data tersebut merupakan bagian dari database lokal. DCloud Datamart menggunakan foreign table untuk membaca file di S3.
Memuat Data CSV dari S3
Untuk memuat data CSV dari S3, Anda perlu mengikuti langkah-langkah berikut:
- Buat Server : Definisikan wrapper
-- Buat server untuk file CSV CREATE SERVER multicorn_s3 FOREIGN DATA WRAPPER multicorn OPTIONS ( wrapper 's3fdw.s3fdw.S3Fdw' ); - Buat Foreign Table : Definisikan foreign table (tabel eksternal) yang memetakan ke file S3
-- Buat foreign table untuk file CSV create foreign table csv_sales ( id int, email text ) server multicorn_s3 options ( aws_access_key '...', aws_secret_key '...', bucket '...', filename 'data.csv', -- Parameter opsional endpoint 'https://s3.dcloud.co.id', delimiter ',' ); - Query Foreign Table : Anda sekarang dapat melakukan kueri pada foreign table (tabel eksternal) seolah-olah itu adalah tabel biasa.
-- Daftar foreign tables select * from information_schema.foreign_tables; -- Lakukan kueri pada foreign tables CSV SELECT * FROM csv_sales;
Memuat Data Parquet dari S3
Untuk memuat data Parquet dari S3, Anda perlu mengikuti langkah-langkah berikut:
- Buat Server : Definisikan wrapper
-- Buat server untuk file Parquet CREATE SERVER parquet_s3_srv FOREIGN DATA WRAPPER parquet_s3_fdw OPTIONS ( -- amazon s3 region '...' -- s3-compatible endpoint 'https://s3.dcloud.co.id' ); - Buat Mapping Pengguna: Definisikan kunci akses S3 dan kunci rahasia sebagai nama pengguna dan kata sandi.
CREATE USER MAPPING FOR CURRENT_USER SERVER parquet_s3_srv OPTIONS ( -- access key user '...', -- secret key password '...' ); - Buat Foreign Table (tabel eksternal): Definisikan foreign table (tabel eksternal) yang memetakan ke file S3
-- Buat foreign tabel untuk file Parquet CREATE FOREIGN TABLE userdata ( id int, name text, ) SERVER parquet_s3_srv OPTIONS ( dirname 's3://.../sample-data' ); - Query Foreign Table (tabel eksternal) : Anda sekarang dapat melakukan kueri pada foreign table (tabel eksternal) seolah-olah itu adalah tabel biasa.
-- Daftar foreign tables select * from information_schema.foreign_tables; -- Kueri pada Parquet foreign table. SELECT * FROM parquet_sales;