Upload
veselin-nikolov
View
3.818
Download
14
Embed Size (px)
DESCRIPTION
Това е презентацията от дипломната ми защита, проведена на 18 октомври 2010 г. във ФМИ. Вижте блога ми за подробности.
Citation preview
NoSQL бази от данни – възможности и приложение
Автор: Веселин Николов, М-22528Ръководител: доц. д-р Калинка КалояноваКатедра: “Компютърна информатика”, ФМИ
NoSQL БД – възможности и приложение, Веселин Николов
Магистърска теза
Цел на дипломната работа
NoSQL БД – възможности и приложение, Веселин Николов
1. Решение на проблеми в RDBMS чрез употреба на NoSQL
2. Сравнение на различни NoSQL БД с MySQL
Проблеми пред RDBMS
• Скалируемост• Partitioning• Sharding• Кеширане• Денормализация• Промени в схемата
NoSQL БД – възможности и приложение, Веселин Николов
NoSQL решения
• Отказ от SQL• Отказ от фиксирана схема• JavaScript, JSON, REST• Евентуална консистентност• MapReduce• GFS, HDFS
NoSQL БД – възможности и приложение, Веселин Николов
NoSQL бази от данни
• BigTable, Dynamo• Cassandra, Riak• CouchDB, MongoDB• Redis, MemcacheDB• Hadoop, Hbase, RavenDB,
Kyoto Cabinet, Sherpa, Neo4j и др.
NoSQL БД – възможности и приложение, Веселин Николов
Google BigTable
• Многомерен масив• Колони и семейства от колони• SSTable• Компресия• GFS• 2004 г.
NoSQL БД – възможности и приложение, Веселин Николов
Amazon Dynamo
• Хоризонтално скалируема• Евентуално консистентна• Равнопоставени сървъри• Key/value БД• put/get• 2007 г.
NoSQL БД – възможности и приложение, Веселин Николов
Cassandra
• BigTable + Dynamo = Cassandra• Настройваема консистентност• Колони, семейства, суперколони• Cassandra-cli shell• Вместо индекси, нови семейства• Gossip• Java, Thrift
NoSQL БД – възможности и приложение, Веселин Николов
CouchDB
• Документи• REST, JavaScript, JSON• Материални изгледи• MapReduce• MVCC – ревизии на
документите
NoSQL БД – възможности и приложение, Веселин Николов
MongoDB
• Документи• Индекси• Mongo shell• JSON, JavaScript, MapReduce• ReplicaSet, auto sharding*
NoSQL БД – възможности и приложение, Веселин Николов
Hadoop
• HDFS
• MapReduce
• HBase
• Pig
• Hive
NoSQL БД – възможности и приложение, Веселин Николов
Проведени тестове
• Тестове за запис на данни
• Тестове за извличане на данни
• Обобщения с MapReduce
• Replica Set с MongoDB
• Наблюдение на заеманото място
NoSQL БД – възможности и приложение, Веселин Николов
Ограничения
• Отделни системи за тест и БД
• Конфигурация по подразбиране
• Малко памет
• Малък мащаб
• Елементарни задачи
NoSQL БД – възможности и приложение, Веселин Николов
Запис на данни
1000 документа в 1 нишка
MySQL: 49 sec, MongoDB 6.3 sec, Cassandra: 8 sec
NoSQL БД – възможности и приложение, Веселин Николов
Запис на данни
5000 документа в 50 нишки
MySQL: 65 sec, MongoDB 21 sec, Cassandra: 23 sec
NoSQL БД – възможности и приложение, Веселин Николов
Извличане на данни
1000 изчитания на статия с нейните коментари, конкурентно в 10 нишки
MySQL: 2.4 sec, CouchDB: 0.57 sec.
NoSQL БД – възможности и приложение, Веселин Николов
Обобщение
• Прости и бързи
• Скалируеми (ReplicaSet тест)
• MapReduce и SQL
• NoSQL и HDD
• Нужни са тестове, преди внедряване
NoSQL БД – възможности и приложение, Веселин Николов
Перспективи за развитие
• MongoDB single server durability• Cassandra – конфигурация в реално време• CouchDB – подреждане на MapReduce
• Hadoop PIG, Hadoop Hive QL• MapReduce в RDBMS
NoSQL БД – възможности и приложение, Веселин Николов
Въпроси?
NoSQL БД – възможности и приложение, Веселин Николов
Благодаря!
NoSQL БД – възможности и приложение, Веселин Николов