Download - NoSQL basics

Transcript
Page 1: NoSQL basics

eleks.com eleks.com

NoSQL: основи

Page 2: NoSQL basics

План NoSQL концепції Види NoSQL NoSQL vs RDBMS Реплікація CAP теорема Redis MongoDB

Page 3: NoSQL basics
Page 4: NoSQL basics

NoSQL – це…сукупність технологій баз даних, які були розроблені у відповідь на вимоги сучасних додатків: великі об’єми нових типів даних, що швидко

змінюються; короткотривалі цикли розробки (1-2 тижні) аплікації як сервіси, завжди доступні,

масштабовані для мільйонів користувачів перевага масштабованих архітектур з

використанням відкритого ПЗ

Page 5: NoSQL basics

Види NoSQL Ключ-значення Документні Графові Об’єктні Інші

Page 6: NoSQL basics

NoSQL: Ключ-значення сховищавикористовують асоціативні масиви (також відомі як словники) як фундаментальну модель даних. В цій моделі дані зберігаються як колекція пар ключ-значення, так що кожен ключ зустрічається лише один раз.

Page 7: NoSQL basics

Ключ-значення БД: приклади Redis Riak Dbm Berkeley DB

Page 8: NoSQL basics

NoSQL: Документні БДставить у відповідність кожному ключу складну структуру даних відому, як документ. Документ може містити багато відмінних пар ключ-значеня, або ж ключ-масив і навіть вкладені документи

Page 9: NoSQL basics

Документні БД: приклади MongoDB CouchDB DocumentDB MarkLogic

Page 10: NoSQL basics

NoSQL: Графові БДвикористовують граф з вершинами, ребрами та властивостями для представлення та збереження даних.

Page 11: NoSQL basics

Графові БД: приклади Neo4J Giraph OrientDB Stardog

Page 12: NoSQL basics

NoSQL: Об’єктні БДпредставляють інформацію у вигляді об’єктів, що використовуються в об’єктно-орієнтованому програмуванні.

Page 13: NoSQL basics

Об’єктні БД: приклади ObjectDB JADE Db4o Perst

Page 14: NoSQL basics

NoSQL vs RDBMSSQL NoSQL

Типи Одного типу (SQL) з мінімальними відмінностями

Багато різних типів, наприклад, сховища ключ-значення, документні, графові та інші

Модель зберігання даних Окремі записи зберігаються як рядки в таблицях, де кожна колонка зберігає специфічну частину даних про даний запис. Пов’язані дані зберігаються в інших таблицях, а потім об’єднуються для виконання складних запитів.

Варіюється в залежності від виду бази даних. На приклад, ключ-значення сховища зберігають складні об’єкти як BLOB. Документні БД зберігають всю пов’язану інформацію разом в одному документі

Page 15: NoSQL basics

NoSQL vs RDBMSSQL NoSQL

Схема Структура та типи даних є фіксованими. Для збереження нових даних, вся база даних повинна бути змінена. Протягом цього часу база даних є недоступною.

Переважно динамічна з дотриманням деяких правил валідації даних. Додатки можуть додавати нові поля «на льоту», і на відміну SQL таблиць, несхожі дані при потребі можуть зберігатись разом.

Масштабування Вертикальне: сервер повинен бути максимально потужним, щоб справлятись з вимогами. Можливо рознести SQL БД по багатьох серверах, що є складним технологічним процесом.

Горизонтальне: додавання нових серверів. Бази даних автоматично розподіляють дані між серверами при потребі.

Page 16: NoSQL basics

NoSQL vs RDBMSSQL NoSQL

Модель розробки Поєднання відкритого ПЗ (Postgres, MySQL та інші) з закритим (Oracle, MSSQL та інші)

Відкрите ПЗ (open-source)

Підтримка транзакцій Так. Зміни можуть бути налаштовані таким чином, щоб завершуватись разом або ні.

При певних обставинах та на певних рівнях.

Page 17: NoSQL basics

NoSQL vs RDBMSSQL NoSQL

Маніпулювання даними Використання операторів специфічної мови: Select, Insert, Update та інші.

Через об’єктно-орієнтовані APIs

Узгодженість (Consistency) Можливе налаштування для підтримки строгої узгодженості.

Залежить від продукту. Деякі забезпечують строгу узгодженість, інші – підсумкову узгодженість.

Page 18: NoSQL basics

Реплікація

Page 19: NoSQL basics

CAP теорема

Розподілена система може одночасно забезпечувати лише 2 з 3 властивостей: - узгодженість (consistency);- доступність (availability);- стійкість до розподілу (partition tolerance)

Page 20: NoSQL basics

Redis – REmote DIctionary Service ключ-значення сховище; зберігає дані в оперативній пам’яті (по

замовчуванню).

Page 21: NoSQL basics

Переваги Redis надзвичайно швидкий; можливість зберігати не тільки стрічки; постійність; реплікація; вбудована підтримка Lua-скриптів.

Page 22: NoSQL basics

Redis: типи даних Strings Lists Hashes Sets Sorted Sets

Page 23: NoSQL basics

Redis: Strings CRUD SET GET APPEND INCR and DECR (для чисел) GETRANGE (підрядок) MGET (багато значень) MSET STRLEN

Page 24: NoSQL basics

Redis: List CRUD LPUSH and RPUSH LREM LSET LINDEX LRANGE LLEN LPOP and RPOP LTRIM

Page 25: NoSQL basics

Redis: Set CRUD SADD SCARD SDIFF, SINTER and SUNION SISMEMBER SMEMBERTS SMOVE SREM

Page 26: NoSQL basics

Redis: Hash CRUD HSET HMSET HGET HMGET HGETALL HDEL HEXISTS HINCRBY HKEYS HVALS

Page 27: NoSQL basics

Redis: Sorted Set CRUD ZADD ZCARD ZCOUNT ZINCRBY ZRANGE ZRANK ZREM ZSCORE

Page 28: NoSQL basics

MongoDBДокументно-орієнтована БД: документи – аналоги ключ-значення структур

у мовах програмування (словники, хеші, мапи, асоціативні масиви)

документи зберігаються у JSON форматі (насправді у BSON – бінарний JSON)

всі документи зберігаються в колекціях. Колекція – група пов’язаних документів, що мають набір спільних індексів

Page 29: NoSQL basics

Переваги MongoDB відсутність схеми; індекси; auto-sharding; реплікація; масштабованість.

Page 30: NoSQL basics

MongoDB: Приклад документа

Page 31: NoSQL basics

MongoDB: Приклад запиту

Page 32: NoSQL basics

MongoDB CRUD: Insert db.collection.insertOne() db.collection.insertMany() db.collection.insert()

Page 33: NoSQL basics

MongoDB CRUD: Update db.collection.updateOne() db.collection.updateMany() db.collection.replaceOne() db.collection.update()

Page 34: NoSQL basics

MongoDB CRUD: Delete db.collection.deleteOne() db.collection.deleteMany() db.collection.remove()

Page 35: NoSQL basics

MongoDB: Запити- стосуються конкретної колекції

документів- вказують критерії чи умови, що

визначають документи, які поверне MongoDB

- можуть включати проекцію, що вказує, які поля повернути у знайдених документах

Page 36: NoSQL basics

MongoDB CRUD: Find

Page 37: NoSQL basics

MongoDB Find: Проекція

Page 38: NoSQL basics

MongoDB Find: Курсор

Page 39: NoSQL basics

MongoDB: ІндексиПокращують ефективність операції читання завдяки зменшенню кількості даних, яку запит повинен обробити.

Page 40: NoSQL basics

MongoDB: Індекси

Page 41: NoSQL basics

MongoDB: Види індексів- одинарні (single)- композитні (compound)- multikey (для значень в масивах)

Page 42: NoSQL basics

Рекомендовані джерелаMongoDB:

https://university.mongodb.com/courses/M101P/aboutRedis

http://redis.io/documentation

Page 43: NoSQL basics

Питання

[email protected]

Page 44: NoSQL basics

eleks.com

Inspired by Technology.Driven by Value.


Top Related