1 – NoSQL Nedir ?

Yeni Bir Yazı dizisine daha merhaba, Bu hafta Big Data – No SQL  Nedir konusuna değineceğiz ve her hafta bir tane kesin bir yazı yazacağız.

Her hafta yazıcağımız yazı ise Document Store ‘dan mongodb olacak. Elastic Search ile ilgili de yazılar gelicektir.

NoSQL Nedir ?

ilişkisel veritabanı yönetim sistemlerinden farklı ve alternatif bir yaklaşım olarak ortaya çıkan NoSQL,  herhangi bir şema formatında ve “ilişkisel olmayan” verileri depolayabileceğiniz veritabanı sistemlerine kavramsal olarak verilen isimdir.

big5

Elimizde her gün bir şekilde veri ürettiğimizi düşünün. Örneğin üstteki firmaların her hareketlerinde bir veri kümesi oluşmaktadır. Bu veriler kimi zaman standart bir yapıda, genellikle de değişken bir yapıda (unstructured) olmaktadır.Gelen alanlar sürekli değişebilir (artabilir,azalabilir) . Bir veride 100 alan gelirken bir sonrakinde bu sayı 200 e çıkabilir . Eğer böyle bir yapıyı İlişkisel Veritabanı kullanarak kurgularsak sürekli olarak tablo, kolon, index, trigger, dao … güncellemeleri gerekebilir

İşte noSQL burada işe yarıyor. Bizi büyük bir zahmetten kurtarıyor.

Kısaca NoSQL yararlarını listelemek istersek ,

  • Büyük verileri saklayabilmesi
  • Verileri birden fazla makina üzerinde saklayarak veri kaybını önlemesi(replication)
  • Kullanım kolaylığı

olarak sıralayabiliriz.

NoSQL’in bir çok çeşidi bulunmaktadır. Burada verilerin karakteristiği ve analiz türüne göre çeşitlerini sıralarsak,

Wide Column Store / Column Families

image020

Aslında ilişkisel veritabanlarına benzemektedir. farkı ise Super Column ile yapıyı belirleriz ve yukarıdaki gibi alanların altına her kayıt için farklı bir kolon oluşturabiliriz.

Kullanıdığı Yerler : Hadoop / HBase , Cassandra

Document Store

Documents

Document şeklinde kayıt edilen, saklanan verilerdir. JSON formatında saklanan bir veri örnek olarak gösterilebilir.

Kullanıldığı Yerler : MongoDB, ElasticSearch

Key Value / Tuple Store

dictionary image

Keyler üzerinden hızlı bir şekilde veriye ulaşabiliriz.

Kullanıldığı Yerler : Redis, DynamoDB

Graph Databases

nosql-graph

Bu yapı ise birbirleri ile ilişkili olan verilerin tutulduğu yapıdır.

Kullanıldığı yerler : Neo4j

Kısaca bir resimle özetleyecek olursak.

387743-63-635691106076945911_338x600_thumb

NoSQL veritabanı özelliklerini;

  • SQL sorgulama arayüzü ve bildiğimiz SQL sorguları ile çalışmıyor olmaları (Sorgulama arayüzleri değişkenlik gösteriyor. JSON, REST, RPC vb.. şeklinde farklı API’lerle sorgulanabilen versiyonlar mevcut. RavenDB ise tamamen LINQ ile sorgulanabiliyor!)
  • Çok-ögeli (tuple) sabit ilişkisel şemalar yerine veri tipleri önceden belirlenmemiş ve genişletilebilir veri şeması kullanıyor olmaları
  • Özellikle yatay ölçeklendirmeye göre tasarlanmış olmaları (Facebook, Google, Amazon gibi her gün terabaytlarca veriyle haşır olan devlerin NoSQL veritabanlarını tercih etmesinin ana nedenlerinden)
  • Veriyi disk ya da sadece hafızada taşıyabilir olmaları

NoSQL ile çalışırken alışmış olduğumuz ilişkisel veritabanlarımızdaki gibi verilerimizi satır satır saklamaya ve diğer tablolarla ilişkilendirip tanımlamalarımızı yapmıyoruz.Veriler JSON ya da XML formatında saklanıyor.

Ancak burada dikkat edilmesi gereken nokta NoSQL, Fire and Forget prensibi ile çalıştığı için bankacılık vb. kritik uygulamalarda kullanılmamalıdır. Aksine verinin 100% önemli olmadığı durumlarda kullanılabilir.

Post Author: umiitkose

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">