Smart Analysis Tool ile Büyük Veri Gölleri Oluşturmak Çok Kolay

Günümüz dünyasında birçok firma Big Data’ya ilgi duymasına rağmen işletme veri kaynaklarında büyük veri gölleri oluşturamıyor. Buna bağlı olarak Big Data mimarisinin güçlü, etkili ve modüler yapısından en uygun şekilde yararlanamayıp, ciddi denebilecek derecede mali zarara uğruyorlar.

Kullanıcı dostu ara yüzü ile ekran üzerinden aratılan sorgulara bağlı olarak World Wide Web üzerinden veri toplamaya başlayan Smart Analysis Tool, yukarıda bahsedilen problemin çözümüyle beraber, kullanıcıların arattığı sorgu üzerinden tek bir sayfada iş süreçleri ile ilgili bilgi erişim olanağı ve daha önceden keşfedilmeyen potansiyel ürünlere de ulaşım sağlıyor. Veri toplama işlemlerinde Microsoft Azure Bulut platformu üzerinde geliştirilen Smart Analysis tool bulut platformlarının oluşturmuş olduğu kullandıkça öde fiyatlandırması ile düşük maliyet, yüksek güvenlik, anlık olarak kaynak paylaşımı ve operasyon süreçlerinin hızlanması gibi birçok avantajı da beraberinde getiriyor.

Neden Bulut Platformu seçmeliyiz?

Bulut platformların en belirgin özelliği şirket içinde çalışanlara ciddi maliyet ve zaman kaybı yaratan altyapı sistemlerini tasarlamak veya yönetmek yerine sadece geliştirmeye olanak sağlaması diyebiliriz. Bu özellik bulut ortamlarında Saas (Software as a service) servis tipi ve kullandıkça öde metodolojisi (pay as you go) ile birleştirilerek bilişim dünyasında ciddi bir şekilde etki yaratmıştır. Kullandıkça öde metodolojisi tüm servis tiplerinin sunulması (SaaS, PaaS, IaaS), güvenlik, kaynak paylaşımı gibi farklı özellikleri barındıran bulut platformlar çoğu kurumsal şirketlerin dikkatini çekmiştir. Buna bağlı olarak çoğu kurumsal firma önümüzdeki on yıl içerisinde tamamen Bulut platformlara geçmek istemektedir.

Smart Analysis Tool içerisinde kullanılan Microsoft Azure servisleri tanıyalım;

Azure Cosmos DB

Yüksek ölçeklenebilirlik, dağıtık mimari, çoklu veri modeli gibi özellikleri barındıran Azure Cosmos DB Microsoft tarafından 2017 yılında bulut ortamında sunulmuş olan NoSQL veri tabanıdır.
Çoklu model özelliğinin sağlanmasını sağlayan, farklı programlama dilleri desteği olan beş farklı API modelleri içermektedir;

• SQL API
• MongoDB API
• Cassandra API
• Graph (Gremlin) API

SQL API: Cosmos DB yayınlanması ile ortaya çıkan SQL API özelliği, database içerisinde DocumentDB olarak adlandırılması ile beraber SQL ile sorgulanabilen Document Data model özelliğini ortaya çıkarmıştır.

MongoDB API: Cosmos DB içerisinde SQL API özelliği gibi Document-based özelliğini dağıtık bir şekilde kullanımına olanak sağlar. SQL API’den ayrı olarak en önemli farklarından biri Database üzerinde sorgulama gerçekleştirilirken bu işlem SQL yerine, find metodolojisi ile yapılır.

Cassandra API: Cassandra Wide-Solumn-Store özelliği ile beraber NoSql ve dağıtık bir mimariye sahip olan bir veri tabanıdır. Wide-Column-Store özelliği geleneksel olarak kullanılan ilişkisel veri tabanlarındaki gibi row-column ve table gibi benzer özellikler içerir. Tek ve en önemli farkı ise aynı tablo üzerinde her bir farklı row’da (satırda) column (kolon)’ların ismi veya type’i değişebilir. Cassandra API kullanımında database üzerinden sorgulama gerçekleştirilirken SQL’e benzeyen CQL(Cassandra Query Language) dilinden yardım alır.

Graph(Gremlin) API: Graph database’ler Graph Theory adı altında bir matematiksel model altında toplanmaktadır. Graph Theory iki collection’ın objeleri arasında ki ilişkiyi edge’ler aracı ile gerçekler. Her bir edge verilerin ilişkilendirmesinde önemli bir rol oynar. Her bir node/vertices ise ayrı varlıkları temsil eder. Node/vertices veya edges’lerde veri setleri key-value olarak tutulur.

Cosmos DB Graph (Gremlin API) ile graph database imkânı sunarken, ilgili database üzerinde SQL ile de sorgu yapmamıza olanak sağlar.

Azure Function App

Azure Function App Microsoft Azure üzerinde küçük kod parçalarını sistem altyapısını önemsemeden çalıştırabileceğiniz bir platformdur. Küçük kod parçalarını çalıştırma esnasında Azure Function App üzerinde birbirinden farklı triggerları deneyebilirsiniz. HTTP Trigger, Azure Cosmos DB trigger, Azure Blob Trigger ve Timer trigger gibi yöntemleri hangi durumlarda kullanacağımızı veya neden kullanmamız gerektiğini merak ediyorsanız yazının devamını okumanızı tavsiye ediyorum.

HTTP Trigger; İlgili trigger kullanımında dışarıdan bir client veya api tarafından yapılan istek sonucu uygulamamız içerisinde yazmış olduğunuz kod bloğunun hareketi sağlanabilir. Kısaca yazmış olduğumuz kod bloğunun bir micro API gibi davranmasını sağlayacaktır. Örneğin bir front-end uygulaması üzerinden ilgili micro API’ye http trigger ile istek atıp cevap dönmesini bekleyebiliriz.

Azure Cosmos DB Trigger; Azure Cosmos DB’nin sunmuş olduğu change feed özelliği ile Function app üzerinde desteğini gördüğümüz Azure Cosmos DB trigger özelliği, Cosmos DB içerisinde trigger olarak işaretlenmiş container üzerinde bir veri yazma işlemi olduğunda ilgili trigger harekete geçerek function app’imizi devreye alacaktır. Bu işlem esnasında mevcut kod yapımız Azure Cosmos DB’nin stream olarak veri aktarımından yararlanarak çalışmış olacaktır. İlgili özellik aşağıda daha detaylı değineceğim Function app tiplerinden olan Consumption Plan’da(serverless) olarak kullanmak geliştirici açısından daha yararlı olacaktır.

Azure Blob Trigger; Hem cold, hem de hot datalarımızı tutabildiğimiz dağıtık dosya mimarisi içeren Azure Storage’in Blob özelliğinden yararlanarak herhangi bir dosya ve ya metinin hızlı bir şekilde analizini ilgili trigger’dan yararlanarak kod bloğumuzu tetikleyebiliriz.

Timer Trigger; Mevcut kod bloğunuzu belirli zaman aralıklarında çalıştırmak istiyorsanız, ilgili trigger üzerinden bu kullanımı rahat bir şekilde gerçekleştirebilirsiniz.

Azure Storage

Yüksek kullanılabilirlik, güvenlik konularına önem veren bu file system database herhangi bir data formatına (fotoğraf, text, audio, video) bakmaksızın hepsini tutabilir. Azure storage altında dört farklı tip storage desteklenmektedir. Bunlar Queue Storage, Table Storage, Blob Storage ve File Storage olarak adlandırılmıştır.

Queue Storage:

İlk giren ilk çıkar (First in, first out) metodolojisi ile ortaya çıkan ilgili özellik belirli bir sırada olması gerekmeyen mesajları ilgili storage üzerinde saklar. Kısaca Azure Queue Storage büyük hacimli kullanıcı mesajlarını tutma ve onları asenkron bir şekilde işlemesi ile ön plana çıkmaktadır.

Table Storage:

Büyük hacimli key-value tipinde bulunan NoSQL verileri Azure storage üzerinde saklamamıza olanak sağlayan yöntemdir.

Blob Storage:

Büyük binary tipinde olan objeleri, fotoğraf, video ve ilişkisel olmayan veri setlerini blob içerisinde tutulur. Blob Azure Storage içerisinde bir dosya sistemindeki gibi uzantı üzerinde yer alması ile beraber herhangi bir veri tipini tutabilir.

File Storage:

SMB (Server Message Block) ve NFS (Network File System) protokolleri kullanılarak dosya paylaşımı ve yönetimine olanak sağlar. Uygulamaların log’ları, ayarları, VM üzerinde çalışan developer veya administrator’un hızlı haberleşmesine olanak sağlamak için ilgili file storage üzerinde de VM’in dosyalarına da erişim sunulabilir.

 

Bizimle iletişime geçmek için tıklayın

Vahit Kuruosman
Big Data & Software Engineer

Vahit Kuruosman has been working as a Big Data & Software Engineer in banking, digital innovations and manufacturing sectors. He is experienced on Big data infrastructere design&management, cloud solutions, data orchestration and robotic procesess. He joined Itelligence in 2019. He holds a degree in Computer Engineering.

Büyük Dönüşüm Başlıyor; NTT DATA Business Solutions Oluyoruz!
İş ortaklarımızla, müşterilerimizle ve çalışanlarımızla birlikte daha da güçlü olacağız.
YENİ WEBSİTEMİZİ İNCELEYİN
İletişim

Sorularınız için bize ulaşabilirsiniz.