Ünite 7: Büyük Veri ile Programlama

Büyük Veri

Büyük veri, geleneksel veri işleme uygulamalarıyla işlenmesi zor olan, büyük ve karmaşık yapıda veri olarak tanımlanabilir. Geleneksel bilgisayar sistemlerinde veri ilişkisel veri tabanlarında yapılandırılmış olarak saklanmaktadır. Bu tipteki bilgiye erişmek, veri tabanı sorgularıyla kolaydır. Ancak büyük veri, ilişkisel veri tabanlarında tutulamayan çok çeşitli birleşimlerden oluşmaktadır.

Büyük veri kaynaklarının bazıları aşağıdaki gibi sıralanabilir:

  • Web sunucu logları
  • Bloglar
  • Elektronik postalar
  • Sosyal medyadaki fotoğraf, video gibi paylaşımlar
  • Çeşitli sensörlerden gelen sürekli bilgiler
  • GSM operatörlerindeki arama kayıtları
  • Çeşitli mobil uygulamalardaki demografik bilgiler
  • Meteorolojik bilgiler
  • Uydu görüntüleri

Büyük Veri Bileşenleri

Büyük veri beş temel bileşenden oluşmaktadır. Bunlar çeşitlilik (variety), değer (value), doğrulama (verification), veri büyüklüğü (volume) ve hızdır (velocity). Bu bileşenler İngilizce isimlerinin baş harflerinin aynı olmasından dolayı 5V olarak adlandırılmaktadır.

Çeşitlilik: Büyük veri analizinde veri, birçok farklı kaynaklardan derlendiği için kendi içinde çeşitlilik ve farklılık göstermektedir.

Hız: Büyük verinin önemli karakteristiklerinden biri üretilme hızıdır.

Veri büyüklüğü: Veri her yerden ve hızlı bir şekilde geldiği için verinin büyüklüğü katlanarak artmaktadır. Bu nedenle, organizasyonların her geçen yıl artan büyük hacimdeki verileri nasıl depolayacağını, uygulamalarında nasıl kullanacağını planlaması gerekmektedir.

Doğrulama: Veriler hızlı bir şekilde gelip büyük bir hacim oluşturduğu için, verinin güvenilirliğinin önemi de artmaktadır. Verinin kaynağı bilinmeli ve yalnızca doğru kişilerle paylaşılmalıdır, istenmeyen kişilerden gizlenmelidir.

Değer: Doğru ve güvenilir bir şekilde edinilmiş verinin servis sağlayıcılar için önemi büyüktür. Elbette ki saf veri kendi başına pek bir anlam ifade etmemektedir. Büyük veri birtakım üretim analiz işlemlerinden geçtikten sonra ortaya çıkan sonuçlar servis sağlayıcılar için önemlidir.

Büyük Veri Uygulamaları

İnternet üzerinde yayımlanan veriler, insanların yoğun biçimde kullandığı sosyal ağlar ve İnternet ağına bağlı cihazlardan toplanan çeşitli sensör verileri gibi yapısal olan ve olmayan büyük miktardaki verilerden faydalı bilgiler ortaya çıkarma ihtiyacı doğmuştur. Günümüzde yalnızca büyük veriyi işleyerek finans, sağlık, güvenlik, enerji vb. alanlarda faydalı bilgiler üretme çabasında olan şirketler kurulmaktadır.

Bilindiği gibi Facebook ve Twitter gibi sosyal ağların milyonlarca kullanıcısı vardır. Kişilerin bu ağlardaki paylaşımları, beğenileri, üye oldukları gruplar ve arkadaşları vb. birçok bilgi kayıt altında tutulmakta ve analiz edilmektedir. Sosyal ağ paylaşımlarının büyük veri analizi ile ulaşılan bu tür bilgiler yüksek ticari değer taşımaktadır.

Bankalar da müşterileri ile ilgili bütün verileri saklamaktadırlar. Kişilerin hesap hareketleri, para transferleri, ödemeleri, kredi geçmişleri, İnternet bankacılığını kullanma saatleri ve ne tür işlemler gerçekleştirdikleri gibi birçok veri kayıt altındadır.

Hastaneler hastalardan toplanan medikal veriyi analiz ederek, hastalar ve hastalıklar hakkında anlamlı bilgiler edinmeyi hedeflemektedirler. Bu veriler analiz edilerek hastalıkların teşhisi koyulmaya çalışılmakta, tedavi giderleri azaltılmaya ve önleyici tedbirler belirlenmeye çalışılmaktadır. Yalnızca hasta bazında kişisel çıkarımlar değil, verilecek hizmeti iyileştirecek sonuçlar da elde edilmektedir.

Büyük verinin diğer uygulama alanlarına oyun firmaları, hava tahmini, genetik uygulamalar, otomobil firmalarının uygulamaları vb. örnekler verilebilir. Oyun firmaları da kullanıcıların performansları, tercihleri gibi verileri oyun sırasında ve sonrasında saklamakta ve analiz etmektedirler. Böylece ne tür reklam stratejileri izleyerek daha fazla kişiye ulaşabilecekleri konusunda büyük veri analizleri yapmaktadırlar. Bir diğer büyük veri uygulaması ise hava tahmini uygulamalarıdır. Uydulardan ve istasyonlardan sürekli ve büyük miktarlarda yeni meteorolojik bilgiler elde edilmektedir. Bu büyük ve sürekli bilgi kullanılarak bölgesel hava tahminleri yapılmaktadır. Kişilerin DNA örneklerindeki genetik bilgiler, genetik hastalıkların teşhisi ile ilgili çalışmalarda büyük veri analizinin kullanıldığı örneklerden bir başkasıdır. Otomobil üretici firmalar da kullanıcılarının sürüş davranışlarını analiz etmek için araçlardan veri toplamaktadırlar.

Büyük Veri Analitiği

Büyük veri analitiği, çeşitli tiplerdeki verileri içeren büyük veri setlerini işleyerek bu veri setlerinden çeşitli örüntüleri, veriler arasındaki ilişkileri, müşteri tercihlerini, market eğilimleri gibi yararlı iş bilgilerini açığa çıkarma işlemidir. Büyük veri analitiğinin ana amacı, büyük veriyi analiz ederek veri sahiplerine işleri hakkında daha doğru kararlar verebilmelerine yardımcı olmaktır.

Büyük veri analitiğindeki işlemler, toplam beş aşamadan oluşan iki ana parçaya ayrılabilir. Bunlar:

  • Veri Yönetimi
    • Veri Toplama ve Kayıt
    • Çıkartım Temizleme ve Belirtim
    • Birleştirme ve Gösterim
  • Veri Analitiği
    • Modelleme ve Analiz
    • Anlamlandırma

Veri Yönetimi

Veri toplama ve kayıt: İlk olarak verilerin, veri kaynağından toplanması gerekmektedir. Sosyal ağ, sensörler, ses kayıt cihaz vb. çeşitli kaynaklardan gelen veriler toplanmakta ve kayıt altına alınmaktadır. Bu toplama ve kayıt işlemlerinin otomatik olarak nasıl yapılacağı büyük veri analizinde ilk ve önemli adımdır.

Çıkartım, temizleme ve belirtim: Genellikle toplanan veri, analiz için hazır bir formatta değildir. Örneğin, hastane kayıtlarında tomografi cihazından alınan veriler ya da bir kan basıncı sensöründen alınan veriler ilk hâliyle kullanıma hazır değildir. Bu verilerden öncelikle analizde kullanılabilecek özelliklerin çıkarılması gerekmektedir.

Birleştirme ve gösterim: Veriler genellikle farklı kaynaklardan geldikleri için, kullanıma hazır hale getirmek amacıyla öncelikle birleştirilmeleri gerekmektedir.

Veri Analitiği

Modelleme ve analiz: Büyük veri üzerinde analiz ve sorgu yapmak, küçük örnekler üzerinde istatistik analiz yapmaktan farklıdır. Çünkü büyük veri genellikle gürültülü, dinamik olarak değişen ve homojen olmayan bir yapıya sahiptir. Ayrıca büyük veri, küçük örnek setlerinden daha değerlidir. Çeşitli veri modelleme teknikleri kullanılarak sıklıkla kullanılan örüntüler ve veriler arasındaki ilişkiler bulunabilir. Bu şekilde büyük veri üzerinden ilişkisel bilgi çıkarımı yapılır. Bu ilişkiler veri sahipleri için önemli bir bilgi kaynağıdır.

Anlamlandırma: Büyük veri analizinde son aşama modelleme ya da sorgu sonucunda açığa çıkan sonuçların anlamlandırılarak ilgili kişilere (örneğin; şirket yöneticisi, pazarlama direktörü vb.) sunulmasıdır. Modelden çıkan sonuçları olduğu gibi sunmak yeterli değildir. Karar verici kişilerin sonuçları yorumlaması ve doğrulaması gerekmektedir.

Metin Analitiği

Metin analitiği, bir diğer adıyla metin madenciliği, bir metinden bilgi çıkarma tekniğidir. Sosyal ağlardaki paylaşımlar, elektronik postalar, forumlara girilen yorumlar, çeşitli dokümanlar ve haberler şirketler tarafından kullanılan metin verisi örnekleridir. Metin analitiğinde çeşitli istatiksel yöntemler ve makine öğrenimi algoritmaları kullanılarak büyük veri özetlenerek karar verme sistemlerinde kullanılabilmektedir. Metin analitiği örneklerinden birisi de metin özetlemedir. Metin özetlemede bir ya da daha fazla doküman kullanılarak, orijinal büyük metnin önemli noktaları özetlenir. Metin özetleme sistemlerinin iki çeşidi vardır. Birincisi, çıkarım tabanlı özetlemedir. Bu özetleme sisteminde, ortaya çıkan özet orijinal dokümanın bir alt kümesidir. Orijinal dokümandaki nesneler üzerinde hiçbir değişiklik yapılmadan, yalnızca önemli olarak değerlendirilen kısımları ayrılmaktadır. İkinci tip özetleme yöntemi ise soyut tabanlı özetleme yöntemleridir. Dokümandan önemli bilgiler ve cümleler alındıktan sonra, doğal dil işleme yöntemleri kullanılarak bu bilgiler daha anlamlı başka kelimelerle yeniden ifade edilmektedir.

Metin analitiğinin bir diğer uygulaması da soru cevaplama teknikleridir. Soru cevaplama, çeşitli alanlarda bilgi erişimini ve doğal dil işleme tekniklerini kullanarak, insanların doğal konuşma dilinde sordukları sorulara otomatik cevaplar üretilmesini sağlayan sistemdir. Soru cevaplama sisteminin doğru ve güvenilir çalışması, arama yaptığı sistemdeki dokümanların kapsamına bağlıdır.

Güven analizi ve tercih madenciliği de metin analitiği konularından biridir. Tercih madenciliği bir ürün hakkında müşteri görüşlerini toplama ve bunları sınıflandırmayı kapsamaktadır. Tercih madenciliği genellikle makine öğrenmesini kullanmaktadır. Tercih madenciliği ticari şirketler için oldukça önemlidir. Tercih madenciliğinde dikkat edilmesi gereken çeşitli noktalar vardır. Bazı kelimeler hem olumlu hem de olumsuz anlamda kullanılabilir. Bu nedenle tercih madenciliği, kelimelerin salt anlamlarının yanı sıra bağlam içindeki anlamlarını da kavramaya yönelik olmalıdır.

Ses Analitiği

Ses analitiği, ses verisinden bilgi çıkarma işlemi olarak tanımlanabilir. Ses analitiği genellikle çağrı merkezlerinde ya da sağlık hizmetlerinde kullanılmaktadır. Ses analitiği sistemleri, müşterinin konuşması sırasında, gerçek zamanlı olarak sesi analiz etmekte ve müşterinin geçmiş ve şu andaki konuşmalarına dayanarak çıkarımlar da bulunmaya çalışmaktadır.

Video İçerik Analitiği

Video içerik analitiği, videodan otomatik olarak anlamlı bilgi çıkarma işlemidir. Büyük veri analiz teknikleri, binlerce saatlik videoları analiz etmek için kullanılmaktadır. Birincil kullanım alanı, güvenlik ve izleme sistemleridir. Bu sistemlerde, gizli bölgelere giren kişileri, yerinden kaldırılan ya da yeri değişen objeleri otomatik olarak ortaya çıkarmaktır. Diğer bir kullanım alanı da iş zekâsı uygulamalarıdır.

Hadoop ile Büyük Veri Programlama

Büyük veri sistemlerinde verinin hacmi çok büyüktür ve geleneksel yöntemlerle büyük veriyi işlemek zordur. Günümüzde büyük veri üzerinde işlem yapmaya olanak sağlayan yazılım çerçevelerinden biri Apache Hadoop’tur. Hadoop, büyük veri setlerinin dağıtık olarak saklanması ve üzerinde dağıtık işlemler yapılması için Java dilinde yazılmış açık kaynak kodlu bir yazılım çerçevesidir. Hadoop temelde iki ana parçadan oluşmaktadır. İlk parça, verinin saklandığı bölüm olan Hadoop Dağıtık Dosya Sistemi (HDFS)’dir. İkinci parça ise verinin işlendiği bölümdür (MapReduce).

HDFS, Hadoop için Java’da yazılmış dağıtık, ölçeklenebilir ve taşınabilir bir dosya sistemidir. HDFS büyük dosyaları birden fazla sunucuda saklamaktadır. Her bir sunucuda dosyanın farklı bir parçası saklanırken, bu parçalar sanal olarak birbirlerine bağlanarak tek bir dosya gibi işlem yapılabilmesine olanak sağlamaktadır. Hadoop’da HDFS katmanı temelde iki parçadan oluşmaktadır. Bunlar Ad Düğümü ve Veri Düğümü’dür. Ad düğümünde verinin kendisi değil, veri hakkında bilgiler saklanmaktadır. Dosyalar üzerindeki her türlü işlemden ad düğümü sorumludur. Veri düğümü ise asıl verinin tutulduğu kısımdır. HDFS, bir veri düğümünde problem olabileceğini düşünerek, veri güvenliğini sağlamak amacıyla verileri her zaman birden fazla veri düğümünde saklamaktadır. Bir düğümde veriye erişimde problem oluştuğunda, diğer veri düğümünden erişim sağlanmaktadır.

MapReduce, dağıtık mimari içerisinde bulunan dosyaları paralel bir şekilde analiz ederek, sonuçları çıkaran ve gönderen sistemlerden biridir. İlk olarak 2004 yılında Google tarafından duyurulan ve kullanılan bu sistem, günümüzde Facebook, Yahoo ve daha birçok şirket tarafından kullanılmaktadır. MapReduce iki temel parçadan oluşmaktadır. Bunlar İş Takipçisi ve Görev Takipçisi’dir. Dağıtık olarak çalışma prensibine sahip olan MapReduce, yapılması gereken işleri İş Takipçisi ile yönetir ve Görev Takipçisi ile gerçekleştirir. İş takipçisi, işlemcilerden gelen MapReduce işlerini, o an mevcut ve ulaşılabilir olan görev takipçisine gönderir. Yeni bir işlem geldiğinde bunu farklı bir görev takipçisine gönderir. Daha sonra görev takipçilerinde tamamlanan bütün işlemleri takip eder. Görev takipçileri ise, iş takipçisinden gelen işlemleri yapar. Bütün işlerini tamamladıktan sonra sonuçları iş takipçisine gönderir.

MapReduce işleminin gerçekleşmesinde öncelikli olarak giriş okuyucusu vasıtasıyla girdiler alınır. Sonra ne kadar haritalama (map) yapılacaksa, veri o kadar parçaya bölünür ve haritalama işlemi gerçekleştirilir. Haritalama işleminden sonra veriler karşılaştırılır ve sıralanır. Bu aşamadaki sonuçlar azaltılıp (reduce) sonuçlar birleştirilerek ana sonuca ulaşılır.

Hadoop günümüzde Amazon, Adobe, eBay, Facebook ve Google gibi birçok firmada büyük veri analizinde kullanılmaktadır. Hadoop ayrıca diğer büyük veri işleme projelerine liderlik etmiştir. Hadoop dışında diğer büyük veri işleme projelerine aşağıdaki örnekler verilebilir:

  • Apache Pig,
  • Apache Hive,
  • Apache Spark,
  • Apache Storm.