13 puan yazan GN⁺ 2024-03-23 | 1 yorum | WhatsApp'ta paylaş

DuckDB, yeni jq olarak öne çıkıyor

  • DuckDB projesi, veri uygulamaları için SQLite benzeri bir veritabanıdır ve ek bağımlılıklar olmadan çeşitli veri biçimlerini içe aktarabilme özelliği içerir.
  • JSON dosyalarını doğrudan veritabanı tabloları olarak okuyup ayrıştırabilir; bu durum birçok başka biçim için de geçerlidir.
  • JSON ile çalışırken çoğunlukla jq kullanılsa da, karmaşık jq sözdizimi yerine SQL’e aşina olunduğu için DuckDB kullanmak daha pratiktir.
  • Örneğin GitHub API kullanılarak golang organizasyonunun depo bilgileri JSON olarak alınabilir ve ardından açık kaynak lisans türlerine ilişkin istatistikler SQL ile kolayca çıkarılabilir.
  • DuckDB ile SQL sorguları yazmak, belgelere bakmadan da kolaydır ve PostgreSQL JSON işlevlerine benzer bir sözdizimi kullanır.
  • DuckDB, JSON çıktısını da destekler; gerekirse sonuçları daha düzgün göstermek için jq kullanılabilir.
  • DuckDB yalnızca JSON değil, CSV, parquet, Excel dosyaları gibi çeşitli veri biçimlerini de içe aktarabilir.
  • Veriyi kalıcı olarak saklamak gerekmiyorsa tablo oluşturmadan da veri sorgulanabilir.
  • DuckDB, yalnızca yerel dosyalardan değil, URL’lerden de doğrudan JSON okuyabilir.

GN⁺ görüşü

  • DuckDB, veri analiziyle ilgili işleri sık yapan kullanıcılar için ilgi çekici bir araç olabilir. Özellikle SQL’e aşina olanlar için JSON verisini kolayca işleyebilen güçlü bir alternatif sunar.
  • DuckDB’nin JSON verisini doğrudan okuyabilmesi, veri ön işleme sürecini basitleştirir ve veri hattı kurarken ayrı veri dönüştürme adımlarını azaltma avantajı sağlar.
  • DuckDB kullanımı yaygınlaştıkça, veri analizi ve işleme için kullanılan mevcut karmaşık araçlara kıyasla öğrenme eğrisini düşürüp üretkenliği artırabilir.
  • Ancak DuckDB henüz yaygın olarak bilinmiyorsa veya topluluk desteği yeterli değilse, kullanıcıların sorunla karşılaştıklarında çözüm bulması zor olabilir.
  • DuckDB’ye benzer işlevler sunan diğer açık kaynak projeler arasında Apache Drill ve PrestoDB bulunur; bunlar da büyük veri kümeleri üzerinde SQL sorgularını destekler.

1 yorum

 
GN⁺ 2024-03-23
Hacker News görüşleri
  • jq ve temel shell araçlarının birleşimi

    • jq'nun sözdizimi ve veri modeli çok zarif ve güçlü, ancak standart kütüphanesinin yetersizliği ve tasarımdaki bazı tutarsızlıklar nedeniyle günlük işler karmaşık hale gelebiliyor.
    • jq, veriyi satır bazlı metne iyi dönüştürdüğü için Unix shell araçlarıyla birlikte kullanıma uygun.
    • Örneğin, proje listesinden OSS lisanslarını çıkarıp her birinin kullanım sayısını saymak curl ... | jq '.[].license.key' | sort | uniq -c ile kolayca yapılabiliyor.
  • Babashka ve Clojure

    • Lisp ve Clojure seviyorsanız Babashka'ya göz atın.
    • Babashka kullanarak JSON dosyalarını işleyip verileri gruplama ve sayma için örnek kod veriliyor.
  • ClickHouse local CLI

    • ClickHouse local CLI, JSON ve CSV gibi biçimleri ayrıştırma ve sorgulamada çok hızlı.
    • "Dünyanın en hızlı JSON sorgu aracı" olarak anılıyor ve sunucusuz veri analizi için küçük bir araç olarak tanıtılıyor.
  • jq, DuckDB ve SQL kullanımı

    • jq; filtreleme, eşleme ve birleştirme gibi işler için ideal.
    • Örneğin belirli indirme bağlantılarını bulmak veya Terraform durumundan Kubernetes kümesinin KUBE_CONFIG bilgisini çıkarmak gibi işler için jq kullanılabiliyor.
  • Google Sheets sorguları

    • Herkese açık Google Sheets verileri SQL'e benzer bir şekilde sorgulanabiliyor.
  • SQLite veritabanıyla yapılandırılmış loglama

    • Her gün üretilen log olayları JSON nesneleri olarak saklanabiliyor ve belirli alanlarda indeks oluşturularak SQL sorgularıyla aranabiliyor.
  • Benthos

    • Veri dönüştürme ve veriyi mesaj veri yolu, webhook ve veritabanlarına taşıma için Benthos kullanılabiliyor.
  • Nushell

    • Nushell, geçici veri işleme ve genel shell işleri için kullanışlı.
  • pq (prql-query)

    • Terminalde veriyle çalışmayı kolay ve eğlenceli hale getirmek için DuckDB, DataFusion ve PRQL kullanılarak pq geliştirildi.
    • Şu anda bakımı zor olduğu için arşivlenmiş durumda, ancak iş birliği yapacak insanlar bulunursa bu durum değişebilir.
  • JSON ve programlama dillerinin kullanımı

    • JSON'u programlama dillerindeki hash map benzeri veri yapıları gibi ele almaya kıyasla avantajı net görünmüyor.
    • Etkileşimli çalışmak istiyorsanız notebook veya REPL kullanabilirsiniz.