Yeni teknolojileri öğrendiğim ve keşfettiğim için bu makale dizisi benim için çok eğlenceli oldu. İlk keşfettiğimden bu yana neyin ilgi gördüğünü görmek de eğlenceli. hakkındaki son makalem inanılmaz derecede popülerdi, bu da beni şaşırttı, ama görünen o ki onun ne olduğuyla ilgilenen tek kişi ben değildim. Bu yazı sayesinde sponsorluğundaki açık kaynaklı Apache 2.0 lisanslı projesi ile karşılaştım. Hem geçmiş hem de akış verilerini barındıran bir SQL veritabanıdır. C++ ile yazılan ve tarafından desteklenen bu kitabın odak noktası basitlik ve performanstır. Tek bir yürütülebilir dosyayla kurulum basittir. Apache Paimon Timeplus Proton ClickHouse Gördüğüm bir trend, giderek daha fazla gerçek zamanlı analiz uygulamasının geliştirildiği, ancak bunları iki kez oluşturmak istemezsiniz. Bir kez akış için ve bir kez de tarihsel dolgu için. Toplu veya akış modunda, hatta geçmiş verileri gelen veri akışıyla birleştirdiğiniz karma modda sorgulama yapabilen tek bir platforma sahip olmanın kesin avantajları olacaktır. Görünüşe göre Proton tam da bunu yapmak için yapılmış. Proton'a Genel Bakış Özetle, bir ClickHouse veritabanımız var ve Timeplus akış hizmetleri için destek ekledi. Bu size ClickHouse veritabanıyla Flink benzeri bir sorgu motoru ve Kafka benzeri bir akış depolama alanı sağlamalıdır. Peki bu neye benziyor? Noktalı çizgi Proton'un devreye girdiği yerdir. Neyin mümkün olduğuna dair iyi bir fikir edinmek için belgelerini okumanızı öneririm. mimari Rastgele bir veri akışı oluşturmak ve bunu Proton ile sorgulamak için şöyle bir şey yapabiliriz: -- Create a stream with random data. CREATE RANDOM STREAM devices(device string default 'device'||to_string(rand()%4), temperature float default rand()%1000/10); -- Run the long-running stream query. SELECT device, count(*), min(temperature), max(temperature) FROM devices GROUP BY device; ┌─device──┬─count()─┬─min(temperature)─┬─max(temperature)─┐ │ device0 │ 2256 │ 0 │ 99.6 │ │ device1 │ 2260 │ 0.1 │ 99.7 │ │ device3 │ 2259 │ 0.3 │ 99.9 │ │ device2 │ 2225 │ 0.2 │ 99.8 │ └─────────┴─────────┴──────────────────┴──────────────────┘ Proton Özellikleri Proton'un pek çok şık özelliği vardır; Beni hemen etkileyen şey, Proton'daki belirli olayları kaydetmek için somutlaştırılmış bir görünüm oluşturma yeteneğiydi. Belgelerden ödünç alarak, diyelim ki web olaylarını bildiren bir Kafka akışınız var ve bozuk bağlantı raporlarını kaydetmek istiyorsunuz, böylece Kafka kapalıyken veya olaylar kaldırılmış olsa bile bunları daha sonra sorgulayabilirsiniz. Bunun gibi bir şeye benzeyecek: create materialized view mv_broken_links as select raw:requestedUrl as url,raw:method as method, raw:ipAddress as ip, raw:response.statusCode as statusCode, domain(raw:headers.referrer) as referrer from frontend_events where raw:response.statusCode<>'200'; Daha sonra, materyalleştirilmiş görünümü doğrudan sorgulamak ve verilerden bir çubuk grafik oluşturmak istiyorsanız, şöyle görünecektir: -- streaming query select * from mv_broken_links; -- historical query select method, count() as cnt, bar(cnt,0,40,5) as bar from table(mv_broken_links) group by method order by cnt desc; ┌─method─┬─cnt─┬─bar─┐ │ GET │ 25 │ ███ │ │ DELETE │ 20 │ ██▌ │ │ HEAD │ 17 │ ██ │ │ POST │ 17 │ ██ │ │ PUT │ 17 │ ██ │ │ PATCH │ 17 │ ██ │ └────────┴─────┴─────┘ Bu işlevlerden bazıları bana birkaç yıl önce çalıştığım şirketini hatırlatıyor. Upsolver Java, Go ve Python için diğer dillere yönelik sürücüler mevcuttur. Proton'u gibi bir şeyle kullanmak, geçmiş verilerin akışı için minimum ayak izi olacaktır. Redpanda Pek çok başka özellik de mevcuttur, ancak bunun bir eğitim olması amaçlanmamıştır. Hafif bir açıklama yapıp bazı özelliklerine dikkat çekmek istiyorum. Dokümanlar kısa ve genel olarak iyi yazılmış olup birçok açık kaynaklı projeden kesinlikle daha iyidir. Özet Şu anda kişisel olarak bu tür bir düzenlemeye ihtiyacım olmasa da, kesinlikle bunun çok ama çok harika olacağı yerlerde bulundum ve şirketler gördüm. Bu adam kadar havalı mı? Muhtemelen hayır, ama yine de hiçbir şey yok :). Önemsizlik bir yana, Proton ekibi projeyi belgeleyerek ve kurulumunu ve kullanımını mümkün olduğunca basit hale getirerek mükemmel bir iş çıkardı. Tonlarca bağımlılığa sahip geniş bir Java ekosistemine ihtiyaç duymayan bu tek ikili projeleri seviyorum. Ancak hata yapmayın, Timeplus'ın size stok Proton sürümünden daha fazla yetenek sağlayan ticari bir sürümü var. Ancak Proton'u oldukça destekliyorlar ve topluluğa kucak açıyor gibi görünüyorlar. Aşağıdaki bağlantılardaki diğer What the Heck is… makalelerime göz atın: DuckDB Nedir? Malloy da ne böyle? PRQL nedir? GlareDB nedir? SeaTunnel nedir? LanceDB nedir? SDF de ne böyle? Paimon da ne böyle?