“Gelecekte insanlar cebine sığabilecek kadar küçük bir cihazla, uçsuz bucaksız miktardaki veriye ulaşabilecek ve analiz edebilecekler.”
Nikola Tesla, 1926
Sensörler, sosyal medya, uydular, akıllı sayaçlar, mobil cihazlar... Saymakla bitiremeyeceğimiz kaynaklardan her geçen saniye çok büyük bir hızla veri artmaya devam ediyor. Analitiği yapılıp bilgi üretmek için kullanılmadıkları sürece bu büyük veriden büsbüyük dijital çöplükler oluşacak. Bu gelişim çok hızlı gerçekleşmesine karşın veri analitiği konusunda henüz bir standart oluşmuş değil. Büyük veri analitiği konusunda temel bazı başlıkların çok net ortaya konarak iyi anlaşılması gerekiyor. Bu yazıda kaynaktan hedefe bir yolculuk olarak verinin rotası, bu rotada verinin uğradığı duraklar, verinin analitiğinde kullanılan teknolojiler ve onların birleştirilmesini konuşacağız.
Büyük Veri Nedir?
Önce belki birden fazla kez duymuş olabileceğiniz büyük veri’nin 5V tanımı ile sizleri tanıştırmak isterim. Bu 5V’nin her biri İngilizce V harfi ile başlayan 5 kelimeden geliyor. Burada müsaadenizle orjinaline sadık kalarak akılda kalıcı bir tarif yapabilmek adına İngilizce kelimelerle sınıflandırmayı yapacağım.
Birinci V’miz Variety (Çeşitlilik). Yukarıda bahsettiğim çok çeşitli kaynaklardan aynı zengin çeşitlilikte gelen veridir, eskiden tablolar halinde tuttuğumuz metin ve sayılardan ibaret verilerle hareket ederken şimdi metin ve sayıların yanına görseller, videolar, ses kayıtları, haberleşme logları, coğrafi konum bilgileri vb. de eklendi.
İkinci V’miz Velocity (Hız): Verilerin üretilme ve değişme hızı olarak düşünebiliriz, her şey çok hızlı değişiyor, bu süratle de baş edebilmek gerekiyor. NTV’de yer alan 2017 Ocak rakamlarına göre, sadece internette 1 saniyede; 7 bin 466 tweet atılıyor, Instagram’a 759 fotoğraf ya da video yükleniyor, Tumblr’da 195 paylaşım, Skype’da 2 bin 410 görüşme başlatılıyor, 58 bin 75 Google aramasına 67 bin 666 kez izlenen Youtube videoları eşlik ediyor ve 2 milyon 553 bin 258 elektronik posta gönderiliyor. Saniyede 40 bin 906 GB internet kullanımı gerçekleşiyor.
Üçüncü V ise Volume (Verinin hacim olarak büyüklüğü): İnsanlık tarihinde başından beri üretilen tüm verinin yüzde doksanı son 2 yılda üretildi. Bugün İstanbul’dan kalkıp örneğin ABD’nin New York şehrine giden bir yolcu uçağının sadece sensörleri aracılığı ile üretilen veri miktarı onlarca gigabyte ile ifade edilmekte.
Dördüncü V’miz Verification (Doğrulama): Güvenlik ayarlarının da değişen verinin hızında kontrol edilerek akış sırasında verinin doğru ve kesin olmasının sağlanmasına bu adı veriyoruz.
Beşinci ve son V’miz ise Value (Değer): Üretim, tanıtım ve reklam, pazarlama ve satış, müşteri ilişkileri yönetimi aşamalarında şirketlere kattığı değer. Büyük veriye yatırım yaparak işleyen firmaların kârlarını ciddi bir oranda artırdıklarını McKinsey’in yaptığı çalışmadan öğreniyoruz.
Özetle; hızlı bir artışa sahip, genelde yapısal olmayan (tek bir yapısı olan sayısal, metin, ya da resim olmayıp, birden fazla yapıya sahip verinin bir arada işlenmesi durumu), büyük hacimlere sahip ve doğru teknikler ile işlendiği vakit bir ekonomik değere dönüşmesi çok büyük bir ihtimal dâhilinde olan veriye “Büyük Veri” adını veriyoruz.
Büyük veri analitiğini ise üç temel kategoriye ayırmak mümkün: zaman içinde biriken verinin (historical data) analitiğinin yapılması, gerçek zamanlı olarak verinin analitiğinin yapılması (yani, veri üretilir üretilmez hemen analitiğinin yapılması durumu) ve gerçek zamana çok yakın bir zaman aralığında (near real-time) verinin analitiğinin yapılması. Doğru bir kategoride ilerleyebilmek için, veri yolculuğunun rotasının çok iyi tanımlanması ve her bir rotada kullanılacak teknik ve araçların iyi bilinmesi gerekir.
Geçmiş Veri ve Gerçek Zamanlı Veri Ne Demek?
Bu kavramları yolculuğumuz boyunca sıkça kullanacağımızdan biraz daha açıklamakta fayda var. Bugüne kadarki su faturalarınız, sayaç okumaları ve fiyatlandırması geçmiş veri. Olan olmuş, su harcanmış, harcanan miktar dönemsel olarak belli, buna göre faturalandırılmış, hatta faturası otomatik ödeme talimatı ile çoktan ödenmiş bile!
Öte yandan evde şu an banyoda büyük çocuğunuz duş alırken, eşiniz bahçe suluyor, küçük çocuğunuz musluktan suluboya kabına su dolduruyor ve birisi çıkıp sayacın başında durmaksızın hareket eden rakamları gözlemliyor, fiyat bilgisi her an değişiyor çünkü bir sonraki limite erişildiğinde birim fiyat da değişecek, yarış seyreder gibi heyecanlı bir değişim, neler olacak? İşte bu gerçek zamanlı veri ve sürekli değişim halindeyken analitiğinin yapılıp bilgiye dönüştürülmesi bu bilginin de gerek iş zekâsı olarak gerekse ani karar verme gerektiren operasyonel projelerde kullanılması paha biçilmez değerde bir eylem. Musluklar kapanır kapanmaz okunan değerle yapılan hesapları da gerçek zamana yakın olarak yapılan veri analitiği olarak düşünebiliriz.
Bu basit, evsel analojiden sonra, her bir analitik yöntemin kendine özgü farklı teknolojiler ve farklı bir yolculuk rotası içerdiğini söylememiz gerekir.
Geçmiş büyük veri herhangi bir NoSQL veri tabanında veya veri kümeleri halinde ve dosya sistemi üzerinde depolanmış olabilir. SQL veri tabanlarını yapısal yani metin ve sayılardan ibaret olarak tanımlamaya çalıştığımız verileri saklamakta kullanıyorken NoSQL veri tabanlarında adından da kolayca tahmin edebileceğiniz üzere yapısal olmayan veriyi depolamakta kullanıyoruz.
Büyük veri analitiğinde kullanılan birçok teknoloji açık kaynak kodlu projeler olmasının yanında, birçoğu da ticari proje kapsamında Oracle, Cloudera, Microsoft, IBM vb. servis ve altyapı sağlayıcıları tarafından kullanıcılara hizmet olarak da sunulmakta. Ticari çözümler açık kaynak kodlu çözümlerin üzerine geliştirilen ürünler olduğundan, aslında hemen hepsinin temelinde açık kaynak kodlu projeler bulunmaktadır diyebiliriz. Büyük veri analitiğinde herhangi bir uluslararası standart bulunmadığından, yine açık kaynak kodlu bir proje olan Apache Vakfı’nın Hadoop projesi bu anlamda firmalar tarafından kabul görmüş de-fakto bir standart haline geldi.
Oysa Hadoop sadece geçmiş veri (historical data) analitiğinde kullanıldığından ve bugün artık büyük veri analitiği sadece geçmiş verinin analitiğinden ibaret olmadığından, büyük veri analitiğinde henüz olgunlaşmayan standartlaşmaya gidebilmek için genel bir referans model tanımlamaya ihtiyacımız var.
Nedir Bu Meşhur Hadoop?
Hadoop’u daha iyi anlayabilmek için biraz teknik detaya girmek gerekiyor. Hadoop, Apache tarafından geçmiş verinin analitiğini gerçekleştirmek amacı ile hayata geçirilen açık kaynak kodlu bir proje. Node (düğüm) adı verilen ve aynı işi yapmak üzere görevlendirilebilecek olan birçok bilgisayarın bir araya getirilmesinden oluşan ve dağıtık mimariye sahip olan bir topolojisi var. Söz konusu topoloji, çok kolay bir şekilde yeni düğümleri eklemeye olanak sağlayan yatay olarak ölçeklenebilir özelliğe sahip. Hadoop’un, HDFS (Hadoop Dağıtık Dosya Sistemi) ve MapReduce programlama modeli olmak üzere iki önemli bileşeni var. Topolojinin üyesi olarak görev alan bilgisayarlara farklı görevler veriliyor, operasyonun yöneticisi gibi düşünebileceğiniz bilgisayara Kontrol/Efendi düğümü deniyor ve diğer bilgisayarlara dağıtılan görevlerin takibini bu düğüm üstleniyor. Kovandaki kraliçe an ve işçi anlar misali herkes görev yerlerine dağılıp bal yapma işi sona erdiğinde bütün bak bir petekte toplama görevini de yine bu ana düğüm bilgisayarı üstleniyor. Her bir işçi arının yani çalışma düğümü bilgisayarların her seferde ne kadar bal taşıyabileceğini, yani veri işleyebileceğini donanımın gücüne bağlı kepçe (chunk) büyüklüğü ile belirleyebiliyoruz. Bu kapasite ne kadar büyükse tek bir seferde o kadar fazla veriyi işleyebilecek olduğundan Hadoop Dağıtık Dosya sisteminin asıl gücü bu parametreden kaynaklanıyor. MapReduce yazılım kütüphanesi de bu dosya sisteminin ayrıklaşmış yapısını destekler şekilde otomatik olarak paralel şekilde çalışır.
IT dünyasında Hadoop’un kullanım alanları ile ilgili birçok örnek bulunabilir. Elektronik ticarette veri analitiği, Hadoop’un gerçek kullanım alanlarından biri. Örneğin Hadoop ile bir elektronik mağazanın günlük, haftalık ya da aylık periyotlar halinde, en çok görüntülenen ürünlerini raporlamak mümkün.
Veri, herhangi bir kaynaktan kendi yolculuğuna başladığında mutlaka bir hedefe gitmek zorunda. Bu hedef ya bir dosya sistemi ya da bir veri tabanı olabilir. Gerçek zamanlı büyük veri analitiği, veriyi daha sonra analitiği yapılmak üzere herhangi bir hedefte depolamadan önce, çeşitli operasyonlarla derhal analitiğinin yapılmasıdır. Bu analitik yöntemi adından da anlaşılacağı gibi çok hızlı bir şekilde verinin doğumuna yakın bir zamanda gerçekleşmekte. Bu analitik tekniği log analizi, risk ve dolandırıcılığın belirlenmesi, güvenlik açısından izinsiz sızma girişimlerinin belirlenmesi, anlık önerme sistemleri (şunu alan bunu da aldı, buna bakan buna da baktı, beğendi vb), iş zekâsı gibi konularda kullanılıyor. Gerçek zamanlı büyük veri analitiği için verinin türüne göre karar verilen ve açık kaynak kodlu proje olan iki tane teknoloji kullanılmaktadır; bunlar Spark yapısının bir kütüphanesi olarak gelen Spark Streaming ve Storm’dur.
Yakın gerçek zamanlı büyük veri analitiği, diğer iki yöntemden biraz daha farklı. Verinin yolculuğunda; veri, analitik işlemi gerçekleşmeden önce depolama tekniği olarak bellek içi veri tabanlarına kayıt edilir. Bu sebeple bellek üzerinde çalışan ve bellek içi veri tabanları olarak adlandırılan depolama ve indeksleme mekanizmaları zorunlu. Günümüzde donanım maliyetlerinin hayli azalması ile bellek içi veri tabanları yaygın olarak kullanılır hale geldi. Bellek içi veri tabanları, NoSQL veri tabanlarında olduğu gibi dağıtık bir topolojiye sahiptirler. Topolojiye üye olan bütün cihazların belleklerini kullanarak çalışırlar. Yakın gerçek zamanlı veri analitiğinde depolama tekniğinin dışında kullanılan teknolojiler diğer yöntemlerde kullanılanlar ile aynı. Veri doğduğunda kaynağından alınma işlemi, analitik için veri tabanından çekilme işlemi ve analitik sonrası görselleştirme işlemleri her üç yöntemde de ortak duraklar.
Büyük veri analitiğinde en yaygın kullanılan teknolojiler aşağıdaki şekilde sıralanmıştır. Şekil, büyük veri analitiğini genel bir bakış açısı ile özetleyen sekiz temel kategoriden oluşmaktadır. Her kategori kendisi ile ilgili olarak farklı sayıda teknoloji barındırır ve bu teknolojilerin bazıları birbirlerinin yerine kullanılabilen teknolojilerdir. Söz konusu kategoriler bütün veri analitiği yöntemleri için ortaktır, fakat ortak olan bu kategorilerin altında sıralanan teknolojiler her yöntem için farklılık gösterir. Verinin hangi yolculuğa dâhil olması gerektiği bilinirse, söz konusu şekle bakılarak hangi teknolojilere ihtiyaç olduğu bulunabilir.
Sonuç olarak büyük veri için tarihsel büyük veri analitiği, gerçek zamana yakın büyük veri analitiği ve gerçek zamanlı büyük veri analitiği olmak üzere üç temel rota mevcuttur. Analitiği yapılacak olan verinin türü ve hangi amaçla kullanılacağı, verinin hangi analitik rotasını takip etmesi gerektiğini belirler. Rotası belirlenen veri kaynaktan doğduğunda, ilgili rotada ilerleyerek ve rotanın her adımında gerçekleşen süreçler ile bir değere dönüşür. Rotanın sonunda elde edilen sonuç ve verinin kendisi durağan hale gelerek sonraki analitik işlemleri için kayıt altına alınır.
Bu analitik işlemler sonucunda eğilimleri, gidişatı anlayıp, geleceği tahmin edebilme yetisi elde edildiğinde hemen her sektör ve organizasyon için şüphe götürmez bir avantaj elde edilmiş olur.