Apache Pinot, gerçek zamanlı dağıtılmış bir OLAP veri ambarıdır
Apache Pinot , ölçeklenebilir, düşük gecikmeli, gerçek zamanlı analizler sunmak üzere tasarlanmış, gerçek zamanlı, dağıtık bir OLAP depolama çözümüdür .
Pinot, HDFS, S3, Azure Data Lake, Google Cloud Storage gibi toplu veri kaynaklarından ve Kafka gibi akış kaynaklarından veri alabilir . Yatay ölçeklendirme için tasarlanan Pinot, gerektiğinde daha büyük veri kümelerine ve daha yüksek sorgu hızlarına ölçeklenebilir.
Apache Pinot hakkında
Pinot projesi başlangıçta LinkedIn tarafından geliştirilmiş ve 2015 yılında daha fazla ortak geliştirme için Apache Vakfı'na devredilmiştir. Depolama sistemi, sürekli olarak yeni verilerin eklendiği bir ortamda çalışmak üzere tasarlanmıştır ve minimum ve öngörülebilir gecikme süresi sağlayacak şekilde geliştirilmiştir; bu da gerçek zamanlı sorgu işleme için kullanılmasını mümkün kılar.
Diğer birçok veri ambarı ve OLAP veri ambarı çözümü gibi, Pinot da seçim, toplama, filtreleme, gruplandırma, sıralama ve diğer veri sorgularını destekleyen SQL benzeri bir sorgu dilini destekler .
Apache Pinot, yatay ölçeklenebilirlik ve yazılım ve donanım arızalarına karşı hata toleransı ve hayatta kalabilirlik sağlama yöntemi sunar . Veri deposuna eklenen veriler için çoğaltma ve yedekleme süreçleri doğrudan veri işleme döngüsüne entegre edilmiştir. Bir yandan bu yaklaşım mimariyi önemli ölçüde basitleştirirken, diğer yandan veri eklenmesi ile sorgulama için kullanılabilir hale gelmesi arasında bir gecikme yaratır.
Veriler, sütun odaklı bir veritabanı içindeki tablolarda saklanır ve çeşitli sıkıştırma şemaları ile bir alana birden fazla değer yerleştirme özelliği desteklenir. Pinot, çeşitli indeksleme teknolojilerini (sıralı indeks, bitmap indeks, ters indeks, StarTree indeks, Bloom filtresi, aralık indeksi, metin arama indeksi (Lucence/FST), JSON indeks, coğrafi indeks) kullanabilen takılabilir bir indeksleme sistemi sağlar.
Apache Pinot'tan öne çıkan özelliklerden:
- Sütun Odaklı– Çalıştırma uzunluğu ve sabit bit uzunluğu gibi çeşitli sıkıştırma şemalarına sahip sütun odaklı bir veritabanı.
- Takılabilir indeksleme: Takılabilir indeksleme teknolojileri, Sıralı İndeks, Bitmap İndeks, Ters İndeks.
- Sorgu optimizasyonu- Sorgu ve segment meta verilerine dayalı olarak sorgu/yürütme planını optimize etme yeteneği.
- Akışların ve toplu işlerin alımı: Hadoop akışlarının neredeyse gerçek zamanlı alımı ve toplu alımı.
- Sorgu: SQL tabanlı sorgu yürütme motoru.
- Gerçek zamanlı olarak alım sırasında yükseliş: Verileri uygun ölçekte ve tutarlı bir şekilde güncelleyin
- Çoklu değer alanları: alanları virgülle ayrılmış değerler olarak sorgulamanıza olanak tanıyan çok değerli alanlar desteği.
- Kubernetes'te bulut yerel: Dümen şeması, Kubernetes ile yönetilmesi kolay, yatay olarak ölçeklenebilir, hataya dayanıklı, kümelenmiş bir dağıtım sağlar.
Apache Pinot'un yeni sürümü
Şunu da belirtmekte fayda var ki, Apache Pinot'un 1.0 sürümü yakın zamanda yayınlandı ve bu sürüm temelde kod tabanını istikrara kavuşturmak ve topluluğun isteklerini (300'den fazla yorum dikkate alındı) hesaba katmak için yapılan birçok çalışmayı özetliyor .
Ayrıca, yeni Çok Aşamalı Sorgu Motorunun tam potansiyeline ulaştığını ve tablo birleştirmelerini (JOIN'ler) desteklediğini belirtmekte fayda var. Başlangıçta kullanılan motor, basit filtreleme ve toplama işlemlerinde mükemmel performans gösteriyordu, ancak öngörülebilir sorgu yürütme süreleri sağlamak için tablo birleştirme işlemlerini desteklemiyordu.
Yeni motor, karmaşık sorguları işlemek için ara aşamalar içeriyor ve SQL semantiği ANSI SQL'e yakın . Ayrıca, yeni sürüm JSON verilerini işlemek için yerel destek sunuyor, "NULL" değerini destekliyor, Apache Spark 3.x ile entegre oluyor ve Upsert modunda tabloların uygulanmasını iyileştiriyor (segment sıkıştırması ekliyor ve silme işlemleri için destek sağlıyor).
Son olarak, daha fazla bilgi edinmek isterseniz , projenin kodunun Java dilinde yazıldığını ve Apache lisansı altında dağıtıldığını bilmelisiniz . Yeni sürümle ilgili ayrıntıları aşağıdaki bağlantıda bulabilirsiniz.