E-Gürbüz

NoSQL Veritabanlarının Kullanım Alanları

Posted in NoSQL by Emre on Temmuz 7, 2011

NOSQL veri tabanı sistemleri günümüzde daha çok yüksek ölçeklenebilirlik ihtiyacı olan, dinamik içerikli Google, Facebook, Amazon, Twitter gibi web uygulamaları tarafından kullanılmaktadır. Yapılan pazar araştırmaları sonucu internet üzerindeki veri boyutu 2006 yılında 161 exabyte iken, 2010 yılında 6 kat büyüyerek 988 exabyte’a ulaşmıştır[13].  Yönetilen verinin bu kadar hızlı artması, veri üzerinde yapılan işlemlerin süresinin de artmasına sebep olur. Hedeflenen; yatay ölçeklenebilir, performansı yüksek, veri karmaşıklığı düşük ve yönetimi kolay bir veri tabanı sistemi ortaya koymaktır. NOSQL veri tabanı sistemleri tam olarak bu noktada özelleşmiş bu ihtiyaçlara çözüm üretmeyi amaçlar.

NOSQL veri tabanı sistemlerinden in-memory kategorisine dahil olan Memcached[14] veri tabanı sistemi dünyanın en çok ziyaret edilen üçüncü[15] web sitesi YouTube video barındırma sisteminde önbellek ihiytaçlarını karşılamak üzere kullanılmaktadır. Memcached’in kullanılması, YouTube firması için donanım maliyetlerinde %30 civarında düşüş, performansta ise %25’lik bir artış sağlamıştır. Memcahced dağıtık ve bellek tabanlı veri tabanı sistemini kullanan diğer uygulamalar için Wikipedia, WordPress, Sourceforge, Facebook, Zynga, Twitter, Joomla, Drupal firma ve web uygulamaları sıralanabilir.

NOSQL destekleyicilerinden ve NOSQL veri tabanı sistemlerinden Cassandra projesini ilk geliştiricilerinden dünyanın en büyük sosyal ağı olarak geçen Facebook, sistemindeki kullanıcılarına sunduğu site içi arama işlevini Cassandra veri tabanına dayandırmaktadır. 500 milyondan fazla kullanıcının sunduğu içerikte yapılan aramanın geri bildirim(response) zamanını düşürmek adına, kolay genişleyebilir özellikte tasarlanan Cassandra veri tabanı projesi 2009 yılından sonra Apache topluluğuna devredilmiştir.

     Apache topluluğuna ait HBase veri tabanı sistemi ise kolon tabanlı ve yapı olarak Google BigTable veri tabanı sistemine benzerlik gösteren, birçok uygulama alanı olan bir projedir. Ünlü web portallarından Yahoo, sisteminde barındırdığı her türlü dokümanın kendi aralarındaki benzerliği tespit eden, bir birini tekrar eden kopyaları ayıran yazılımında kullanmaktadır. Yine sosyal ağlar üzerinde reklamcılık ve medya işleriyle tanınan SocialMedia firması, reklam materyalleriyle kullanıclar arasındaki etkileşimleri ve hareketleri HBase tabanlı sisteminde saklamakta ve reklamcılık ile ilgili analiz işlemlerini bu veriler üzerinden gerçekleştirmektedir. Benzer kullanım alanları Adobe, Twitter gibi firmalarda da mevcuttur[16].

NOSQL sistemler genel olarak belirli bir amaca yönelik tasarlanmış ve kullanım alanları ilişkisel veri tabanı sistemlerinin aksine daraltılmıştır. Bu açıdan bakılacak olursa, NOSQL veri tabanı sistemleri ilişkisel veri tabanı sistemlerinin tümden yerine geçebilecek bir alternatif olarak değil, ilişkisel veri tabanları ile birlikte kullanılmasıyla heterojen sistemlerin ortaya çıkarılmasında yer alacak bir sistem parçasıdır. NOSQL’den maksimum fayda sağlayabilmenin ilk koşulu, kullanılması düşünülen sistem ile ne derece uygun olduğudur. NOSQL sistemlerin ne zaman, hangi koşullarda seçilmesi gerektiği hakkında standart kurallar olmamakla birlikte, farklı kaynaklardan edinilen bilgilerin derlemesi olarak şu şekilde sıralamak mümkündür[17][18][19]:

  • Mevcut sistemde oldukça büyük veriler (terabyte seviyesinde) üzerinde işlemler yapılıyor ve performans yükseltme ihtiyacı öncelik taşıyorsa
  • Mevcut ilişkisel modelin özellikle join sorgularında getirdiği karmaşıklıktan kaçınmak üzere de-normalization işleminin yapılması gerektiği düşünülüyorsa
  • Mevcut sistem çoklu-nesne-hareketi(multi-object transaction) gerektirmeyen, daha çok her harekette bir nesne üzerinden işlem yapılıyorsa
  • Sistemin gereksinimleri sürekli değişkenlik gösteriyor ve bu değişiklikleri ilişkisel model yansıtmak kayda değer kaynak maliyeti ortaya çıkarıyorsa
  • Mevcut sistemde aynı kayıtlar üzerinden okuma işlemi sık olarak gerçekleştiriliyor ve önbellek mekanizmasına ihtiyaç duyuluyorsa
  • Sistemde bulunan ve yapısal olmayan verilere ihtiyaç duyan, veri ambarı veya diğer uygulamalara sunulan verilerin saklanması için şema ve yapısal veri olgusu olmayan bir veritabanı ihtiyacı varsa
  • Yüksek erişilebilirlik(high availability)  adına yapılan harcamaların getirdiği performans için gereğinden fazla olduğu düşünülüyorsa

NOSQL sistemlerinin kullanılması düşünülebilir.

 

[13] Web content http://www.emc.com/collateral/analyst-reports/expanding-digital-idc-white-paper.pdf

[14] Memcached            http://memcached.org/

[15] Youtube.com Statistics on Alexa.com http://www.alexa.com/siteinfo/youtube.com

[16] Apache HBase Users http://wiki.apache.org/hadoop/Hbase/PoweredBy

[17] Recipes for Using No Relational Databases http://nosql.mypopescu.com/post/398352022/recipes-for-using-nosql-solutions

[18] When to NOSQL? http://nosql.mypopescu.com/post/807203888/getting-started-with-nosql

[19] Top 5 Reasons for NOSQL http://facility9.com/2010/09/16/five-reasons-to-use-nosql

Şununla etiketlendi:, , ,

Yorum yapın

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Değiştir )

Twitter picture

You are commenting using your Twitter account. Log Out / Değiştir )

Facebook photo

You are commenting using your Facebook account. Log Out / Değiştir )

Connecting to %s

Follow

Get every new post delivered to your Inbox.