Selama ini, DuckDB jadi jagoan buat baca data cepat (query engine). Tapi kalau mau tulis atau update data ke format Apache Iceberg, kita biasanya harus balik lagi ke engine berat kayak Spark atau Trino.
Ada kabar gembira! DuckDB baru saja merilis update dukungan Writes di ekstensi Iceberg. Ini artinya kamu bisa INSERT, UPDATE, dan MERGE data langsung dari laptopmu!
1. ⚠️ Problem Statement (Masalah)
Ribetnya Stack Data: Buat sekadar update satu tabel di Data Lake, engineer harus spin up cluster Spark yang mahal dan lama.
Read-Only Limitation: Dulu DuckDB cuma bisa baca Iceberg. Kalau mau ETL ringan (Extract-Transform-Load) di lokal, workflow-nya jadi terputus.
Ketergantungan Infrastruktur: Terlalu bergantung pada JVM-based engine yang memakan memori besar cuma buat operasi data sederhana.
2. 🛠️ Metodologi & Solusi DuckDB memperbarui ekstensi iceberg dengan kemampuan Write Support.
Direct Writes: Mendukung perintah SQL standar (INSERT, UPDATE, MERGE, DELETE) langsung ke tabel Iceberg.
Catalog Integration: Bisa terhubung dengan Iceberg REST Catalogs (seperti Polaris, Unity Catalog) dan AWS Glue untuk manajemen metadata yang rapi.
ACID Transactions: Tetap menjaga integritas data sesuai standar Iceberg (atomic commit), jadi aman dipakai di production pipeline.
3. 📈 Findings & Fitur Kunci
⚡ Ringan & Cepat: Kamu bisa melakukan operasi ETL/ELT di laptop atau CI/CD pipeline tanpa butuh cluster Spark. Cukup satu binary DuckDB.
☁️ Cloud Native: Mendukung penulisan ke object storage (S3, Azure Blob, GCS) secara efisien dengan partisi otomatis (Partitioned Writes).
🔄 Interoperabilitas: Data yang ditulis DuckDB bisa langsung dibaca oleh engine lain (Spark, Trino, Snowflake) karena formatnya standar terbuka.
4. 💡 Key Takeaways
DuckDB is a Data Lakehouse Engine: Bukan cuma buat analisis lokal, sekarang DuckDB bisa jadi “worker” yang tangguh untuk memanipulasi data di Data Lake.
Simplifikasi Pipeline: Buat data engineer, ini game changer. Skrip transformasi data bisa jadi jauh lebih sederhana dan murah.
Local Development: Ngetes write logic Iceberg di lokal jadi super gampang sebelum deploy ke cloud.
💻 How to Use (Cara Pakai)
Pastikan kamu update DuckDB ke versi terbaru, lalu:
1. Install & Load Extension:INSTALL iceberg;
LOAD iceberg;
2. Koneksi ke Katalog (Contoh REST):CREATE SECRET my_catalog (
TYPE ICEBERG,
CATALOG_TYPE 'rest',
URI 'https://api.tabular.io/ws/...',
CREDENTIAL 'client:secret'
);
3. Tulis Data (Insert):INSERT INTO my_catalog.db.tabel_saya
SELECT * FROM 'data_baru.csv';
🔗 Baca Dokumentasi Lengkapnya: https://duckdb.org/docs/extensions/iceberg
#DuckDB #ApacheIceberg #DataEngineering #DataLakehouse #ETL #SQL #OpenSource #BigData #TechNews