Merhaba arkadaşlar
Öncelikle verileri hangi amaçla kullanacağımıza karar verelim. İki temel kullanım yöntemini inceleyelim.
1-Analitik kullanım
Amaç geleceğe doğru yapacağımız seçimler ise batched olarak gelen veriler , son derece büyük veriler üzerinden yapılan hesaplamaları analitik olarak değerlendirebiliriz.
2-Operasyonel kullanım
Amaç anlık (şuan) ise gerçek zamanlı çalışmalar data flowlar ve datanın process edilmesi ise çok hızlı okumaya ve çok hızlı yazmaya ihtiyacımız var demektir.
Hadoop ne demektir ? Hadoop Batch-oriented analytical database systemi olarak nitelendirilebilir. Analitik kullanım ve büyük miktardaki veri için çok iyi bir sistemdir.
NoSQL ne demektir? Nosql ise Real-time operational database sistemidir. Operasyonel işler ve hız gerektiren işlerde ideal bir sistemdir.
Günümüzde RDBMS sistemlerin Cloud ölçeğinde Milyonlarca concurrent kullanıcı karşısında performansları düşük kalmaktadır. Veri esnekliği bakımından esnek değilllerdir. Bir database modelliğimiz senaryoda bir değişiklik çok zordur.
Resimdende anlaşılacağı gibi RDBMS sistemlerinde kullanıcı sayısı arttıkça sistemin maliyeti inanılmaz artar ancak uygulama performansı bu artışa paralellik gösteremez. Cloud uygulamalarında ise sadece yeni makinalar ekleyerek düşük maliyetle sisteminizin performansını paralel götürebilirsiniz.
Bugun mobile uygulamaların kullanım oranlarını düşündükçe nasıl bir database ile çalışmamız gerektiğini daha doğru anlayabilirsiniz.
RDBMS & NOSQL karşılaştırması
Mimari olarak bakıldığında
RDBMS databaseler DISK first yaklaşımındadır.Yani genellikle mimarileri
Write to disk —–>>> Log for availability —–>>> Cache index in memory
(okuma yazma işleri diskten)
şeklindedir.
NOSQL databaseler ise Memory first yaklaşımındadır.
CACHE data in memory —–>> replicate for availability —–>> Write to disk
(okuma yazma işleri öncelikle memoryden)
şeklindedir.
RDBMS databaseler 1970 ortaya çıkmış ve Oracle tarafından dünyada ilk ticari database 1979 üretilmiştir. Amacı normalization üstündedir. Temeli OLTP ye dayanır. Select ettiğimizde birçok tabloyu join yapmamız ve bunun neticesinde artan costlar ortaya çıkar.
NOSQL databaseler ise yapısı gereği hızlı ve esnektirler.
NOSQL databaseler RDBMS gibi aynı özellikte değillerdir.
Tercihlerimize göre
KEY-VALUE NOSQL databaseler
Key ve basit valuesunu tutarlar
örnek
Vno::123456 Value:Zekeriya
Document NOSQL databaseler
Key ve Structure değer tutar(document)
VNO::123456 {name:’Zekeriya’,age:42,ceptel:[542777777,53211111,5523333333]}
Column-Family nosql databaseler
key ve kolon setlerinden oluşur.
name:text Zekeriya
age: number 42
VNO:123425 54277777777
cep:number 552343535366
52425526277
Graph Nosql Databaseler
Linkedindeki connectionlarınız ,pagerank gibi kullanımlar için .
Sevgili arkadaşlar tahmin ettiğiniz üzere konu son derece detaylı ve önemli. Son yıllarda bir çok projede NOSQL database teknolojisi kullanarak projelerde inanılmaz farklar yarattık. Bu gelişmeleri sizlerle detaylı paylaşabilirim. Siz bu yeni nesil teknolojilerle ilgileniyorsanız kurumunuzda ücretsiz bir seminer düzenleyip
1-Hangi NOSQL database i hangi işlerde tercih etmeliyim
2-Key-Valuede hangi vendorı tercih etmeliyim? Column Familyde hangisini? Documentde hangisini?
3-CAP nedir? Biz nerdeyiz
4-Scale up mı Scale out mu?
5-Static data model mi ? Flex data modelmi?
6-Normalizationmı-De normalizationmı detaylı anlatabilir ve tartışabiliriz.
Imkanı olan arkadaşlarımında bu konuda Bilginc IT Academyde detaylı bir eğitim organize edebiliriz.
Bana ulaşmak için zekeriyab@bilginc.com , zekeriyabesiroglu@gmail.com ve 0542 768 00 00 kullanabilirsiniz.
Selamlar ,Saygılar