19 poin oleh GN⁺ 2024-05-31 | 2 komentar | Bagikan ke WhatsApp
  • DuckDB dapat berfungsi seperti database meskipun data sebenarnya tidak disimpan secara internal di dalam database
  • Data disimpan di penyimpanan terpisah, dan database bekerja dengan cara mereferensikannya
  • File database tidak berisi data aktual, melainkan hanya instruksi tentang cara memproses data

Contoh: layanan robotaxi

  • Penjelasan situasi: Dalam layanan robotaxi, ada kebutuhan untuk membagikan data yang dihasilkan setiap hari kepada para analis.
  • Masalah: Datanya terlalu besar untuk dikirim lewat email, dan membagikannya lewat tautan juga rumit.
  • Solusi: Gunakan DuckDB untuk membuat file database lalu membagikannya.
# 데이터베이스 생성  
import duckdb  
db = duckdb.connect("weird_rides.db")  
db.sql("""  
    CREATE VIEW weird_rides  
    AS SELECT pickup_at, dropoff_at, trip_distance, total_amount  
    FROM 's3://robotaxi-inc/daily-ride-data/*.parquet'  
    WHERE fare_amount > 100 AND trip_distance < 10.0  
""")  
db.close()  
  • Hasil: File weird_rides.db tidak memuat data aktual, tetapi berisi instruksi tentang cara memproses data.
  • Cara berbagi: Unggah file ini ke blob storage lalu bagikan tautannya.

Akses data

  • Koneksi database: Penerima memulai sesi DuckDB lokal lalu terhubung ke file database yang dibagikan.
# 데이터베이스 연결  
import duckdb  
conn = duckdb.connect()  
conn.sql("""  
    ATTACH 's3://robotaxi-inc/virtual-datasets/weird_rides.db'  
    AS rides_db (READ_ONLY)  
""")  
conn.sql("SELECT * FROM rides_db.weird_rides LIMIT 5")  
  • Unduh data: Saat kueri dijalankan, hanya data yang diperlukan yang diunduh dari S3.
  • Pemrosesan data yang efisien: Hanya kolom yang diperlukan yang dibaca, dan filter diterapkan untuk menyingkirkan data yang tidak perlu.

Kelebihan DuckDB

  • Tahan terhadap perubahan: Meski format data, strategi partisi, atau skema berubah, cara penerima mengakses data tetap tidak berubah.
  • Browser data cloud: Dengan DuckDB, dataset relasional bisa diakses dengan mudah melalui hyperlink.

2 komentar

 
yangeok 2024-06-05

Oh, kalau di data besar hanya ada katalog data kecil dan path yang akurat, mungkin bisa sedikit menghemat resource server juga ya, hehe

 
GN⁺ 2024-05-31
Opini Hacker News
  • DuckDB dan duckdb-wasm digunakan untuk menangani lembar respons dari SaaS pembuat formulir secara efisien: data respons disimpan di S3, lalu di sisi klien di-query ke DB lokal melalui duckdb-wasm untuk mengoptimalkan penggunaan jaringan dan memori.

  • Pengenalan MotherDuck: data warehouse DuckDB terkelola tanpa server, yang menyediakan clone tanpa salin, secure sharing, mode hibrida dengan data cloud, dan lainnya.

  • Mengintegrasikan DuckDB ke editor SQL qStudio: mendukung join dengan berbagai database, dan direkomendasikan sebagai IDE yang bagus untuk mulai memakai DuckDB.

  • Usulan penyediaan data melalui tautan S3: mempertanyakan nilai database dan view perantara, serta berargumen bahwa akan lebih efisien jika analis data menangani data mentah secara langsung.

  • Pengenalan Data Tap: solusi yang menyematkan DuckDB ke fungsi Lambda dan menyimpan data ke S3 dalam format Parquet, dengan penekanan pada efisiensi biaya dan skalabilitas.

  • Kebingungan tentang pendekatan akses data: dijelaskan bahwa data engineer cenderung menghindari pra-agregasi, sementara analis data cenderung lebih menyukai akses ke data mentah.

  • Tanggapan terhadap klaim bahwa sebagian besar database tidak berisi data: menganggap klaim tersebut berlebihan.

  • Usulan cara mengirim kueri SQL lewat email kepada rekan kerja: mempertanyakan kelebihan file database biner.

  • Keraguan tentang kegunaan alat SQL baru: merasa bahwa menyimpan data di data warehouse permanen dan membuat view yang diperlukan adalah pendekatan yang lebih tepat.

  • Kemiripan dengan Presto/Trino: ada pendapat bahwa pendekatan DuckDB terasa mirip dengan Presto/Trino.