• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
NoSQL Sunumu
 

NoSQL Sunumu

on

  • 3,962 views

Author: Sarper Aydogan

Author: Sarper Aydogan

Statistics

Views

Total Views
3,962
Views on SlideShare
3,961
Embed Views
1

Actions

Likes
2
Downloads
71
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    NoSQL Sunumu NoSQL Sunumu Presentation Transcript

    • Sarper Aydoğan – Turkcell Teknoloji Staj’2010
    • No to SQL Not Only SQL
      • Var olma Sebebi?
      • 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.
      RDMS Performans Performans Data Karmaşıklığı Maaş Listesi Sosyal Networkler Web Uygulamaları
    • ilişkisel Yatay ve Dikey ölçeklendirmeye izin veren (Yeni modüllerin ve datanın rahatça eklenebilmesi) Dağınık JOIN ACID Atomicity, Consistency, Isolation, Durability Büyük datalar? Ölçeklendirme & Kaynaklar? CAP Consistency Availability Partition Tolerance
    • Key Value Stores
      • Bü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.
    • 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
    • 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″, }
      • Key –Value Store, Document DB ve RDBMS özelliklerini taşır
      Dinamik Query’ler Indexing
      • 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
    • 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 
    • 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.
    • 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
      • **http://wiki.apache.org/hadoop/Hbase/PoweredBy
    • Map and Reduce
    • 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
      Mevcut Klonlar BigTable ‘ın transaction oranına ulaşamamıştır. Google Maps, Earth, Gmail, YouTube inbox search
    • 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
      • 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 World brave Neo4j
    • 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
    • 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ı
    • NoSQL Dezavantajları
      • Data Integrity -> Uygulama Katmanına Dayalı
      • İlişkisel DB’ler kadar mature sistemler değiller
      • Standard bir dilin olmaması