41
Основы баз данных NoSQL Юрий Солдаткин Ведущий разработчик C# 17 октября 2013 года

Основы баз данных NoSQL

  • Upload
    custis

  • View
    594

  • Download
    12

Embed Size (px)

DESCRIPTION

Открытый семинар для студентов в компании CUSTIS (17 октября 2013). Лектор: Юрий Солдаткин, ведущий разработчик C#, сертифицированный разработчик Microsoft (MCTS, MCPD). Из этого семинара вы узнаете об основных типах баз данных NoSQL, их особенностях, сильных и слабых сторонах, а также сфере их применения. Видеозапись семинара: https://vimeo.com/77393558.

Citation preview

Page 1: Основы баз данных NoSQL

Основы баз данных NoSQL

Юрий Солдаткин

Ведущий разработчик C# 17 октября 2013 года

Page 2: Основы баз данных NoSQL

О себе

Высшее образование

по специальности

«Информационные системы

и технологии»

Разрабатываю на стеке .NET

Microsoft Certified Professional

Developer (MCPD)

Предпочитаю личное

общение с заказчиком

Приверженец активного

образа жизни

2/41

Page 3: Основы баз данных NoSQL

О нашей компании

3/41

Мы занимаемся проектированием,

разработкой и бережным внедрением

масштабных IT-систем для банков,

торговых сетей и государственных

структур

Мы создаем уникальные решения

под нужды заказчиков

Мы умеем ценить особенности каждого

клиента

Page 4: Основы баз данных NoSQL

План

Что нам известно

Способы распределения данных

CAP

4 типа баз данных NoSQL

MapReduce

Родственные области

4/41

Page 5: Основы баз данных NoSQL

Реляционные базы данных

5/41

Page 6: Основы баз данных NoSQL

В поисках лучшей доли

Эффективность разработки

Много усилий на отображение данных

в реляционный вид

Сверхбольшие объемы данных

Объемы данных растут, а бежать нужно

в два раза быстрее

6/41

Page 7: Основы баз данных NoSQL

NoSQL

7/41

Page 8: Основы баз данных NoSQL

Сравнение скорости

8/41

Page 9: Основы баз данных NoSQL

План

Что нам известно

Способы распределения данных

CAP

4 типа баз данных NoSQL

MapReduce

Родственные области

9/41

Page 10: Основы баз данных NoSQL

Способы распределения данных

Репликация (replication)

копирование одних и тех же данных

на нескольких узлах

Фрагментация (sharding)

размещение разных данных

на разных узлах

10/41

Page 11: Основы баз данных NoSQL

Фрагментация

11/41

Page 12: Основы баз данных NoSQL

Репликация «Ведущий – ведомый» Ведущий узел (master) является

авторитетным источником данных,

ответственным за все их модификации

Ведомые узлы (slave) получают данные

с ведущего для производительного

и отказоустойчивого чтения

12/41

Page 13: Основы баз данных NoSQL

Одноранговая репликация

Все реплики имеют одинаковый вес

и могут выполнять операции записи

Потеря любой из реплик не приводит

к потере доступа к хранилищу

13/41

Page 14: Основы баз данных NoSQL

Согласованность обновлений

Пессимистичный подход

Оптимистичный подход

14/41

Page 15: Основы баз данных NoSQL

Согласованность чтения

15/41

Page 16: Основы баз данных NoSQL

Согласованность репликаций

Революция: согласованность

«в конечном счете» (eventual consistency)

16/41

Page 17: Основы баз данных NoSQL

План

Что нам известно

Способы распределения данных

CAP

4 типа баз данных NoSQL

MapReduce

Родственные области

17/41

Page 18: Основы баз данных NoSQL

CAP

Consistency………….

Согласованность

Avalibility……………..

Доступность

Partition tolerance…..

Устойчивость

к разделению

18/41

Page 19: Основы баз данных NoSQL

Partition

Tolerance Availability

19/41

Partition

Tolerance Availability

Page 20: Основы баз данных NoSQL

Кворум

R + W > N R – количество узлов для чтения

W – количество узлов для записи

N – общее количество узлов

20/41

Page 21: Основы баз данных NoSQL

R + W > N

21/41

version: В version: В version: A N = 3

W = 2 R = 2

version: B version: [B, A]

Page 22: Основы баз данных NoSQL

Агрегаты

Коллекция связанных объектов,

которая интерпретируется как одно целое

Единица согласованности

22/41

Page 23: Основы баз данных NoSQL

План

Что нам известно

Способы распределения данных

CAP

4 типа баз данных NoSQL

MapReduce

Родственные области

23/41

Page 24: Основы баз данных NoSQL

Ключ-значение

RDBMS Riak

База данных Кластер

Таблица Сегмент

Строка Ключ – значение

Идентификатор строки Ключ

24/41

Page 25: Основы баз данных NoSQL

25/41

Page 26: Основы баз данных NoSQL

Документные

RDBMS MongoDB

Таблица Коллекция

Строка Документ

Идентификатор строки _id

26/41

Page 27: Основы баз данных NoSQL

Представление документа

27/41

Page 28: Основы баз данных NoSQL

28/41

Page 29: Основы баз данных NoSQL

Семейство столбцов

RDBMS Cassandra

Экземпляр Кластер

База данных Пространство ключей

Таблица Семейство столбцов

Строка Строка

Столбцы (одни и те же

для всех строк)

Столбцы (могут быть

разными для разных

строк)

29/41

Page 30: Основы баз данных NoSQL

Представление семейства столбцов

30/41

Page 31: Основы баз данных NoSQL

31/41

Page 32: Основы баз данных NoSQL

Графовые базы

32/41

Page 33: Основы баз данных NoSQL

Графовое представление

33/41

Page 34: Основы баз данных NoSQL

34/41

Page 35: Основы баз данных NoSQL

План

Что нам известно

Способы распределения данных

CAP

4 типа баз данных NoSQL

MapReduce

Родственные области

35/41

Page 36: Основы баз данных NoSQL

MapReduce

Map (отображение) – принимает отдельные

агрегаты и отображает их на пары

ключ – значение

Reduce (свертка) – группирует полученные

значения по ключам, агрегируя информацию

36/41

Page 37: Основы баз данных NoSQL

Размер фонотеки

37/41

Page 38: Основы баз данных NoSQL

План

Что нам известно

Способы распределения данных

CAP

4 типа баз данных NoSQL

MapReduce

Родственные области

38/41

Page 39: Основы баз данных NoSQL

Родственные области Файловые системы

Порождение событий

Контроль версий

39/41

Page 40: Основы баз данных NoSQL

Литература

Прамодкумар Дж. Садаладж,

Мартин Фаулер

NoSQL. Новая методология

разработки нереляционных

баз данных

40/41

Page 41: Основы баз данных NoSQL

Спасибо!

Вопросы?

Юрий Солдаткин

[email protected]

41/41