No SQL

873 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
873
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

No SQL

  1. 1. Sarper Aydoğan - TurkcellTeknolojiStaj 2010<br />
  2. 2. Var olma Sebebi?<br />Sürekli artan veriyi ölçeklendirme -> <br />Artan karmaşık çoğa – çok (manytomany) ilişkiler<br />Çok öğeli sabit ilişkisel şemalar yerine önceden belirlenmemiş ve genişletilebilir veriler veri şeması kullanıyor olması <br />Veri karmaşık “Joinler” kullanılmadan sadece primarykey’e dayalı olarak tekrar tekrar çağırılıyorsa.<br />No to SQL<br />RDMS Performans<br />Maaş Listesi<br />Web Uygulamaları<br />Not Only SQL<br />Performans<br />Sosyal Networkler<br />Data Karmaşıklığı<br />
  3. 3. Büyük datalar?<br />Consistency<br />JOIN<br />Availability<br />ilişkisel<br />CAP<br />PartitionTolerance<br />Dağınık <br />ACID<br />Atomicity, Consistency, Isolation, Durability<br />Yatay ve Dikey ölçeklendirmeye izin veren<br />(Yeni modüllerin ve datanın rahatça eklenebilmesi)<br />Ölçeklendirme & Kaynaklar?<br />
  4. 4. KeyValueStores<br />Büyük data bloklarını tutmak ve ölçeklendirmek için kullanılır.<br />A<br /><ul><li>Her uniqueanahtar değeri bir değeri referans eder. (HashMap)
  5. 5. Database’in Değerden haberi yok
  6. 6. Memcached’den farklı olarak replication, versioning, locking ve sorting gibi özellikler sunar.</li></ul>B<br />C<br />D<br />
  7. 7. Voldemort<br />OpenSource (Linkedin Katkılarıyla)<br />Veri otomatik, parçalar haline getirilip, parçalar birden çok servera dağıtılıyor.<br />Concurreny problemleri “multi-versionconcurrencycontrol” (MVCC) ile çözülüyor.<br />Gelişmiş FailureHandling<br />
  8. 8. DocumentDatabase<br />Her veriyi bir doküman olarak saklar. KeyValueStore’la benzerlik gösterir. Farklı olarak<br />Key- ValueStore’dan daha karmaşık yapıda veri saklar (Arrayler, objeler..)<br />Multipleindex’lemeyi destekler<br />RDBMS’den farklı olarak veri tabanı ve tablolar yok<br />CouchDB, MongoDB<br />{“_id” : “1″,“name” : “A”,“groupid” : “1″,}<br />{“_id” : “2″,“name” : “B”,“groupid” : “1″,}<br />
  9. 9. Key –ValueStore, Document DB ve RDBMS özelliklerini taşır<br />Dinamik Query’ler<br />Indexing<br />Temel veri birimi -> Document<br /><ul><li>Hızlı okuma/yazma için dizayn edilmiştir.
  10. 10. Tanıdık veri Tipleri Kullanır -> Array, Binary, Boolean, DateTime, Null, String, EmbeddedObject</li></ul>indexler<br /><ul><li>Veriye ulaşma ve değiştirme yolları</li></ul>Dinamik Query’ler<br />MapReduce<br />
  11. 11. CouchDB & MongoDB<br />Database -> Documents<br />Concurrency -> MVCC<br />Data Types -> string,number,boolean,array,object<br />QueryMethod -> Map/reduce<br />Database -> Collections(Tables) -> Documents<br />Concurreny -> Yerinde Güncelleme<br />Data Types -> string, int, double, boolean, date, bytearray, object, array, others<br />QueryMethod -> Dynamic; object-basedquerylanguage <br />
  12. 12. WideColumnStores<br />GoogleBigTableClone<br />Satır ve sütunlara dayanan ölçeklendirme<br />Her key birden çok sütunla ilişkilenir<br />Dağınık ve birden çok boyutludur<br />Yarı ilişkisel yapıya sahiptir<br />Ölçeklendirme, satırları ve sütunları parçalayarak meydana gelir<br />Satırlar, primarykey’e bağlı olarak bölünür.<br />Sütunlar, sütun gruplarına bağlı olarak bölünür.<br />
  13. 13. HBase<br />HadoopDatabase – büyük datasetlerine hızlı read/write<br />HDFS (HadoopDistributes File System) üzerinde çalışır<br />Concurrency - Locks<br />BTree- Sıralama Hızlı<br />HadoopMapReduce’lariyla başa çıkabilecek Hbase tabloları*<br />Veri sıralanmış biçimde saklanır<br />Real Time Query’ler için Optimization<br />Twitter, Yahoo!**<br />*MapReduce- Büyük datasetlerin çözülmesi<br />**http://wiki.apache.org/hadoop/Hbase/PoweredBy<br />
  14. 14. MapandReduce<br />
  15. 15. Hbase & Cassandra<br />Java tabanlı<br />Concurrency - Locks<br />BTree- Sıralama Hızlı<br />Hadoop Dosyalamasını Kullanır<br />Java tabanlı<br />Concurrency - MVCC<br />OrderedHashIndex- Btree’den daha yavaş<br />Otomatik failuredetection ve fullrecovery<br />inboxsearch<br />Mevcut Klonlar BigTable ‘ıntransaction oranına ulaşamamıştır.<br />GoogleMaps, Earth, Gmail, YouTube<br />
  16. 16. GraphDatabase<br />Veriyi tablolar yerine grafik yapıları (node, edge, property) üzerinde değerleri saklayan database çeşidi. Key – Value yapısına benzetilebilir.<br />RDBMS –Static ve basit veriGraph – Dinamik ve karmaşık veri<br />
  17. 17. Neo4j’deki tüm operasyonlar transactionlar üzerinden çalışır ve tüm transactionlarACID’i destekler.<br />NodefirstNode = graphDb.createNode();<br />NodesecondNode = graphDb.createNode();<br />Relationshiprelationship = firstNode.createRelationshipTo(<br />secondNode, MyRelationshipTypes.KNOWS );<br />firstNode.setProperty( "message", "Hello, " );<br />secondNode.setProperty( "message", "world!" );<br />relationship.setProperty( "message", "brave Neo4j");<br />brave Neo4j<br />Hello<br />World<br />
  18. 18.
  19. 19. NoSQL Avantajları<br />OLTP Projelerinde hızlı read/write’a olanak vermesi<br />Kolay ölçeklendirebilme ve dağıtım yapabilme<br />İlişiseldb’lere göre bazı projelerde kolay implementation sağlaması<br />
  20. 20. NoSQL Dezavantajları<br />Data Integrity -> Uygulama Katmanına Dayalı<br />İlişkisel DB’ler kadar mature sistemler değiller<br />Standard bir dilin olmaması<br />

×