Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Sarper Aydoğan – Turkcell Teknoloji Staj’2010

Benzer bir sunumlar


... konulu sunumlar: "Sarper Aydoğan – Turkcell Teknoloji Staj’2010"— Sunum transkripti:

1 Sarper Aydoğan – Turkcell Teknoloji Staj’2010

2 Not Only SQL Var olma Sebebi? No to SQL
Sürekli artan veriyi ölçeklendirme -> Artan karmaşık çoğa – çok (many to many) ilişkiler Çok öğeli sabit ilişkisel şemalar yerine önceden belirlenmemiş ve genişletilebilir veriler veri şeması kullanıyor olması Veri karmaşık “Joinler” kullanılmadan sadece primary key’e dayalı olarak tekrar tekrar çağırılıyorsa. No to SQL RDMS Performans Maaş Listesi Web Uygulamaları Not Only SQL Performans Sosyal Networkler Data Karmaşıklığı

3 Atomicity, Consistency, Isolation, Durability
Büyük datalar? Consistency JOIN Availability ilişkisel Partition Tolerance CAP Dağınık ACID Atomicity, Consistency, Isolation, Durability Yatay ve Dikey ölçeklendirmeye izin veren (Yeni modüllerin ve datanın rahatça eklenebilmesi) Ölçeklendirme & Kaynaklar?

4 Key Value Stores Büyük data bloklarını tutmak ve ölçeklendirmek için kullanılır. A 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. B C D

5 Voldemort Open 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

6 Document Database { “_id” : “1″, “name” : “A”, “groupid” : “1″, }
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″, }

7 Key –Value Store, Document DB ve RDBMS özelliklerini taşır
Dinamik Query’ler Indexing Temel veri birimi -> Document Hızlı okuma/yazma için dizayn edilmiştir. Tanıdık veri Tipleri Kullanır -> Array, Binary, Boolean, DateTime, Null, String, Embedded Object indexler Veriye ulaşma ve değiştirme yolları Dinamik Query’ler MapReduce

8 CouchDB & MongoDB Database -> Documents Concurrency -> MVCC
Data 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 

9 Wide Column Stores Google BigTable Clone
Satır ve sütunlara dayanan ölçeklendirme Her key birden çok sütunla ilişkilenir Dağınık ve birden çok boyutludur Yarı 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.

10 HBase Hadoop Database – büyük datasetlerine hızlı read/write
HDFS (Hadoop Distributes File System) üzerinde çalışır Concurrency - Locks BTree- Sıralama Hızlı Hadoop MapReduce’lariyla başa çıkabilecek Hbase tabloları* Veri sıralanmış biçimde saklanır Real Time Query’ler için Optimization Twitter, Yahoo!** *MapReduce- Büyük datasetlerin çözülmesi **

11 Map and Reduce

12 Hbase & Cassandra Java tabanlı Concurrency - Locks
BTree- Sıralama Hızlı Hadoop Dosyalamasını Kullanır Java tabanlı Concurrency - MVCC Ordered Hash Index- Btree’den daha yavaş Otomatik failure detection ve full recovery inbox search Mevcut Klonlar BigTable ‘ın transaction oranına ulaşamamıştır. Google Maps, Earth, Gmail, YouTube

13 Graph Database Veriyi 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 veri Graph – Dinamik ve karmaşık veri

14 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"); brave Neo4j Hello World

15 Name Type Concurreny Data Storage Voldemort Key- Value MVCC RAM Hbase Wide Column Locks Hadoop Cassandra Disk CouchDB Document MongoDB Field-Level Neo4j Graph

16 NoSQL Avantajları OLTP Projelerinde hızlı read/write’a olanak vermesi
Kolay ölçeklendirebilme ve dağıtım yapabilme İlişisel db’lere göre bazı projelerde kolay implementation sağlaması

17 NoSQL Dezavantajları Data Integrity -> Uygulama Katmanına Dayalı
İlişkisel DB’ler kadar mature sistemler değiller Standard bir dilin olmaması


"Sarper Aydoğan – Turkcell Teknoloji Staj’2010" indir ppt

Benzer bir sunumlar


Google Reklamları