12 Aralık 2020 Cumartesi

Azure Synapse Analytics ile Bütünleşik Büyük Veri Analitiği - 2

Önceki yazımızda Büyük Veri analitiği ihtiyaçları hakkında konuşarak Azure Synapse Analytics hizmetinin sunduğu çözümleri daha iyi kavramayı hedefledik.

Önceki yazımıza şu linkten erişebilirsiniz:

http://www.abdullahkise.com/2020/12/azure-synapse-analytics-ile-butunlesik.html

Şimdi gelin Azure Synapse Analytics hizmetinin öne çıkan farklı yönlerine biraz daha yakından bakalım.

Azure Synapse Studio

Öncelikle Azure üzerinde bir Synapse Workspace oluşturmak gerekli. Workspace oluştururken bir de Data Lake Storage oluşturmanız gerekecek. Bu storagei daha sonra bağlı servis olarak görüp kullanabilirsiniz.

Workspace oluştuktan sonra her şey Azure Synapse Studio ile kolayca aktif edilip kullanılabiliyor.


Azure Synapse Studio ile SQL ve Spark enginlerini (pool) aktif edebilir, Azure Storage ve Power BI gibi bağlı servisler oluşturup bu servisleri kullanabilir, ETL ve orkestrasyon için Pipeline ve DataFlow oluşturabilir, SQL Scriptlerinizi, Notebooklarınızı ve diğer geliştirmelerinizi depolayabilirsiniz. İşlemci kapasitesini ihtiyacınıza göre ayarlayabilir, yetkilendirmeler yapabilir, tüm çalışmalar hakkında toplanan logları inceleyerek serviste olup biteni takip edebilirsiniz.

SQL Pools

Workspace oluşturduğunuzda sanal bir SQL sunucu otomatik olarak kullanımınıza sunulur. Bu sunucu size özel performans sunmaz. Ortak kullanım amaçlıdır ve testler yapabilmeniz için idealdir. Bu sunucuya ister Synapse Studio ile isterseniz overview penceresinde de belirtildiği şekliyle <workspaceadı>-ondemand.sql.azuresynapse.net adıyla lokalinizden bağlanabilir, veritabanları oluşturup üzerinde çalışabilirsiniz.

SQL Pool bir nevi SQL veritabanıdır. Siz de kendinize özel bir server kapasitesi talep ederek yeni bir SQL Pool oluşturabilirsiniz. Oluştururken ihtiyacınız olan kapasiteyi DW…c birimi ile ifa edebilir, ihtiyacına bağlı olarak daha sonra değişiklik yapabilir, ihtiyaç duymadığınızda sanal sunucuyu duraklatabilirsiniz. 


Size özel bu sanal sunucuya da aynı şekilde lokalinizden <workspaceadı>.sql.azuresynapse.net server adıyla bağlanıp çalışabilirsiniz. 


Synapse Studio’da Manage bölümünden poolları oluşturup, yönetebilirsiniz.

SQL Pool dağıtık mimariye sahip bir SQL Server alt yapısı sunuyor. Bu altyapı ile son sürüm SQL Engine yeteneklerinden faydalanabiliriz. Mesela dahili PolyBase Engine sayesinde ilişkisel olamayan verileri SQL içerisinde bir tablo olarak, her defasında direk kaynağından güncel haliyle bilindik yöntemde sorgulama imkanına kavuşuyoruz.

Örneğin Azure Data Lake Storage’de depolanan csv dosylarını External Table olarak tanımlayabiliriz. Bu sayede veri SQL Server dışında storgede, tablo tanımı SQL Server’da yer alıyor. Diske gelen her yeni dosya içeriği ek bir müdahalede bulunmadan sorgularımızda anında listeleniyor.


Dilerseniz bu External Table nesnelerini dağıtık mimarı içerisinde sizin belirttiğiniz şekilde dağıtılan kalıcı tablolar da oluşturabilirsiniz. Ekrandaki örnekte dbo.KisilerStg extarnal table olarak tanımlandı, dbo.Kisiler ise Round Robin (diğer yöntemler Replicated ve Hash) yönetimiyle dağıtılan kalıcı tablo olarak tanımlandı. Kalıcı tabloların columnstore indexlerle desteklenmesi ve dağıtık mimari ile işlenmesi neticesinde Azure Synapse performansını en üst seviyede hissetmeniz sağlanmaktadır.

Özetle yapısal formatta çalışılan veri ambarlarınızı SQL Pool ile oluşturabilirsiniz.

Integrate

Synapse Studio üzerinde Integrate bölümünde Pipeline ve DataFlow oluşturarak veri akışını ve düzenlenmesini kurgulayabilirsiniz. Aslında bu bölüm Azure Data Factory ile hemen hemen aynı özelliklere sahiptir. 

Oluşturduğunuz akışları anında tetikleyebilir veya daha sonra çalışacak şekilde zamanlayabilirsiniz.


Spark Pool

Spark Pool bir Spark Engine hizmeti sunmaktadır. Yani Spark Core API (Scala, Python vs.), Spark SQL, Spark Streaming, GraphX ve Spark ML bileşenlerinden faydalanabilirsiniz.

Spark Pool dağıtık mimari kullanır. Ölçeklendirmeyi kolayca yapabilirsiniz ve bunu otomatikleştirebilirsiniz.


Spark InMemory çalışabilen, iteratif işlerde başarılı, dağıtık mimariye sahip ve her türden veriyi işleyip, görselleştirebileceğiniz ve hatta makine öğrenimi çalışmaları yürütebileceğiniz bir ortam sunmaktadır.

Manage bölümünden Spark poolu duraklatabilir. Performans kapasitesini ihtiyacınıza göre ayarlayabilirsiniz.

SQL Pool ve Spark Pool aslında bağımsız çalışır. Dilerseniz bu iki Engineı konuşturabilirsiniz. 

Spark Pool üzerinde çalışmak için Synapse Studio içerisinde yer alan dahili notebook çalışma ortamını kullanabilirsiniz. 


Özetle her türden veriyi depolamak için veri göllerinizi ve makine öğrenimi projelerinizi Spark Pool üzerinde oluşturabilirsiniz.

Power BI

Power BI, Gartner Magic Quadrant’ında lider konumda ve bu bugünlerde bir hayli yaygın kullanıma sahip kullanıcı dostu bir veri modelleme ve raporlama ürünüdür.

Spark Studio üzerinde bağlı servisler arasına Power BI çalışma alanları ekleyebilir interaktif raporlarınızı doğrudan burada oluşturabilirsiniz.


Aşağıdaki gibi bir çalışmayı linkteki tutorialı takip ederek elde edebilirsiniz:

https://docs.microsoft.com/en-us/azure/synapse-analytics/spark/apache-spark-to-power-bi


Azure Synapse Analytics hizmeti bir hayli yetenekli. Uçtan uca yapay zekâ ve iş zekâsı çalışmaları yürütebileceğiniz SQL, Spark, Data Factory, Azure Storage ve Power BI ürünlerini bir araya getirmiş, limitsiz depolama alanı sunan, ölçeklenebilir işlem kapasitesine sahip, dağıtık mimaride bütünleşik bir hizmet.

Azure Synapse Analytics ile büyük veri analitiği süreçlerinde ortaya çıkan birçok problemi tek çatı altında çözüme kavuşturmak mümkün görünüyor.

Azure Synapse Analytics ile Bütünleşik Büyük Veri Analitiği - 1

Veri analitiği uğraşı; geçmişte olanı tahlil etmek ve gelecekte olacakları tahmin etmek için, veri yığınları arasında şu 4 sorunun cevabını keşfetme veya icat etme serüvenidir:

Ne oldu? Neden oldu? Ne olacak? Olması için ne yapmalıyım?

Bu soruların cevaplarını bulabilmek için özetle şu 5 adımı atıyoruz:

Veri yığınlarını seçip depoluyoruz (Capture). Onları kullanışlı hale getirmek amacıyla düzenliyoruz (Organize). Çözüme hizmet edecek platformlarla entegre ediyoruz (Integrate). Ham veriyi karar vermek ve olayların iç yüzünü anlayabilmek için inceliyoruz (Analyze). Son olarak elde ettiğimiz bilgiler doğrultusunda aksiyonlar alıyoruz (Act). Bu döngüyü serüven boyunca tekrar ediyoruz.

Bahsi geçen bu adımları atarken birçok dirençle karşılaşılmaktadır. Özellikle söz konusu büyük veri ise macera hep devam ediyor. 

Uzun zamandır etrafta neler olup bittiği herkesin malumu. Veri çok fazla kullanıcı, cihaz, yazılım tarafından üretilmekte ve tek bir makinenin işlem kapasitesini aşacak şekilde çok büyük olabilmektedir. Üstelik çok farklı kaynaklardan birbirinden farklı formatlarda türeyebilmektedir. Bazı veriler daha durağan iken bazısı saniyede milyarlarca işlem sonucu türemekte ve geleneksel yöntemlerle yakalayıp analiz etmesi neredeyse imkânsız hale gelebilmektedir. Bunlara ek olarak içerisinde birçok gizemi barındıran veri yığınları arasından bir desen, bir eğilim elde etmek ciddi emek istemektedir.

Şimdilerde bir şirketi ilgilendiren verilerin yalnızca %20’si yapısal (tablo olarak düşünebiliriz) formattadır. Geriye kalan devasa veri yığını ise düz metin, resim, ses, video, json, xml, parquet gibi kendine has özelliklere sahip serbest formatlarda yer almaktadır. Artık rekabette avantaj sağlamak isteyen şirketlerin geçmişle birlikte geleceği görme, kendi türettikleriyle birlikte etrafta kendisiyle ilgili ya da ilgili olabilecek niteliğe sahip her türden veriyi işlemeleri gerekmektedir. 

Öyle görünüyor ki bu artık bir lüks değil gerekliliktir. Teknolojinin baş döndüren hızı bu alanda en üst seviyelere çıktığı için her türden verinin analiz edilmesinin bir ihtiyaç olduğunun fark edilmesi ile geç kalınması arasında aksiyon alınabilecek yeterli zaman bulunamayabilir.

Büyük veri analitiği çalışmalarının daha az yorucu, sonuçların daha kullanışlı ve projelerin daha sürdürülebilir olması için polyglot yaklaşımı yaygındır. Yani farklı türden araçlar güçlü olduğu noktalarda devreye alınarak daha iyi çözümler üretilmeye çalışılır.

Polyglot yaklaşımı biryandan da başka problemleri gündeme getirdiği aşikar. Bu araçların yönetimi, güvenliği, performansı, birbiri ile iletişim kurması vs.

Bir büyük veri analitiği projesi uçtan uca düşünüldüğünde birçok teknik ve aracı bir arada kullanmayı ve çeşitli problemlere çözüm üretmeyi ister istemez zorunlu kılıyor; yapısal olan-olmayan, farklı hacim, hız ve tipte veri üreten kaynaklara erişilmesi, verilerin düzenlenip ara katmanlara taşınması, veri gölleri ve veri ambarlarının oluşturulması, makine öğrenimi ve yapay zeka çalışmalarının yürütülmesi ve nihayet elde edilen çıktıların son kullanıcıya etkili şekilde raporlanması. Ayrıca artan verinin depolanması için gerekli alanın temin edilmesi, hesaplamalar için zaman zaman daha fazla ihtiyaç duyulan işlemci gücünün sağlanması, birlikte çalışmaya elverişli araçlar kullanılması, ihtiyaç anında kullanılabilecek yetenekli programlama dillerinin devreye alınabilmesi vs.

Bu ihtiyacı bir noktaya kadar ayrı ayrı SQL Server, Spark, Hadoop, Data Factory, Power BI, Data Lake Storage kullanarak karşılamak mümkün olabilir. Ancak bütünleşik bir yaklaşımla uçtan uca çözüm sunan başka bir hizmet daha var. 

İşte karşınızda Microsoft’un yeni göz bebeği Azure Synapse Analytics.

Azure Synapse Analytics eski Azure SQL Data Warehouse servisinin yerine gelen çok daha gelişmiş bir servis. Hem içerisinde Polybase Engine yeteneklerini sunan SQL Engine hizmetini (SQL Pool) hem Spark yeteneklerini (Spark Pool) hem Data Factory yeteneklerini (Integrate) hem de Power BI (Linked Service) yeteneklerini bir arada sunuyor. 

Üstelik dağıtık mimarisi sayesinde ihtiyacınıza göre işlemci gücünü ayarlayabilir, sınırsız depolama alanına sahip olabilirsiniz. Bu ürün sayesinde tek çatı altında veri gölleri oluşturarak her türden verinin taşınması, düzenlenmesi ve depolanması, stream verinin işlenebilmesi, graph tabanlı problemlerin çözülebilmesi, makine öğrenimi ve yapay zeka çalışmalarının yapılabilmesi, veri ambarlarının oluşturulabilmesi ve interaktif raporların hazırlanabilmesi mümkün. Üstelik bunları isterseniz lokalinizdeki bilindik araçlarla, isterseniz tarayıcınız üzerinde çalışan Azure Synapse Studio ile hiçbir kuruluma gerek kalmadan yapabilirsiniz.


Azure Synapse Analytics hizmetinin bileşenlerini bir sonraki yazımızda daha detaylı inceleyeceğiz.

Sonraki yazımıza ulaşmak için:

Faydalı olması dileğiyle.