Snowflake Open Source pg_lake: Postgres Bertemu Data Lakes dengan Dukungan Iceberg

Tim Komunitas BigGo
Snowflake Open Source pg_lake: Postgres Bertemu Data Lakes dengan Dukungan Iceberg

Dalam langkah mengejutkan yang menciptakan gebrakan signifikan di komunitas database, Snowflake telah mengopen-source-kan pg_lake, sebuah ekstensi PostgreSQL yang membawa kemampuan Apache Iceberg dan data lake langsung ke dalam database open-source paling populer di dunia. Rilis ini merepresentasikan pergeseran besar dalam cara organisasi mendekati arsitektur data mereka, berpotensi menghilangkan pipeline ETL yang kompleks sambil mempertahankan konsistensi transaksional di seluruh workload operasional dan analitis.

Waktu rilis ini sangat patut dicatat - datang hanya beberapa bulan setelah akuisisi Snowflake terhadap Crunchy Data pada Juni 2025, dan mengikuti akuisisi Databricks terhadap tim pg_mooncake yang bersaing. Lanskap database jelas memanas dengan vendor-vendor besar bertaruh besar pada masa depan PostgreSQL di ruang data lake.

Menjembatani Workload Operasional dan Analitis

Inovasi inti dari pg_lake terletak pada kemampuannya untuk membuat PostgreSQL berfungsi sebagai database operasional tradisional dan sistem lakehouse secara bersamaan. Developer dapat membuat dan memodifikasi tabel Iceberg langsung dari PostgreSQL dengan jaminan transaksional ACID penuh, lalu meng-query tabel yang sama dari engine lain seperti Spark. Ini menghilangkan friksi tradisional antara sistem operasional dan pemrosesan analitis.

Yang membuat ini sangat powerful adalah model eksekusi hybrid. Sementara pengguna terhubung dan berinteraksi dengan PostgreSQL standar, sistem secara transparan mendelegasikan query analitis yang intensif komputasi ke engine eksekusi DuckDB yang sangat paralel dan berorientasi kolom melalui proses pgduck_server terpisah. Arsitektur ini menghindari batasan threading dan memory-safety yang akan muncul dari menanamkan DuckDB langsung dalam desain terisolasi-proses PostgreSQL.

Transaksi tidak datang dengan gratis. Menanamkan engine dalam katalog daripada katalog dalam engine memungkinkan transaksi di seluruh tabel analitis dan operasional.

Perbandingan Arsitektur:

  • pg_lake: Frontend PostgreSQL + backend DuckDB
  • DuckLake: Frontend DuckDB + katalog PostgreSQL
  • pg_mooncake: PostgreSQL dengan pendekatan arsitektur yang berbeda (diakuisisi oleh Databricks)

Aplikasi Praktis dan Antusiasme Developer

Respons komunitas telah sangat positif, dengan developer segera mengenali aplikasi praktis yang dapat sangat menyederhanakan stack data kami untuk b2b saas seperti yang dicatat seorang komentator. Kemampuan menggunakan alat dan sintaks PostgreSQL yang familiar untuk operasi data lake merepresentasikan pengurangan kompleksitas yang signifikan bagi banyak organisasi.

Beberapa fitur kunci menonjol sebagai sangat berharga: dukungan perintah COPY untuk mengekspor hasil query langsung ke S3 dalam format Parquet, CSV, atau JSON; inferensi skema otomatis dari sumber data eksternal; dan kemampuan untuk menggabungkan tabel heap tradisional, tabel Iceberg, dan file eksternal dalam query yang sama. Seorang developer mengungkapkan kegembiraan tentang kemampuan untuk secara berkala memindahkan data dari Postgres ke data lake house yang dipartisi dengan query tunggal - tugas yang sebelumnya membutuhkan utilitas kustom.

Format File yang Didukung:

  • Input: Parquet, CSV, JSON, Iceberg, GeoJSON, Shapefiles
  • Output: Parquet, CSV, JSON
  • Kompresi: gzip, zstd didukung secara transparan
  • Penyimpanan: S3 dan object store yang kompatibel

Lanskap Kompetitif dan Implikasi Strategis

Open-sourcing pg_lake memposisikannya langsung melawan solusi-solusi emerging lainnya seperti DuckLake dan pg_mooncake, masing-masing mengambil pendekatan arsitektural yang sedikit berbeda. Sementara DuckLake menggunakan DuckDB sebagai primary query engine dengan PostgreSQL sebagai katalog, pg_lake membalik model ini - menggunakan PostgreSQL sebagai frontend dengan DuckDB sebagai backend komputasional.

Rilis ini memunculkan pertanyaan menarik tentang strategi Snowflake, mengingat pg_lake berpotensi mengkannibalisasi produk utama mereka. Namun, seperti yang dicatat seorang pengamat, Snowflake telah menunjukkan komitmen nyata terhadap self-cannibalization dengan menjadi pendukung awal Iceberg meskipun ada potensi disruptif. Langkah ini tampaknya menjadi bagian dari tren lebih luas di mana vendor platform data utama merangkul format tabel terbuka sambil bersaing di lapisan komputasi.

Kesiapan Produksi dan Arah Masa Depan

Yang membedakan pg_lake dari beberapa solusi pesaing adalah kematangannya. Teknologi ini telah diuji dalam produksi sebagai Crunchy Data Warehouse sebelum akuisisi, dan tim di belakangnya memiliki pengalaman ekstensif membangun ekstensi PostgreSQL tingkat produksi seperti Citus dan pg_cron. Pengalaman ini terlihat dalam fitur set yang komprehensif, termasuk dukungan SQL penuh, penanganan transaksi, dan kemampuan untuk push down fragmen query yang sesuai ke DuckDB.

Arsitektur modular - terdiri dari beberapa ekstensi yang saling beroperasi daripada satu codebase monolitik - menyarankan pendekatan yang matang untuk maintainability jangka panjang. Keterbatasan saat ini seputar dukungan tabel Iceberg eksternal dan kontrol akses terperinci diakui, dengan dukungan katalog REST baru saja digabungkan dan lebih banyak fitur kemungkinan datang mengingat pengembangan aktif proyek.

Komponen Utama pg_lake:

  • pg_lake.iceberg: Mengimplementasikan spesifikasi Iceberg untuk PostgreSQL
  • pg_lake.table: Foreign data wrapper untuk melakukan query pada file object storage
  • pg_lake.copy: Mengimplementasikan fungsi COPY ke/dari data lake
  • pg_lake.engine: Modul umum untuk ekstensi pg_lake
  • pgduck_server: Proses terpisah yang menjalankan DuckDB dengan protokol wire PostgreSQL
  • duckdb_pglake: Ekstensi DuckDB yang menambahkan fungsi-fungsi kompatibel dengan PostgreSQL

Era Baru PostgreSQL

Rilis pg_lake merepresentasikan tonggak sejarah lain dalam apa yang banyak disebut sebagai era keemasan PostgreSQL. Seiring organisasi semakin mencari untuk mengkonsolidasikan infrastruktur data mereka dan mengurangi kompleksitas, solusi yang memperluas kemampuan PostgreSQL ke domain baru mendapatkan daya tarik signifikan. Kemampuan menangani workload transaksional volume tinggi dan query analitis dalam sistem familiar yang sama sangat menarik bagi organisasi menengah di mana Snowflake mungkin berlebihan tetapi PostgreSQL biasa tidak mencukupi.

Bagi developer dan data engineer, pg_lake menawarkan jalang menarik untuk menyederhanakan arsitektur data tanpa mengorbankan kemampuan. Seiring ekosistem terus berkembang, garis antara database operasional, data warehouse, dan data lake menjadi semakin kabur - dan PostgreSQL tampaknya siap memainkan peran sentral dalam konvergensi ini.

Referensi: pg_lake: Postgres untuk Iceberg dan Data lakes