Veritabanı Uygulamaları dersinde yaptığım ödevi sizlerle paylaşayım istedim. Aslında internette birçok yerde bulabileceğiniz bir kaç terimin anlamları sadece. NoSQL
, Big Table ve Hadoop terimlerinin açıklamaları:
NOSQL
NoSQL, Carlo Strozzi tarafından tasarlanan, 1998 yılında çıkarılan ve ara yüzü olmayan açık kaynak ilişkisel veritabanıdır. Klasik veritabanları çok sayıda veriyi indeksleme, yoğun trafiği olan sunan Web sayfalarında, yoğun veri uygulamalarında yetersiz kalmışlardır. NoSQL, yoğun oku/yaz hizmeti vermektedir. İnternette sürekli artış gösteren resim, video, metinler gibi verileri depolayabilmek için ve yüksek trafiğe sahip sistemlerin ihtiyaçlarını karşılamak için ortaya çıkmış, yatay olarak ölçeklendirilebilen sistemlere verilen genel addır. SQL dili kullanılmadığı için “NoSQL” denmiştir. Henüz kendini tam olarak kanıtlayamadığı için ve endüstri standardı olarak kabul edilmediğinden kimileri tarafından “Not Only SQL” olarak da anılır. Kimi programcılar NoSQL’i harika bir teknoloji olarak görürken, kimileri ise bu sistemin tek başına yeterli olmayacağı kanısındadır. Kısacası henüz bir ortak görüş belirtilmiş değil NoSQL konusunda…
NoSQL’in kullanıldığı yerlere örnek verilirse; Google tarafından kullanılıyor ve Google’a büyük avantaj sağlıyor. Google, verilerini, NoSQL sistemi olan Big Table üzerinde tutuyor. Big Table, diğer sistemlere göre indekslenme ve maliyet yönünden çok daha avantajlı durumda.
BIG TABLE
Big table, Google arama motoru tarafından geliştirilen ve arama motoru tasarımında kullanılan sistemdir. Big table’ın kullanımındaki amacı, daha hızlı indeksleme, daha başarılı bir depolama, web sayfaları arasında arama yapıp bulma ve güncellemedir. Big table’ın mantığı; aranan herhangi bir veriye erişmek için aranan hücrenin zaman, satır ve kolon bilgisine ihtiyaç duyulur. İşlemler sadece satır seviyesinde yapılır. Bu yüzden ilişkisel veritabanı sistemlerinde olduğu gibi tablolar arasında birleştirme işlemlerine gerek yoktur. Bunun yanı sıra, yapılan her işlem ek bir işlem kütüğünde depolanır ve bu kütüğe sunucuların tamamı erişebilir. Sunuculardan her hangi birisinin bozulmasına karşılık önlem alınmıştır. Bu önlem sayesinde her hangi bir problemle karşılaşıldığında diğer sunuculardan biri kütüğe erişim sağlayarak problem oluşturan sunucunun yerine çalışabilir.
Big Table’ın en önemli avantajlarından birisi, satır bazında bir kısıtlamanın olmamasıdır. Yani eklenecek her kayıt için sonsuz sayıda bağlantı tutulması gerekebilir. Eğer daha önceden bir sayı belirlenmiş olsaydı iki türlü dezavantajı olurdu. Mesela her sayfa için bin adet bağlantı tutma limiti gelmiş olsaydı, daha az sayıda olan sayfalar için fuzuli olarak bellekte yer işgal edilecekti. Daha fazla sayıda bağlantılar için de bağlantıların yalnız ilk bin tanesinin tutulup, geri kalan kısmın tutulamaması gibi bir durum oluşacaktı. Big table yaklaşımıyla disk erişimi de azaltılmış oluyor. Çünkü bir erişimde siteyle alakalı tüm bilgiler okunabilir. İlişkisel veritabanı kullanılması durumunda, siteyle alakalı bilgilerin okunması sadece bütün tablolara erişim sağlandıktan sonra mümkün olurdu.
Big table yaklaşımının dezavantajı da vardır. Mesela aynı verinin birden fazla sitede bulunması bir risktir. İnternette bir çok site kopya içeriğe sahiptir. Gerek forum siteleri, gerek blog siteleri vs. kopya içeriklerle doludur. Sadece az bir kısmı özgündür.
HADOOP
Hadoop, Google arama motoru dosya sistemi teknolojisi olan MapReduce algoritmasını birçok bilgisayara dağıtarak uygulamamızı sağlayan, Java ile kodlanmış açık kaynaklı bir yazılımdır. Hadoop yatay olarak ölçeklenebilen bir teknolojidir. Bu nedenle kümedeki her makina kendi verisine sahiptir.
Hadoop’u günümüzde Facebook ve New York Times kullanıyor. Facebook, Hadoop kullanarak üyelerinin davranışlarının analizini yapıyor ve sosyal reklamların etkisini ölçüyor. New York Times bilgi işlem ekibi de, Hadoop kullanarak 150 yıllık arşivlerindeki 11 milyon makaleyi dijitalleştirmiş ve aranabilir hale getirmiş. Böylelikle 150 içerisinde oluşturduğu arşivlerden istediği bir bilgiye kolaylıkla ulaşabiliyor.