Giriş

Merhaba, bu yazımızda Veri Bilimi alanının bir diğer kritik noktası olan Big Data konusuna eğiliyor olacağız. Bu yazıdaki temel hedefimiz data denilen kavramın tarihsel gelişimini incelemek olacak. Yani, şu anda Big Data olarak adlandırdığımız teknoloji nereden geldi, eskiden insanlar neye veri diyor, bunu nasıl elde tutup işliyorlardı ve gelecekte bu iş nasıl yapılacak gibi sorulara yanıt bulmaya çalışacağız.

Geçmiş - Veri

Big data dediğimiz şeyi en başta bir tanımını yapalım, ki neden geçmişte elde ettiğimiz verilere “Big Data” demiyoruz, diyemiyoruz netleşsin:

Konvansiyonel bilgisayar mimarisinin becerilerinin ötesinde olan veri setleri ve bu veri setlerinden bilgi çıkartmak için kullanılan teknolojilerin hepsine Big Data denir.

Biraz daha açarsak bu tanım şunu demeye çalışıyor: Elimizde öyle bir veri var ki, en büyük harddiski getirsen bile sığmıyor arkadaş. Bu veriyi SQL ile incelemeye çalıştığında saatlerce bekliyorsun, Excel’i kitliyorsun, belleğe zaten alamıyorsun.

Geçmişte bu durumun böyle olmadığını söyleyebilmenin mümkün olduğunu düşünüyorum. Veri setlerimiz ebadına bağlı olarak bir pc’de veya server’da işlenebiliyordu. Bu teknoloji dahilinde kayıtlar satır satır okunduğundan inceleme süreci yavaştı ve doğrusunu istersek günlük olarak verilen bir özet işlerimizi yönetmeye yettiğinden, çünkü herkes aynı sınırlama içerisinde çalışıyordu, bu çok da göze batmayan bir yavaşlıktı.

Verilerimiz homojen biçimde, aynı bir excel tablosu gibi hayal edilebilecek şekilde, satır ve sütunlardan oluşur ve bu yüzden de şaşırtıcı olmayan biçimde excel dosyası gibi düz dosyalar veya ilişkisel veritabanlarında (RDBMS) tutulurdu.

Şöyle söyleyeyim, modern bir RDBMS ile birkaç milyon satır ve 50-60 kolondan oluşan bir tablo üzerinde, hele hele joinlerle falan başka tabloların da işin içine girdiği, bir sorgu koşturmak demek, sorguyu çalıştırdıktan sonra en iyi ihtimalle bir çay-kahve molası, en kötü ihtimalle ertesi güne kadar beklemek demek olabiliyordu.

Bu arada bu benim başımdan geçen bir şey olduğundan, fuzuli bir örnek olarak vermiyorum.

Günümüz - Big Data

Burada bir grafik ile konuyu açmak istiyorum, bu grafik bize neden böyle bir teknolojiye ihtiyaç duyularak üretildiğini gösterecek:

Bu grafik, bizim 2009’dan beri ürettiğimiz veri miktarını gösteriyor; yani kabaca internet üzerinde izlenen video, dinlenen müzik, okunan sayfa… her şey. Ve 2020 ile bu üretimin 40000 exabyte olacağı düşünülüyor. Bir exabyte ise 1073741824 gigabyte gibi küçük bir miktar.

Şöyle diyeyim, 5 exabyte ile insanlar tarafından konuşulan bütün kelimeleri listeleyebiliyorsunuz.

Böyle bir veriyi hangi veritabanına koyacak, hangi bilgisayarda işleyip, nasıl bir zamanda yaptığınız sorgudan yanıt alacaksınız? Dahası, bahsettiğim gibi, bu veri homojen bir veri de değil. İçinde resim de var, ses de, metin de. Bu verinin işlenerek artı değer ortaya çıkarılabileceği de ortada olduğundan Big Data gibi bir kavram ortaya çıkıyor.

Daha önce verdiğimiz tanımı şimdi biraz detaylandıralım. Big Data:

Konvansiyonel bilgisayar mimarisinin becerilerinin ötesinde büyüklük, hız ve çeşide sahip olan veri setleridir.

Büyüklük

Bu kavram ile ifade edilen durumdan bahsettik: bir bilgisayarda işlenmek ve/veya bir harddiskte tutulmak için fazla büyük olan veriyi ifade etmekteyiz.

Bu verinin işlenme ihtiyacı yüzünden de Spark ve Hadoop gibi dağıtık bilgisayar teknolojilerine sahibiz. Bu teknolojiler ile veri birden çok bilgisayar üzerine yayılır; gönderilen sorgu ise parçalanarak bu bilgisayarlara dağıtılır ve her makinanın kendi üzerindeki veriyi işlemesi sağlanır. Ancak sorguyu gönderen sizin için bu süreç opaktır, siz sadece sorgunuzu gönderir, sonucunuzu alırsınız.

Veri Gölleri (Data Lakes)

Veri gölleri kavramı ise dağıtık bilgisayar teknolojileri ile mümkün hale gelen bir kavram. Basitçe tüm verimizi görece olarak pahalı olan ilişkisel veritabanında tutmak yerine, az kullanılan veri setlerini herhangi bir dönüştürme yapmadan daha ucuz olan veri gölünde tutuyoruz.

Veri gölleri, bütün firmanın ham verisi için merkezi bir depo oluşturuyor diyebiliriz. Buradan veriyi direkt biçimde sorgulayabiliyoruz. Ama diyelim ki daha kompleks bir işlem yapmaya ihtiyaç duyduk, buradaki verinin ihtiyaç duyduğumuz kısmı veri ambarına (Data Warehouse) dökülerek bu kısıtlı veri ile çalışabiliyoruz.

Hız

Burada kastedilen şey veriyi anlamlı bir bilgiye dönüştürme hızı. Normalde günlük alınması yeterli olan bu raporlar, günümüzün değişen dünyasında rekabet edebilir olarak kalmak için fazla yavaşlar. Dolayısıyla artık anında karar verebilmemizi mümkün kılan anlık analitik teknolojilerine ihtiyaç var.

Buna ek olarak hızlı biçimde değişen veri akışlarındaki düzenliliği tespit eden akış analitik araçlarına da sahibiz.

Bu kavrama en iyi örnek olarak sanıyorum Twitter’ın Volume stream olarak adlandırdığı Firehose ve Decahose olarak bilinen gerçek zamanlı tweetleri bize akış olarak sunan teknolojileri olacak. Hortumdan fışkıran (ki bu yüzden -hose adını taşırlar) su misali gelen bu veriyi incelemek için klasik veritabanı teknolojileri ve metodolojilerini kullanmak mümkün olsa da hem yer, hem işlenim hızı açısından başka bir teknolojiye ihtiyacı alenen gösterirler.

Çeşitlilik

Çeşitlilik ile bahsedilen şey işlenmesi gereken verinin tipleridir. Homojen biçimde sütun ve satırlara ayrılmış bir veriden ziyade çeşitli kaynaklardan gelen metin, resim, ses ve görüntü verilerinin işlenmesi sözkonusudur.

Bu türden veriyi işlemek için de veri entegrasyon araçları (data integration tools) kullanılır. Bu araçlar ile bir çok veri seti birbirine eklenerek dünyamız hakkında bütüncül bir fikir elde ederiz. Hatta büyük veri setlerinin incelenmesindeki esas değer bu bütüncüllükte yatmaktadır - bu sayede daha önce mümkün olmayan bir şekilde, aralarında bağ olduğu düşünülmeyen öğelerin birbiriyle alakalı olduğunu görebiliriz.

Gelecek - Yeniden Veriye Dönüş

Gelecekte bizi nelerin beklediğini düşünmeye çalışalım. Bilgisayar mimarisi ve yazılım tasarımlarının Big Data’yı herhangi bir ek çalışma yapmadan destekliyor hale geldiği düşünülürse, Big data kavramının özelliğini yitireceğini düşünüyorum. Başka bir biçimde tekrardan ifade edersem, bu kayboluş verilerimizin küçüleceği anlamına gelmiyor - kullandığımız yazılım ve sistemler Big data’yı özel teknolojiler kullanmadan işleyebilme yeteneğine sahip olduğu için böyle özel bir tanıma gerek duymayacağız demek oluyor.

Neden?

Bu durumun dört sebebi var esasen:

  • Birincisi, ve en önemlisi, depolama ücretlerinin giderek düşmesi. Şu anda bile gerek dropbox, gerek google, gerekse microsoft herhangi bir ücret ödemeden size gigabytelarca alan sağlayabilmekte. Bunu da bu ucuzlama mümkün kılıyor.
  • İkincisi, dağıtık bilgisayar teknolojileri verimizi saklama biçimlerimizi değiştiriyor. Depolama alanlarının elastik olduğu bir çağa girdik, giriyoruz. AWS ve Azure üzerindeki bilgisayarları düşünün mesela; bu sistemler üzerinde çalışan makinaların hard disk alanının bir sınırı var mı sizce?

  • Üçüncü olarak, dağıtık bilgisayar teknolojileri ile bilgisayarın kendisi ve veriyi işleme biçimimiz de değişiyor. İşlemci gücümüzün elastikleşmesi ve bu elastisiteye uygun bir biçimde algoritmaların paralel hale gelmesi ile artık bir bilgisayarı değil bulutun kendisini programlamaya başlıyor olacağımızı söyleyebilirim.
    • Bu maddeye ek olarak: Gelecekte bizim kullandığımız makinaların, günümüzle kıyasla, daha düşük konfigürasyonlara sahip olacağını zira esas ağır işin bulutta “yaşayan” ve elastik işlemci gücü, bellek ve depolama alanlarına sahip makinalar tarafından yapılacağını düşünüyorum. Bizim sahip olduğumuz makinalar ise bir nevi terminal görevi görecekler.
  • Son olarak da muhtelif çeşitteki veriyi kullanabilme yeteneğimiz ilerlemeye devam edecek. Özellikle yapılandırılmamış veriden otomatik biçimde yapılandırılmış veri çıkartan, veri işleme araçları ve otomatik veri entegrasyon yazılımları ile gelen her türden veriyi analize konu etmemiz mümkün hale gelecek diye düşünüyorum.

Sonuç

Tüm bu yazı gözönüne alındığında veri konusundaki yolculuğumuzun tek makinadan, dağıtık bilgisayar teknolojileri ile çok makina üzerine dağılmış hale gelerek, bu durumun statüko haline gelip yine “tek makina” haline döndüğü şeklinde bir çıkarım yapılabilir. Her ne kadar son safhada geldiğimiz “tek makina”, deyim yerindeyse, kavramsal ve sanal bir makina olsa da pratik anlamda bizim için tek makinaymışçasına görev yapmaktadır.

Bir sonraki yazımızda Makina Öğrenmesi kavramına göz atacak ve Veri Analitiği, Internet of Things, Big Data ve Makina Öğrenmesinin oluşturduğu döngüsel sisteme değinerek bu kavramsal eğitimi bitireceğiz. Devamında ise Python konusunda hızlı bir önbilgi verdikten sonra bu işin teknik eğitimine giriyor olacağız.

Okuduğunuz için teşekkürler!