0
NoSQL  бази от данни – възможности и приложение <ul><li>Автор :  Веселин Николов, М-22528 </li></ul><ul><li>Ръководител : ...
Цел на дипломната работа NoSQL  БД  –  възможности и приложение,  Веселин Николов <ul><li>Решение на проблеми в  RDBMS  чр...
Проблеми пред  RDBMS <ul><li>Скалируемост </li></ul><ul><li>Partitioning </li></ul><ul><li>Sharding </li></ul><ul><li>Кеши...
NoSQL  решения <ul><li>Отказ от  SQL </li></ul><ul><li>Отказ от фиксирана схема </li></ul><ul><li>JavaScript, JSON, REST <...
NoSQL  бази от данни <ul><li>BigTable, Dynamo </li></ul><ul><li>Cassandra ,  Riak </li></ul><ul><li>CouchDB, MongoDB </li>...
Google BigTable <ul><li>Многомерен масив </li></ul><ul><li>Колони   и семейства от колони </li></ul><ul><li>SSTable </li><...
Amazon Dynamo <ul><li>Хоризонтално скалируема </li></ul><ul><li>Евентуално консистентна </li></ul><ul><li>Равнопоставени с...
Cassandra <ul><li>BigTable + Dynamo = Cassandra </li></ul><ul><li>Настройваема консистентност </li></ul><ul><li>Колони, се...
CouchDB <ul><li>Документи </li></ul><ul><li>REST, JavaScript ,  JSON </li></ul><ul><li>Материални изгледи </li></ul><ul><l...
MongoDB <ul><li>Документи </li></ul><ul><li>Индекси </li></ul><ul><li>Mongo shell </li></ul><ul><li>JSON, JavaScript, MapR...
Hadoop <ul><li>HDFS </li></ul><ul><li>MapReduce </li></ul><ul><li>HBase </li></ul><ul><li>Pig </li></ul><ul><li>Hive </li>...
Проведени тестове <ul><li>Тестове за запис на данни </li></ul><ul><li>Тестове за извличане на данни </li></ul><ul><li>Обоб...
Ограничения <ul><li>Отделни системи за тест и БД </li></ul><ul><li>Конфигурация по подразбиране </li></ul><ul><li>Малко па...
Запис на данни <ul><li>1000  документа   в 1 нишка </li></ul><ul><li>MySQL: 49 sec, MongoDB 6.3 sec, Cassandra: 8 sec </li...
Запис на данни <ul><li>5000  документа   в  50  нишки </li></ul><ul><li>MySQL:  65  sec, MongoDB  21  sec, Cassandra:  23 ...
Извличане на данни <ul><li>1000   изчитания на статия с нейните коментари, конкурентно в 10 нишки </li></ul><ul><li>MySQL:...
Обобщение <ul><li>Прости и   бързи </li></ul><ul><li>Скалируеми  (ReplicaSet  тест ) </li></ul><ul><li>MapReduce  и  SQL <...
Перспективи за развитие <ul><li>MongoDB single server durability </li></ul><ul><li>Cassandra  –   конфигурация в реално вр...
Въпроси? NoSQL  БД  –  възможности и приложение,  Веселин Николов
Благодаря! NoSQL  БД  –  възможности и приложение,  Веселин Николов
Upcoming SlideShare
Loading in...5
×

NoSQL бази от данни - възможности и приложение, дипломна защита

3,808

Published on

Това е презентацията от дипломната ми защита, проведена на 18 октомври 2010 г. във ФМИ. Вижте блога ми за подробности.

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

  • Be the first to like this

No Downloads
Views
Total Views
3,808
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Уважаема държавна изпитна комисия, уважаеми колеги
  • Хората влагат много труд в сайтовете си и изведнъж те започват да работят зле, като привидно нищо кой-знае какво не се е променило. Някаква INNODB таблица с текстове е достигнала скромен обем от 4 GB или данните ни са достигнали десетина милиона записа.
  • Скалируемост – възможност да се работи с нарастнал трафик или нарастнал обем, чрез добавяне на хардуер. RDBMS се забавят с нарастването на обема. JOIN, GROUP BY , ALTER стават бавни и постепенно невъзможни. Partitioning в RDBMS се прави по PK. Ако употребата на данните не е по PK, забавяне. Sharding е разделяне на данните от 1 таблица по критерий с код, написан от програмистите.
  • NoSQL решенията включват най-разнообразни идеи. Отказът от SQL е общ, отказът от фиксирана схема – почти. JS, JSON и REST са разпространени. Евентуалната консистентност е почти обща. MapReduce е особено популярен. Има разработена теорема на Ерик Брюър – от наличност, консистентност и толерантност към разделяне на части, БД може да осигури само 2. За това обичайно се жертва консистентността, като най-малкото зло.
  • Около 15 разгледани в известни детайли, от общо няколко десетки. BigTable клонинги, Динамо клонинги, Документни БД, k/v персистентни cache и др.
  • SSTable означава sorted string table – файл с подредени двойки ключ-стойност. GFS е отговорна за синхронизацията на данните по сървърите.
  • Peer архитектура – синхронизацията става между равнопоставени сървъри.
  • Суперколоната е допълнително ниво на йерархия от колони. Ако имаме колона с домашен адрес и колона с модел автомобил, суперколоната човек с идентификатор името му, обединява автомобила и адреса. Има шел, свой протокол за разпространение на измененията. Тази БД почти погреба digg , но пък изстреля в небесата reddit.
  • Документът в каучдб е json обект с произволна структура, подреден по ключ. Идентификаторите могат да са както от потребителя, така и автоматично генерирани. За да бъдат дотъпни данните от вътрешността на документа се използват изгледи, чрез design documents. Изгледите са материални и много бързи. Използват дистрибутиран между сървърите mapreduce за генерирането си. За решаване на конфликти се използва MVCC, базиран на ревизии, които съществуват едновременно.
  • Документна база, с конзолен шел, индекси за достъп в реално време. Много бързо писане, много компромиси по отношение консистентност. Fail при 4 sq, голям успех на други места.
  • Не изисква RAID, защото върши същото. Дублира данните по дисковете сървърите и ги чете паралелно, с цел оптимизация. MapReduce е отделно приложение спрямо базата данни – HBase или Cassandra. Притежава езици за изграждане на mapreduce заявки – Pig Latin и Hive QL. Ползва се от Yahoo, Twitter. Hbase работи с таблици.
  • За пълен тест е необходимо на 1 DB сървър да се осигури неколкократно превишаващ тестов ресурс. В моя случай машината с тестовете беше 3 годишен лаптоп, а тази с базите данни – 7-8 годишен десктоп.
  • Transcript of "NoSQL бази от данни - възможности и приложение, дипломна защита"

    1. 1. NoSQL бази от данни – възможности и приложение <ul><li>Автор : Веселин Николов, М-22528 </li></ul><ul><li>Ръководител : доц. д-р Калинка Калоянова </li></ul><ul><li>Катедра : “Компютърна информатика” , ФМИ </li></ul>NoSQL БД – възможности и приложение, Веселин Николов Магистърска теза
    2. 2. Цел на дипломната работа NoSQL БД – възможности и приложение, Веселин Николов <ul><li>Решение на проблеми в RDBMS чрез употреба на NoSQL </li></ul><ul><li>2. Сравнение на различни NoSQL БД с MySQL </li></ul>
    3. 3. Проблеми пред RDBMS <ul><li>Скалируемост </li></ul><ul><li>Partitioning </li></ul><ul><li>Sharding </li></ul><ul><li>Кеширане </li></ul><ul><li>Денормализация </li></ul><ul><li>Промени в схемата </li></ul>NoSQL БД – възможности и приложение, Веселин Николов
    4. 4. NoSQL решения <ul><li>Отказ от SQL </li></ul><ul><li>Отказ от фиксирана схема </li></ul><ul><li>JavaScript, JSON, REST </li></ul><ul><li>Евентуална консистентност </li></ul><ul><li>MapReduce </li></ul><ul><li>GFS, HDFS </li></ul>NoSQL БД – възможности и приложение, Веселин Николов
    5. 5. NoSQL бази от данни <ul><li>BigTable, Dynamo </li></ul><ul><li>Cassandra , Riak </li></ul><ul><li>CouchDB, MongoDB </li></ul><ul><li>Redis, MemcacheDB </li></ul><ul><li>Hadoop, Hbase, RavenDB, Kyoto Cabinet, Sherpa, Neo4j и др. </li></ul>NoSQL БД – възможности и приложение, Веселин Николов
    6. 6. Google BigTable <ul><li>Многомерен масив </li></ul><ul><li>Колони и семейства от колони </li></ul><ul><li>SSTable </li></ul><ul><li>Компресия </li></ul><ul><li>GFS </li></ul><ul><li>2004 г. </li></ul>NoSQL БД – възможности и приложение, Веселин Николов
    7. 7. Amazon Dynamo <ul><li>Хоризонтално скалируема </li></ul><ul><li>Евентуално консистентна </li></ul><ul><li>Равнопоставени сървъри </li></ul><ul><li>Key/value БД </li></ul><ul><li>put/get </li></ul><ul><li>2007 г. </li></ul>NoSQL БД – възможности и приложение, Веселин Николов
    8. 8. Cassandra <ul><li>BigTable + Dynamo = Cassandra </li></ul><ul><li>Настройваема консистентност </li></ul><ul><li>Колони, семейства, суперколони </li></ul><ul><li>Cassandra-cli shell </li></ul><ul><li>Вместо индекси, нови семейства </li></ul><ul><li>Gossip </li></ul><ul><li>Java, Thrift </li></ul>NoSQL БД – възможности и приложение, Веселин Николов
    9. 9. CouchDB <ul><li>Документи </li></ul><ul><li>REST, JavaScript , JSON </li></ul><ul><li>Материални изгледи </li></ul><ul><li>MapReduce </li></ul><ul><li>MVCC – ревизии на документите </li></ul>NoSQL БД – възможности и приложение, Веселин Николов
    10. 10. MongoDB <ul><li>Документи </li></ul><ul><li>Индекси </li></ul><ul><li>Mongo shell </li></ul><ul><li>JSON, JavaScript, MapReduce </li></ul><ul><li>ReplicaSet, auto sharding* </li></ul>NoSQL БД – възможности и приложение, Веселин Николов
    11. 11. Hadoop <ul><li>HDFS </li></ul><ul><li>MapReduce </li></ul><ul><li>HBase </li></ul><ul><li>Pig </li></ul><ul><li>Hive </li></ul>NoSQL БД – възможности и приложение, Веселин Николов
    12. 12. Проведени тестове <ul><li>Тестове за запис на данни </li></ul><ul><li>Тестове за извличане на данни </li></ul><ul><li>Обобщения с MapReduce </li></ul><ul><li>Replica Set с MongoDB </li></ul><ul><li>Наблюдение на заеманото място </li></ul>NoSQL БД – възможности и приложение, Веселин Николов
    13. 13. Ограничения <ul><li>Отделни системи за тест и БД </li></ul><ul><li>Конфигурация по подразбиране </li></ul><ul><li>Малко памет </li></ul><ul><li>Малък мащаб </li></ul><ul><li>Елементарни задачи </li></ul>NoSQL БД – възможности и приложение, Веселин Николов
    14. 14. Запис на данни <ul><li>1000 документа в 1 нишка </li></ul><ul><li>MySQL: 49 sec, MongoDB 6.3 sec, Cassandra: 8 sec </li></ul>NoSQL БД – възможности и приложение, Веселин Николов
    15. 15. Запис на данни <ul><li>5000 документа в 50 нишки </li></ul><ul><li>MySQL: 65 sec, MongoDB 21 sec, Cassandra: 23 sec </li></ul>NoSQL БД – възможности и приложение, Веселин Николов
    16. 16. Извличане на данни <ul><li>1000 изчитания на статия с нейните коментари, конкурентно в 10 нишки </li></ul><ul><li>MySQL: 2.4 sec, CouchDB: 0.57 sec. </li></ul>NoSQL БД – възможности и приложение, Веселин Николов
    17. 17. Обобщение <ul><li>Прости и бързи </li></ul><ul><li>Скалируеми (ReplicaSet тест ) </li></ul><ul><li>MapReduce и SQL </li></ul><ul><li>NoSQL и HDD </li></ul><ul><li>Нужни са тестове, преди внедряване </li></ul>NoSQL БД – възможности и приложение, Веселин Николов
    18. 18. Перспективи за развитие <ul><li>MongoDB single server durability </li></ul><ul><li>Cassandra – конфигурация в реално време </li></ul><ul><li>CouchDB – подреждане на MapReduce </li></ul><ul><li>Hadoop PIG, Hadoop Hive QL </li></ul><ul><li>MapReduce в RDBMS </li></ul>NoSQL БД – възможности и приложение, Веселин Николов
    19. 19. Въпроси? NoSQL БД – възможности и приложение, Веселин Николов
    20. 20. Благодаря! NoSQL БД – възможности и приложение, Веселин Николов
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×