13 poin oleh GN⁺ 2024-03-23 | 1 komentar | Bagikan ke WhatsApp

DuckDB mulai muncul sebagai jq yang baru

  • Proyek DuckDB adalah basis data mirip SQLite untuk aplikasi data, dengan kemampuan mengimpor berbagai format data tanpa dependensi tambahan.
  • File JSON dapat dibaca dan di-parse langsung sebagai tabel basis data, dan hal ini juga berlaku untuk banyak format lain.
  • Saat bekerja dengan JSON, biasanya jq digunakan, tetapi karena sintaks jq yang kompleks, menggunakan DuckDB terasa lebih nyaman bagi mereka yang sudah akrab dengan SQL.
  • Sebagai contoh, setelah mengambil informasi repositori organisasi golang dalam format JSON menggunakan GitHub API, statistik tentang jenis lisensi open source dapat diperoleh dengan mudah menggunakan SQL.
  • Menulis pernyataan SQL dengan DuckDB dapat dilakukan dengan mudah bahkan tanpa merujuk dokumentasi, dan menggunakan sintaks yang mirip dengan fungsi JSON di PostgreSQL.
  • DuckDB juga mendukung output JSON, dan bila perlu hasilnya dapat dipercantik dengan jq.
  • Selain JSON, DuckDB juga dapat mengimpor berbagai format data seperti CSV, parquet, dan file Excel.
  • Jika tidak perlu menyimpan data secara permanen, data dapat langsung di-query tanpa membuat tabel.
  • DuckDB dapat membaca JSON langsung bukan hanya dari file lokal, tetapi juga dari URL.

Opini GN⁺

  • DuckDB bisa menjadi alat yang menarik bagi pengguna yang sering melakukan pekerjaan terkait analisis data. Khususnya bagi mereka yang terbiasa dengan SQL, ini dapat menjadi alternatif yang kuat untuk menangani data JSON dengan mudah.
  • Kemampuan DuckDB untuk membaca data JSON secara langsung menyederhanakan proses pra-pemrosesan data dan menawarkan keuntungan berupa pengurangan langkah transformasi data terpisah saat membangun pipeline data.
  • Jika penggunaan DuckDB semakin meluas, dibandingkan dengan alat-alat kompleks yang sudah ada untuk analisis dan pemrosesan data, ini dapat menurunkan kurva belajar dan meningkatkan produktivitas.
  • Namun, jika DuckDB masih belum dikenal luas atau dukungan komunitasnya belum memadai, pengguna mungkin akan kesulitan menemukan solusi saat menghadapi masalah.
  • Proyek open source lain yang menawarkan fungsi serupa dengan DuckDB antara lain Apache Drill dan PrestoDB, yang juga mendukung kueri SQL untuk dataset berskala besar.

1 komentar

 
GN⁺ 2024-03-23
Komentar Hacker News
  • Kombinasi jq dan alat shell dasar

    • Sintaks dan model data jq sangat elegan dan kuat, tetapi pustaka standarnya kurang lengkap dan ada beberapa kejanggalan desain, sehingga tugas sehari-hari bisa menjadi rumit.
    • jq sangat baik dalam mengubah data menjadi teks per baris, sehingga cocok dipadukan dengan alat shell Unix.
    • Misalnya, mengekstrak lisensi OSS dari daftar proyek dan menghitung jumlah pemakaian masing-masing dapat dilakukan dengan sederhana menggunakan curl ... | jq '.[].license.key' | sort | uniq -c.
  • Babashka dan Clojure

    • Jika menyukai Lisp dan Clojure, ada baiknya mencoba Babashka.
    • Tersedia contoh kode yang menggunakan Babashka untuk memproses file JSON, mengelompokkan data, dan menghitung jumlahnya.
  • ClickHouse local CLI

    • ClickHouse local CLI sangat cepat untuk mem-parsing dan mengkueri format seperti JSON dan CSV.
    • Disebut sebagai "alat kueri JSON tercepat di dunia", dan diperkenalkan sebagai alat kecil untuk analitik data tanpa server.
  • Penggunaan jq, DuckDB, dan SQL

    • jq ideal untuk tugas seperti pemfilteran, pemetaan, dan penggabungan.
    • Misalnya, jq dapat digunakan untuk mencari tautan unduhan tertentu atau mengekstrak KUBE_CONFIG dari status Terraform untuk klaster Kubernetes.
  • Kueri Google Sheets

    • Data Google Sheets yang dipublikasikan dapat dikueri dengan cara yang mirip SQL.
  • Structured logging dengan database SQLite

    • Event log yang dibuat setiap hari dapat disimpan sebagai objek JSON, lalu field tertentu bisa diberi indeks agar dapat dicari dengan kueri SQL.
  • Benthos

    • Benthos dapat digunakan untuk transformasi data dan memindahkan data ke message bus, webhook, atau database.
  • Nushell

    • Nushell berguna untuk manipulasi data ad hoc dan pekerjaan shell umum.
  • pq (prql-query)

    • pq dibuat agar pekerjaan data di terminal menjadi lebih mudah dan menyenangkan dengan memanfaatkan DuckDB, DataFusion, dan PRQL.
    • Saat ini proyeknya dalam keadaan diarsipkan karena sulit dipelihara, tetapi situasinya bisa berubah jika ada orang yang ingin berkolaborasi.
  • JSON dan penggunaan bahasa pemrograman

    • Dibandingkan dengan memperlakukan JSON sebagai struktur data seperti hashmap di bahasa pemrograman, manfaatnya terasa kurang jelas.
    • Jika ingin bekerja secara interaktif, notebook atau REPL dapat digunakan.