Presto yani PrestoDB nedir?
Presto (veya PrestoDB), herhangi bir boyuttaki verilere karşı hızlı analitik sorgular gerçekleştirmek için sıfırdan tasarlanmış, açık kaynaklı ve dağıtılmış bir SQL sorgu altyapısıdır. Hem Hadoop Dağıtılmış Dosya Sistemi (HDFS), Amazon S3, Cassandra, MongoDB ve HBase gibi ilişkisel olmayan kaynakları hem de MySQL, PostgreSQL, Amazon Redshift, Microsoft SQL Server ve Teradata gibi ilişkisel veri kaynaklarını destekler.
Presto, verileri ayrı bir analiz sistemine taşımaya gerek kalmadan depolandığı yerde sorgulayabilir. Sorgu yürütme, saf bellek tabanlı bir mimari üzerinde paralel olarak çalışır ve sonuçların çoğu saniyeler içinde geri döner. Facebook, Airbnb, Netflix, Atlassian ve Nasdaq gibi birçok tanınmış şirket tarafından kullanıldığını göreceksiniz.
Presto'nun tarihi nedir?
Presto, büyük Hadoop/HDFS tabanlı kümelerle oluşturulmuş 300PB veri ambarına karşı etkileşimli analiz sorguları çalıştırmak için Facebook 'ta bir proje olarak başladı. Presto'yu oluşturmadan önce Facebook, SQL sözdiziminin aşinalığını Hadoop ekosistemine getirmek için 2008 yılında oluşturduğu ve kullanıma sunduğu Apache Hive'ı kullanıyordu. Hive, karmaşık Java MapReduce işlerini SQL benzeri sorgular elde edecek şekidle basitleştirmek ve işleri yüksek ölçekte yürütebilmek için Hadoop ekosistemi üzerinde önemli bir etkiye sahipti. Ancak, etkileşimli sorgularda ihtiyaç duyulan hızlı performans için optimize edilmemiştir.
2012 yılında Facebook Veri Altyapısı grubu, petabayt ölçeğinde hızlı bir şekilde çalışabilen etkileşimli bir sorgu sistemi olan Presto'yu kurdu. 2013 baharında şirket genelinde kullanıma sunuldu. Kasım 2013'te Facebook, Apache Yazılım Lisansı altında Presto'yu açık kaynaklı ve GitHub'dan herkesin indirebileceği hale getirdi. Bugün Presto, Hadoop'ta etkileşimli sorgular yapmak için popüler bir seçecek haline gelmiştir ve Facebook ve diğer kuruluşlardan çok fazla katkı almaktadır. Facebook'un Presto uygulaması, günde bir petabayt veri işleyen 30.000'den fazla sorgu yapan binden fazla çalışan tarafından kullanılıyor.
Presto nasıl çalışır?
Presto, Hadoop üzerinde çalışan ve klasik kitlesel paralel işleme (MPP) veritabanı yönetim sistemine benzer bir mimari kullanan dağıtılmış bir sistemdir. Birden çok çalışan düğümü ile senkronize olarak çalışan bir koordinatör düğümü vardır. Kullanıcılar SQL sorgularını, çalışan düğümleri arasında dağıtılmış bir sorgu planını ayrıştırmak, planlamak ve zamanlamak için özel bir sorgu ve yürütme motoru kullanan koordinatöre gönderir. Karmaşık sorgular, toplamalar, birleşmeler, sol/sağ dış birleşmeler, alt sorgular, pencere işlevleri, farklı sayılar ve yaklaşık yüzdelikler dahil olmak üzere standart ANSI SQL semantiklerini desteklemek için tasarlanmıştır.
Sorgu derlendikten sonra Presto; isteği, çalışan düğümleri arasında birden çok aşamada işler. Gereksiz G/Ç yükünü önlemek için tüm işlemler bellekte yapılır ve aşamalar arasında ağ boyunca işlem hattına yerleştirilir. Daha fazla çalışan düğümü eklenmesi, daha fazla paralellik ve daha hızlı işleme sağlar.
Presto'yu herhangi bir veri kaynağına genişletilebilir hale getirmek için, takılabilir bağlayıcılar oluşturmayı kolaylaştırmak üzere depolama soyutlaması ile tasarlanmıştır. Bu nedenle de Presto'nun Hadoop Dağıtılmış Dosya Sistemi (HDFS), Amazon S3, Cassandra, MongoDB ve HBase gibi ilişkisel olmayan kaynaklar ve MySQL, PostgreSQL, Amazon Redshift, Microsoft SQL Server ve Teradata gibi ilişkisel kaynaklar gibi çok sayıda bağlayıcısı vardır. Veriler, ayrı bir analiz sistemine taşınmasına gerek kalmadan depolandığı yerde sorgulanır.
Presto ve Hadoop arasındaki farklar nelerdir?
Presto, HDFS ve diğerlerindeki veriler üzerinde hızlı, etkileşimli sorgular için tasarlanmış açık kaynaklı, dağıtılmış bir SQL sorgu motorudur. Hadoop/HDFS'nin aksine, kendi depolama sistemine sahip değildir. Bu nedenle, Presto, daha geniş ölçekteki bir iş zorluğunu çözmek için her ikisini de benimseyen kuruluşlarla Hadoop'a tamamlayıcı niteliktedir. Presto, Hadoop'un herhangi bir uygulamasıyla kurulabilir ve Amazon EMR Hadoop dağıtımında paketlenir.
Presto'yu kim kullanıyor?
Presto, birçok tanınmış kuruluşta çok büyük ölçekte üretimde kullanılmaktadır. Facebook, Airbnb, Netflix, Atlassian, Nasdaq ve çok daha fazlasında kullanıldığını göreceksiniz. Facebook'un Presto uygulaması, günde bir petabayt veri işleyen 30.000'den fazla sorgu yapan binden fazla çalışan tarafından kullanılıyor. Ortalama olarak, Netflix, Presto kümelerinde günde yaklaşık 3.500 sorgu yapıyor. Airbnb'nin geliştirdiği açık kaynaklı Airpal, Presto'nun üstünde çalışan web tabanlı bir sorgu yürütme aracıdır. Presto topluluğunun daha büyük kısmı bu forumda da ve Facebook'taki Presto sayfasında bulunabilir.
Presto'yu bulutta nasıl dağıtabilirsiniz?
Bulut; performans, ölçeklenebilirlik, güvenilirlik, erişilebilirlik ve büyük ölçeklendirme ekonomileri sağladığından Presto, bulutta ideal bir iş yüküdür. Dakikalar içinde bir Presto kümesi başlatabilirsiniz. Düğüm tedarik etme, küme kurulumu, Presto yapılandırması veya küme ayarlama konusunda endişelenmeniz gerekmez.
AWS, Presto Uygulamanızı bulutta nasıl oluşturabilir?
Amazon EMR ve Amazon Athena, Presto'yu bulutta dağıtmak için en iyi yerlerdir çünkü sizin için AWS'nin ölçeği, basitliği ve maliyet etkinliği ile Presto'nun entegrasyonunu ve test titizliğini sağlar. Amazon EMR ile, düğüm sağlama, küme kurulumu, Presto yapılandırması veya küme ayarlaması yapmanıza gerek kalmadan Presto kümelerini birkaç dakika içinde başlatabilirsiniz. EMR, dakikalar içinde bir, yüzlerce veya binlerce bilgi işlem bulut sunucusu sağlamanıza olanak tanır. Amazon Athena, AWS Sunucusuz platformunu kullanarak Presto'yu, kurulacak, yönetilecek veya ayarlanacak sunucu, sanal makine veya küme olmadan dağıtmanıza olanak tanır. Amazon S3'te verilerinizi işaret edin, şemayı tanımlayın ve yerleşik sorgu düzenleyicisini kullanarak veya mevcut İş Zekası (BI) araçlarınızı kullanarak sorgulamaya başlayın. Athena sorgunuzu otomatik olarak paralelleştirir ve sorguların hızlı çalışması için kaynakları dinamik olarak ölçeklendirir. Yalnızca çalıştırdığınız sorgular için ödeme yaparsınız.