nosql sunumu

17
Sarper Aydoğan – Turkcell Teknoloji Staj’2010

Upload: ahmet-balkan

Post on 20-Jan-2015

3.149 views

Category:

Education


5 download

DESCRIPTION

Author: Sarper Aydogan

TRANSCRIPT

Page 1: NoSQL Sunumu

Sarper Aydoğan – Turkcell Teknoloji Staj’2010

Page 2: NoSQL Sunumu

No to SQL

Not Only SQL

Var olma Sebebi?1.Sürekli artan veriyi ölçeklendirme -> 2.Artan karmaşık çoğa – çok (many to many) ilişkiler3.Çok öğeli sabit ilişkisel şemalar yerine önceden belirlenmemiş ve genişletilebilir veriler veri şeması kullanıyor olması 4.Veri karmaşık “Joinler” kullanılmadan sadece primary key’e dayalı olarak tekrar tekrar çağırılıyorsa.

RDMS Performans

Perf

orm

an

s

Data Karmaşıklığı

Maaş Listesi

Sosyal Networkler

Web Uygulamaları

Page 3: NoSQL Sunumu

ilişkisel

Yatay ve Dikey ölçeklendirmeye izin veren(Yeni modüllerin ve datanın rahatça eklenebilmesi)

Dağınık

JOIN

ACIDAtomicity,

Consistency, Isolation, Durability

Büyük datalar?

Ölçeklendirme & Kaynaklar?

CAP

ConsistencyAvailability

Partition Tolerance

Page 4: NoSQL Sunumu

Key Value StoresBüyük data bloklarını tutmak ve

ölçeklendirmek için kullanılır.

A

C

D

B

•Her unique anahtar değeri bir değeri referans eder. (HashMap)

•Database’in Değerden haberi yok

•Memcached’den farklı olarak replication, versioning, locking ve sorting gibi özellikler sunar.

Page 5: NoSQL Sunumu

VoldemortOpen Source (Linkedin Katkılarıyla)Veri otomatik, parçalar haline getirilip,

parçalar birden çok servera dağıtılıyor.Concurreny problemleri “multi-version

concurrency control” (MVCC) ile çözülüyor.Gelişmiş Failure Handling

Page 6: NoSQL Sunumu

Document Database Her veriyi bir doküman olarak saklar. Key Value Store’la benzerlik gösterir.

Farklı olarak

Key- Value Store’dan daha karmaşık yapıda veri saklar (Arrayler, objeler..) Multiple index’lemeyi destekler

RDBMS’den farklı olarak veri tabanı ve tablolar yok CouchDB, MongoDB

{“_id” : “1″,“name” : “A”,“groupid” : “1″,}{“_id” : “2″,“name” : “B”,“groupid” : “1″,}

Page 7: NoSQL Sunumu

Key –Value Store, Document DB ve RDBMS özelliklerini taşır

Dinamik Query’lerIndexing

•Hızlı okuma/yazma için dizayn edilmiştir.

•Tanıdık veri Tipleri Kullanır -> Array, Binary, Boolean, DateTime, Null, String, Embedded Object

Temel veri birimi -> Document

•Veriye ulaşma ve değiştirme yolları

indexler

Dinamik Query’ler

MapReduce

Page 8: NoSQL Sunumu

CouchDB & MongoDBDatabase ->

DocumentsConcurrency -> MVCCData Types ->

string,number,boolean,array,object

Query Method -> Map/reduce

Database -> Collections(Tables) -> Documents

Concurreny -> Yerinde Güncelleme

Data Types -> string, int, double, boolean, date, bytearray, object, array, others

Query Method -> Dynamic; object-based query language 

Page 9: NoSQL Sunumu

Wide Column StoresGoogle BigTable CloneSatır ve sütunlara dayanan ölçeklendirmeHer key birden çok sütunla ilişkilenirDağınık ve birden çok boyutludurYarı ilişkisel yapıya sahiptirÖlçeklendirme, satırları ve sütunları

parçalayarak meydana gelir Satırlar, primary key’e bağlı olarak bölünür. Sütunlar, sütun gruplarına bağlı olarak bölünür.

Page 10: NoSQL Sunumu

HBaseHadoop Database – büyük datasetlerine hızlı

read/writeHDFS (Hadoop Distributes File System) üzerinde

çalışırConcurrency - LocksBTree- Sıralama HızlıHadoop MapReduce’lariyla başa çıkabilecek Hbase

tabloları*Veri sıralanmış biçimde saklanırReal Time Query’ler için OptimizationTwitter, Yahoo!**

*MapReduce- Büyük datasetlerin çözülmesi**http://wiki.apache.org/hadoop/Hbase/PoweredBy

Page 11: NoSQL Sunumu

Map and Reduce

Page 12: NoSQL Sunumu

Hbase & CassandraJava tabanlıConcurrency - LocksBTree- Sıralama

HızlıHadoop

Dosyalamasını Kullanır

Java tabanlıConcurrency - MVCCOrdered Hash Index-

Btree’den daha yavaşOtomatik failure

detection ve full recovery

Mevcut Klonlar BigTable ‘ın transaction oranına ulaşamamıştır.Google Maps, Earth, Gmail, YouTube

inbox search

Page 13: NoSQL Sunumu

Graph DatabaseVeriyi tablolar yerine grafik yapıları (node, edge, property)

üzerinde değerleri saklayan database çeşidi. Key – Value yapısına benzetilebilir.

RDBMS –Static ve basit veriGraph – Dinamik ve karmaşık veri

Page 14: NoSQL Sunumu

Neo4j’deki tüm operasyonlar transactionlar üzerinden çalışır ve tüm transactionlar ACID’i destekler.

Node firstNode = graphDb.createNode();Node secondNode = graphDb.createNode();Relationship relationship = firstNode.createRelationshipTo(secondNode, MyRelationshipTypes.KNOWS );

firstNode.setProperty( "message", "Hello, " );secondNode.setProperty( "message", "world!" );relationship.setProperty( "message", "brave Neo4j");

Hello Worldbrave Neo4j

Page 15: NoSQL Sunumu

Name Type Concurreny Data Storage

Voldemort Key- Value MVCC RAM

Hbase Wide Column Locks Hadoop

Cassandra Wide Column MVCC Disk

CouchDB Document MVCC Disk

MongoDB Document Field-Level Disk

Neo4j Graph Locks Disk

Page 16: NoSQL Sunumu

NoSQL AvantajlarıOLTP Projelerinde hızlı read/write’a olanak

vermesiKolay ölçeklendirebilme ve dağıtım

yapabilmeİlişisel db’lere göre bazı projelerde kolay

implementation sağlaması

Page 17: NoSQL Sunumu

NoSQL DezavantajlarıData Integrity -> Uygulama Katmanına

Dayalıİlişkisel DB’ler kadar mature sistemler

değillerStandard bir dilin olmaması