Show HN: ScratchDB - ClickHouse üzerinde açık kaynak Snowflake
(github.com/scratchdata)- Scratch Data, veriyi analitik veritabanlarına akış halinde alıp çıkarmayı ve rastgele JSON girdileri üzerinde analitik sorgular çalıştırmayı sağlayan bir sarmalayıcıdır
- Yapılandırma olmadan çalıştırıldığında okuma ve yazma yapılabilen yerel bir DuckDB veritabanını otomatik olarak hazırlar
- JSON verisini
POST /api/data/insert/events?api_key=localile gönderdiğinizdeeventstablosunu ve sütunları otomatik oluşturur - Eklenen verileri sorgulamak için SQL sorgusunu
GET /api/data/queryadresine ileten bir HTTP API kullanım akışı vardır - Sorgu sonuçlarını paylaşma veya kopyalama işlevi sunar
shareAPI’si bir sorgu kimliği oluşturur, belirtilen saniye cinsindendurationsonrasında süresi dolar ve veriler CSV ya da JSON bağlantısı olarak paylaşılabilir- Birden fazla veritabanı yapılandırıldıktan sonra kaynak veritabanında SQL sorgusu çalıştırır; hedef tablo oluşturma ve veri ekleme işlemlerini otomatik olarak gerçekleştirir
1 yorum
Hacker News yorumları
open-source Snowflake ifadesinin ne anlama geldiğini açıklasanız iyi olur. Açıklama metninde, depoda ya da sitede bunun açılmış hâli yok gibi görünüyor
Hedefin Snowflake’in tüm özelliklerini açıkça yeniden üretmek olup olmadığını merak ediyorum: https://docs.snowflake.com/en/user-guide/intro-supported-fea...
Bu projenin hedefi, bir analitik veritabanı üzerinde mükemmel bir geliştirici deneyimi oluşturmak. Bunun Snowflake’in birçok değer önerisinden biri olduğunu düşünüyorum. Ayrıca kullanıcıların kendi verileri ve işleme biçimleri üzerinde tam kontrol sahibi olmasını ve hesaplama kaynaklarını ekonomik şekilde kullanabilmesini sağlamak da hedefler arasında
Hedefimiz başka bir ürünün özelliklerini birebir yakalamak değil; ancak büyüdükçe şirketler için önemli olan özellikleri geliştireceğiz
ClickHouse’ta çalışıyorum
Gerçek zamanlı OLAP veritabanlarının, şu anda Postgres veya bulut veri ambarlarının üstlendiği işler içinde gerçek zamanlı veri alımı ve analitik sorgu gerektiren durumları daha iyi destekleme potansiyeli olduğunu düşünüyorum. Güçlü bir veritabanının tüm ayrıntılarını öğrenmeye gerek bırakmadan geliştirici deneyimini sadeleştirmek, geliştirme hızını da ciddi ölçüde artırır
Bu projenin GraphJSON(https://www.graphjson.com/) ve Tinybird(https://www.tinybird.co/) ile nasıl farklılaştığını merak ediyorum
Teknik olarak veri alımı ve işleme tarafında farklı tasarım kararları aldık. Örneğin tablo oluşturulduktan sonra farklı sütunlara sahip yeni JSON’lar gönderebilir ve manuel migration olmadan ingest edebilirsiniz. JSON dizilerini de ClickHouse dizileri kullanmak yerine birden fazla ClickHouse satırına bölebilecek şekilde farklı ele alıyoruz
Felsefi olarak, iyi bir UI ve geliştirici deneyimine sahip açık kaynak yazılımlar için büyük bir alan olduğunu düşünüyorum. Uzun süredir açık kaynak yazıyorum ve başarılı geliştirici araçları üretmenin en iyi yolunun bu olduğuna inanıyorum
Güzel ürün, paylaştığınız iyi oldu
ClickHouse’un JSON düzleştirmeyi zaten yerel olarak desteklediğini biliyordum[1]. Bu, yakın zamanda 22.3.1 sürümünde gelen bir özellik olsa da acaba siz bundan önce mi çalışmaya başlamıştınız[2], yoksa bu farklı bir yaklaşım mı? Her birinin artılarını ve eksilerini de bilmek isterim
[1] https://clickhouse.com/docs/en/integrations/data-formats/jso...
[2] https://scratchdb.com/blog/flatten-json/
Daha olgusal söylemek gerekirse, iç içe JSON için tuple kullanmıyoruz; anahtarlarda
parent_childilişkisini alt çizgiyle gösteriyoruz. Dizileri de kullanmıyoruz; normal SQL kullanılabilsin diye birden fazla satıra bölmeyi kolaylaştırıyoruzClickHouse’un çeşitli JSON işleme yöntemleriyle doğrudan karşılaştırmadık, ama hedefimiz çalıştırıldığında beklediğiniz gibi doğrudan çalışan bir şey yapmaktı
Merak edenler için lisans AGPL-3.0
Lansman için tebrikler. Bunu log verileri için kullanıp kullanamayacağımı ve alınan verilerin ne kadar süre saklandığını merak ediyorum
Sonuçta veritabanında saklanıyor, yani istediğiniz kadar tutabilirsiniz. Barındırılan sürümde sıkıştırılmış veri GB’ı başına ücretlendirme var; bu yüzden çok log olsa da saklayabilir, disk alanından tasarruf etmek isterseniz eski verileri silebilirsiniz
Paylaşım için teşekkürler; oldukça temiz ve kullanımı kolay görünüyor
Ekleme sırasında JSON dışı veri formatlarını da destekleme planınız var mı? Örneğin CSV dosyaları, Parquet dosyaları, Avro ya da Protobuf mesajları gibi
Nasıl bir şey olmasını istediğinizi merak ediyorum
Benchmark’ları ClickBench’e gönderseniz iyi olur
Sağladığınız kodu değiştirmeden bunu kullanarak herkese açık bir servis sunarsam bunun lisans açısından ne anlama geldiğini merak ediyorum
Örneğin bir forumda kullanmak, ama ScratchDB’ye veri yazıp veriyi oradan çeken ayrı bir kod parçası kullanmak gibi
Depolamanın neden BigQuery’den 10 kat pahalı olduğunu merak ediyorum. Hesaplama fiyatının BigQuery ile karşılaştırıldığında nasıl olduğunu da bilmek isterim
Düzenleme: Bigtable → BigQuery
Bigtable kullanmadım ama veri olmasa bile minimum ücret yaklaşık 300 dolar seviyesinde görünüyor. ScratchDB’de 30 GB için minimum 10 dolar
Ek olarak, ortalama veri sıkıştırma oranı %25. 1 TB veri yalnızca 250 GB yer kaplıyorsa sadece o kadarının ücretini ödersiniz
Bigtable OLAP olmadığı için aynı kullanım için tercih etmezsiniz. Bu, GCP’nin BigQuery’siyle daha doğrudan rekabet ediyor
Fiyatlandırma geri bildirimleriyle çok ilgileniyorum. Geliştirmeyi sürdürebilmemiz gerektiği için makul bir yön bulmak istiyorum
Lansman için tebrikler, iyi görünüyor. Anında şema çıkarmak hızlı başlamak için harika; ama isterseniz şemayı açıkça tanımlamanın bir yolu da var mı merak ediyorum
Örneğin sütun bazında sıkıştırma ayarlarını düşünüyorum
Anında ayarlamak ya da daha iyisi, gerçek verilere bakarak kullanıcıya hangi sıkıştırma yöntemini kullanması gerektiğini söyleyen bir özellik faydalı olabilir. GitHub issue’larında da memnuniyetle tartışırım