Merhaba arkadaşlar,
Günümüz dünyasında ilişkisel veritabanı modellerinin birbirinin neredeyse aynısı olduğu söylemek mümkün. Örneğin bir Mysql database ile Oracle database arasında Rdbms olarak bir fark olduğu söylemek son derece güç genelde farkın güvenlik , performans ve veri büyüklüğü karşısında Cluster çalışma mantığından geldiğini söyleyebilirim. RDBMS konusunda bence en iyi database pazardan da anlaşılacağı Oracle dır.
NOSQL databaseler konusunda ise durum tam olarak böyle değil yapıları gereği bir çok farklı kategori mevcut. Bu kategorilerden iki-üç tanesi ön plana çıkıyor.
Wide Column Store/Column Family databaseler ,Key/Value ve Document Based veri tutabilen NOSQL çözümleri.
Column Family databaselere örnek Apache Hbase %100 open source HDFS storage kullanabilen çok hızlı performansa sahip , çökmesi zor Fault toleransı olan bir NOSQL çözümüdür. Milyarlarca satır Milyonlarca kolondan oluşabilen ve VERSION mantığına sahip Hadoop gibi genel sıradan donanım üzerinde bile inanılmaz iyi olan bir NOSQL çözümüdür.Eğer random ve real time data access istiyorsanız Hbase düşünmeniz gereken bir seçenektir. Hbase bir Cloumn oriented databasedir. Yani amacınız 5 milyar kayıt içerisinde kolon bazında en büyük 50 taneyi bulmaksa doğru yerdesiniz demektir.
Bu tarz databaselerde Key değeri birçok parçadan oluşabilir, yani key işte vatandaşlık numarası yada abone numarası demek doğru olmaz.
Key Column Family,rowid,Column qualifer ve timestampdan oluşur.
Value ise bu Keyin döndürdüğü değerdir.
Örnek Tablo yaratma
hbase> create ‘table1’, {NAME => ‘family1’, VERSIONS => 5}
burada table1 tek kolon familysinde ama beş versiyon tutabilecek şekilde yarattım.
hbase> create ‘sosyal’, {NAME => ‘facebook’},{NAME => ‘twitter’}, {NAME => ‘instagram’}
Burada Sosyal isimli tablomda facebook CF si Twitter CFsi ve Instagram CF yarattım. Bu CFleri Design time verdim ama Clumn qualifer olan kolonlarını run time vereceğim.
Bu örnekte ise
hbase> put ‘t1’, ‘r1’, ‘c1’, ‘VALUE’, ts1 Table Row Kolon ve değeri ve opsiyonel olarak timestamp girebilirim.
Bu örnekte ise
hbase> get ‘tableA’, ‘row1’
hbase> get ‘tableA’, ‘row1’, {TIMERANGE => [ts1, ts2]}
hbase> get ‘tableA’, ‘row1’, {COLUMN => ‘kolon1’}
hbase> get ‘tableA’, ‘row1’, {COLUMN => [‘Kolon1’, ‘kolon2’, ‘kolon3’]}
hbase> get ‘tableA’, ‘r1’, {COLUMN => ‘kolon’, TIMESTAMP => timestamp değeri}
gibi son derece kolay kullanabiliriz.
Bir diğer önemli NOSQL kategorisi ise Document store. Bu konuda Mongodb ve Couchbase liderlik yaptığını söyleyebilirim. Genel Json ve Json benzeri bir structureları vardır.
Couchbase server dağıtık, document ve key/value bazlı bir NoSQL çözümü. Couchbase server kalıcı veriyi memory gücü ile birleştirmiş son derece hızlı veri getirebilen update edebilen bir database. Yazma ve okuma işlemlerinde Key/value apisini kullanalirken bu veriler JSon dokümanı olabilir. Couchbase sağladığı doküman indexlemesi özellikle sorgulamada büyük avantajlar sağlayabilir.
Couchbase serverlerın diğer belli başlı en temel özellikleri hız. Veriyi mümkün olduğunca memory tutan ve kullanan bu sistem bize veri response timelarında milisaniyeleri çok rahatlıkla sağlıyabiliyor. Node ekleme ve Cluster mimarisi olan bu yapıda tutarlılıkda en üst seviyelerde olabiliyor.
Bir başka önemli özelliği ise kolaylığı. Çoğu Nosql database gibi kolay kurulum ve hızlı bir şekilde Nodelar eklenebilen yapısı mevcut. Schemaless yapısı sayesinde veriyi tutmadan yapısını tanımlamanıza gerek yok. Design time ve Run Time yapısı son derece mantıklı ve kolay. Yine Couchbase sorgulaması son derece kolay olan bir database.
Bir başka önemli özelliği ise Elastic yapısı yani Cluster yapmak birçok makinada çalıştırmak büyümek varolan Cluster’a yeni makina eklemek gibi imkanlarımız mevcut.
Özellikle iki ana kavram günümüz IT dünyasında öne çıkıyor bunlardan biri latency biri throughput . Bu iki önemli başlıkta Couchbase serverların low -latency ve high throughput ihtiyacı olan web ve mobile uygulamalarda inanılmaz iyi performansları olduğunu görüyoruz.
Piyasada bazı önemli Nosql databaseler
Wide Column Store/Column Family modeli
Hadoop/HBASE,Cassandra,AmazonSimpleDB,Flink,Accumulo,Splice,Cloud Data
Document Store Nosql Databaseler
Mongodb,Elastic Search, Couchbase,Marklogic Server,Azure Documentdb
Key Value Store
Amazon DynomoDB,Oracle NOSQL,Azure Table Storage,Riak
Bir başka yazımda diğer NOSQL çözümleri ile detaylı bilgiler paylaşmak üzere. NOSQL çözümleri ile ilgili firmanızda detaylı bir bilgiye ihtiyacınız varsa bana zekeriyab@bilginc.com dan ulaşabilirsiniz.
Bilginc IT Academyde NOSQL çözümleri üzerine birçok farklı eğitimimiz mevcut.