19 puan yazan GN⁺ 2024-05-31 | 2 yorum | WhatsApp'ta paylaş
  • DuckDB, veriler gerçekte veritabanının içinde saklanmasa bile bir veritabanı gibi çalışabiliyor
  • Veriler ayrı bir depoda tutuluyor ve veritabanı bunlara referans vererek çalışıyor
  • Veritabanı dosyası gerçek veriyi içermiyor; yalnızca verinin nasıl işleneceğine dair talimatları içeriyor

Örnek: robotaksi hizmeti

  • Durum açıklaması: Bir robotaksi hizmetinde her gün üretilen verilerin analistlerle paylaşılması gerekiyor.
  • Sorun: Veri çok büyük olduğu için e-postayla göndermek zor, bağlantıyla paylaşmak da karmaşık.
  • Çözüm: DuckDB kullanılarak bir veritabanı dosyası oluşturuluyor ve bu dosya paylaşılıyor.
# 데이터베이스 생성  
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()  
  • Sonuç: weird_rides.db dosyası gerçek veriyi içermiyor, ancak verinin nasıl işleneceğine dair talimatları içeriyor.
  • Paylaşım yöntemi: Bu dosya blob depolamaya yükleniyor ve bağlantı paylaşılıyor.

Veriye erişim

  • Veritabanına bağlanma: Alıcı, yerel bir DuckDB oturumu başlatıp paylaşılan veritabanı dosyasına bağlanıyor.
# 데이터베이스 연결  
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")  
  • Veri indirme: Sorgu çalıştırıldığında yalnızca gereken veriler S3'ten indiriliyor.
  • Verimli veri işleme: Yalnızca gerekli sütunlar okunuyor ve filtre uygulanarak gereksiz veriler dışarıda bırakılıyor.

DuckDB'nin avantajları

  • Değişikliklere dayanıklı: Veri biçimi, partitioning stratejisi veya şema değişse bile alıcının veriye erişim yöntemi değişmiyor.
  • Veri bulutu tarayıcısı: DuckDB sayesinde ilişkisel veri kümelerine hiperlinkler üzerinden kolayca erişilebiliyor.

2 yorum

 
yangeok 2024-06-05

Büyük veri içinde küçük verinin yalnızca kataloğu ve doğru yolu varsa, sunucu kaynaklarından biraz tasarruf etmek de mümkün olabilir sanırım haha

 
GN⁺ 2024-05-31
Hacker News görüşleri
  • DuckDB ve duckdb-wasm kullanarak form oluşturucu SaaS'ın yanıt sayfalarını verimli şekilde işleme: Yanıt verilerini S3'te depolayıp istemci tarafında duckdb-wasm ile yerel veritabanı olarak sorgulayarak ağ ve bellek kullanımını optimize ediyor.

  • MotherDuck tanıtımı: Sunucusuz yönetilen bir DuckDB veri ambarı; sıfır kopya klonlama, güvenli paylaşım ve bulut verileriyle hibrit mod gibi özellikler sunuyor.

  • DuckDB'yi qStudio SQL editörüne entegre etme: Çeşitli veritabanlarıyla join işlemlerini destekliyor ve DuckDB'ye başlamak için iyi bir IDE olarak öneriliyor.

  • S3 bağlantıları üzerinden veri sunma önerisi: Ara veritabanları ve görünümlerin değerini sorguluyor; veri analistlerinin ham veriyi doğrudan işlemesinin daha verimli olabileceğini savunuyor.

  • Data Tap tanıtımı: Lambda fonksiyonlarına DuckDB gömerek veriyi S3'e Parquet formatında kaydeden bir çözüm; maliyet verimliliği ve ölçeklenebilirliği vurguluyor.

  • Veri erişim yaklaşımına dair kafa karışıklığı: Veri mühendislerinin ön toplulaştırmadan kaçınma, veri analistlerinin ise ham veriye erişimi tercih etme eğiliminde olduğunu açıklıyor.

  • Çoğu veritabanının veri içermediği iddiasına tepki: Bu iddianın abartılı olduğunu düşünüyor.

  • SQL sorgularını iş arkadaşına e-postayla gönderme yöntemi önerisi: İkili veritabanı dosyalarının avantajlarını sorguluyor.

  • Yeni SQL araçlarının faydasına dair şüphe: Veriyi kalıcı bir veri ambarında tutup ihtiyaç duyulan görünümleri oluşturmanın daha uygun olduğunu düşünüyor.

  • Presto/Trino ile benzerlik: DuckDB'nin yaklaşımının Presto/Trino'ya benzediğini düşünen bir görüş.