Show HN: ScratchDB - Snowflake open-source di atas ClickHouse
(github.com/scratchdata)- 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, tabeleventsdan kolom-kolomnya akan dibuat otomatis - Alur penggunaan HTTP API dengan meneruskan kueri SQL ke
GET /api/data/queryuntuk mengambil data yang telah disisipkan - Menyediakan fitur untuk membagikan atau menyalin hasil kueri
- API
sharemembuat ID kueri, kedaluwarsa setelahdurationyang 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
- API
1 komentar
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...
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/)
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
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/
Secara lebih faktual, kami tidak menggunakan tuple untuk JSON bertingkat, melainkan merepresentasikan relasi
parent_childpada key dengan garis bawah. Kami juga tidak menggunakan array, dan membuatnya mudah dipecah menjadi beberapa baris agar bisa memakai SQL biasaSaya belum membandingkan langsung dengan berbagai cara ClickHouse menangani JSON, tetapi tujuannya adalah membuat sesuatu yang ketika dijalankan langsung bekerja seperti yang diharapkan
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
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
Saya penasaran Anda ingin bentuknya seperti apa
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
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
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