4 poin oleh GN⁺ 2023-10-29 | 1 komentar | Bagikan ke WhatsApp
  • Scratch Data adalah wrapper yang memungkinkan streaming data masuk dan keluar dari database analitik, serta menjalankan kueri analitik terhadap input JSON arbitrer
  • Jika dijalankan tanpa konfigurasi, secara otomatis menyiapkan database DuckDB lokal yang dapat dibaca dan ditulis
  • Jika data JSON dimasukkan melalui POST /api/data/insert/events?api_key=local, tabel events dan kolom-kolomnya akan dibuat otomatis
  • Alur penggunaan HTTP API dengan meneruskan kueri SQL ke GET /api/data/query untuk mengambil data yang telah disisipkan
  • Menyediakan fitur untuk membagikan atau menyalin hasil kueri
    • API share membuat ID kueri, kedaluwarsa setelah duration yang ditentukan dalam detik, dan memungkinkan berbagi data melalui tautan CSV atau JSON
    • Setelah mengonfigurasi beberapa database, sistem menjalankan kueri SQL pada database sumber, lalu menangani pembuatan tabel tujuan dan penyisipan data secara otomatis

1 komentar

 
GN⁺ 2023-10-29
Pendapat Hacker News
  • Akan bagus kalau dijelaskan apa arti open-source Snowflake. Sepertinya tidak ada penjelasan yang dijabarkan di deskripsi, repositori, maupun situsnya
    Saya penasaran apakah tujuannya secara eksplisit mereplikasi semua fitur Snowflake: https://docs.snowflake.com/en/user-guide/intro-supported-fea...

    • Ini masukan yang bagus untuk menulis pesan yang lebih jelas, dan kami menerimanya dengan senang hati
      Tujuan proyek ini adalah membuat pengalaman developer yang unggul di atas database analitik. Kami melihat itu sebagai salah satu dari banyak proposisi nilai Snowflake. Tujuan lainnya adalah memungkinkan pengguna memiliki kendali penuh atas data dan cara pemrosesannya, serta menggunakan sumber daya komputasi secara ekonomis
      Tujuan kami bukan mencocokkan fitur produk lain, tetapi seiring berkembang kami akan membangun fitur-fitur yang penting bagi perusahaan
  • Saya bekerja di ClickHouse
    Saya melihat database OLAP real-time berpotensi lebih baik mendukung sebagian pekerjaan yang saat ini ditangani Postgres atau cloud data warehouse, terutama ketika diperlukan ingest real-time dan query analitik. Jika pengalaman developer disederhanakan tanpa harus mempelajari semua detail database yang kuat, kecepatan pengembangan juga akan meningkat pesat
    Saya penasaran bagaimana proyek ini berbeda dari GraphJSON(https://www.graphjson.com/) dan Tinybird(https://www.tinybird.co/)

    • Saya baru pertama kali melihat GraphJSON dan akan mengeceknya. Saya juga suka Tinybird, dan menurut saya tujuannya mirip: membuat orang lebih mudah mengadopsi OLAP
      Secara teknis, kami membuat keputusan desain yang berbeda dalam ingest dan pemrosesan data. Misalnya, setelah membuat tabel, Anda tetap bisa mengirim JSON baru dengan kolom berbeda, dan data akan diingest tanpa migrasi manual. Kami juga memperlakukan array JSON secara berbeda, dengan memungkinkan array dipecah menjadi beberapa baris ClickHouse alih-alih menggunakan array ClickHouse
      Secara filosofis, saya melihat ada banyak ruang untuk perangkat lunak open-source dengan UI dan pengalaman developer yang hebat. Saya sudah lama menulis open source, dan menurut saya itu cara terbaik untuk membuat tool developer yang sukses
    • Bukan penulis posting asli, tetapi GraphJSON maupun Tinybird tampaknya bukan open-source
  • Produk yang bagus, dan senang Anda membagikannya
    Sepengetahuan saya ClickHouse sudah mendukung flattening JSON secara native[1]. Memang ini fitur yang keluar cukup baru di versi 22.3.1, jadi saya penasaran apakah Anda mulai mengerjakannya sebelum itu[2], atau ini pendekatan yang berbeda. Saya juga ingin tahu kelebihan dan kekurangan masing-masing
    [1] https://clickhouse.com/docs/en/integrations/data-formats/jso...
    [2] https://scratchdb.com/blog/flatten-json/

    • Pertanyaan yang cukup bagus. Jawaban yang agak sinis adalah, “cara kami mengingest JSON tidak butuh 50 halaman dan n buah nilai konfigurasi untuk dijelaskan”
      Secara lebih faktual, kami tidak menggunakan tuple untuk JSON bertingkat, melainkan merepresentasikan relasi parent_child pada key dengan garis bawah. Kami juga tidak menggunakan array, dan membuatnya mudah dipecah menjadi beberapa baris agar bisa memakai SQL biasa
      Saya belum membandingkan langsung dengan berbagai cara ClickHouse menangani JSON, tetapi tujuannya adalah membuat sesuatu yang ketika dijalankan langsung bekerja seperti yang diharapkan
    • Inferensi skema untuk objek JSON bertingkat adalah fitur ClickHouse 23.9. Saya membuat video terkait: https://www.youtube.com/watch?v=yS8YU-rBpMM&t=1846s
  • Bagi yang penasaran, lisensinya adalah AGPL-3.0

  • Selamat atas peluncurannya. Saya penasaran apakah ini bisa dipakai untuk data log, dan berapa lama data yang diingest akan disimpan

    • Bisa digunakan untuk log. Contoh dasarnya ada di sini: https://scratchdb.com/blog/fly-logs-to-clickhouse/
      Karena datanya hanya disimpan di database, data akan bertahan selama yang Anda inginkan. Versi hosting mengenakan biaya per GB data terkompresi, jadi meski lognya banyak tetap bisa disimpan, dan Anda juga bisa menghapus data lama jika ingin menghemat ruang disk
  • Terima kasih sudah berbagi, terlihat sangat rapi dan mudah digunakan
    Saya penasaran apakah ada rencana mendukung format data selain JSON saat insert. Misalnya file CSV, file Parquet, atau pesan Avro maupun Protobuf

  • Akan bagus kalau benchmark-nya diajukan ke ClickBench

  • Saya penasaran apa implikasi lisensinya jika kita memakai ini untuk menyediakan layanan publik tanpa memodifikasi kode yang disediakan
    Misalnya digunakan untuk forum, tetapi memakai potongan kode terpisah untuk memasukkan dan mengambil data dari ScratchDB

  • Saya penasaran mengapa storage-nya 10 kali lebih mahal daripada BigQuery. Saya ingin tahu bagaimana harga komputasinya dibanding BigQuery
    Edit: Bigtable → BigQuery

    • Kami tidak mengenakan biaya komputasi dan storage secara terpisah seperti Bigtable. Harga per GB data sudah termasuk komputasi. Tujuannya adalah model harga bayar sesuai pemakaian, mirip DynamoDB. Metode penagihan lain didasarkan pada waktu berjalan aktual query, sehingga query 30 detik lebih mahal daripada query 500 ms
      Saya belum pernah memakai Bigtable, tetapi sepertinya biaya minimumnya sekitar 300 dolar walau tidak ada data. ScratchDB minimum 10 dolar untuk 30 GB
      Selain itu, rata-rata rasio kompresi data adalah 25%. Jika data 1 TB hanya memakan 250 GB, Anda hanya membayar sebesar itu
      Bigtable bukan OLAP, jadi tidak akan dipakai untuk data yang sama. Ini lebih langsung bersaing dengan BigQuery dari GCP
      Kami sangat tertarik pada masukan soal harga. Kami perlu bisa terus mengembangkan produk, jadi ingin menemukan arah yang masuk akal
  • Selamat atas peluncurannya, terlihat bagus. Inferensi skema secara instan sangat bagus untuk mulai dengan cepat, tetapi saya penasaran apakah ada cara untuk mendefinisikan skema secara eksplisit jika diinginkan
    Misalnya saya memikirkan pengaturan kompresi per kolom

    • Saat ini belum ada, tetapi kami terbuka pada ide untuk membuatnya dapat dikonfigurasi
      Akan berguna jika bisa mengaturnya secara instan, atau lebih baik lagi, jika ada fitur yang memberi tahu pengguna metode kompresi apa yang sebaiknya digunakan berdasarkan data aktual. Kami juga dengan senang hati mendiskusikannya di issue GitHub