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

  • View
    594

  • Download
    12

  • Category

    Career

Preview:

DESCRIPTION

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

Citation preview

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

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

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

О себе

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

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

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

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

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

Microsoft Certified Professional

Developer (MCPD)

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

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

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

образа жизни

2/41

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

3/41

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

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

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

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

структур

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

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

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

клиента

План

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

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

CAP

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

MapReduce

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

4/41

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

5/41

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

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

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

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

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

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

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

6/41

NoSQL

7/41

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

8/41

План

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

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

CAP

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

MapReduce

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

9/41

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

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

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

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

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

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

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

10/41

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

11/41

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

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

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

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

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

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

12/41

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

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

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

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

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

13/41

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

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

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

14/41

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

15/41

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

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

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

16/41

План

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

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

CAP

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

MapReduce

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

17/41

CAP

Consistency………….

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

Avalibility……………..

Доступность

Partition tolerance…..

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

к разделению

18/41

Partition

Tolerance Availability

19/41

Partition

Tolerance Availability

Кворум

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

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

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

20/41

R + W > N

21/41

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

W = 2 R = 2

version: B version: [B, A]

Агрегаты

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

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

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

22/41

План

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

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

CAP

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

MapReduce

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

23/41

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

RDBMS Riak

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

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

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

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

24/41

25/41

Документные

RDBMS MongoDB

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

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

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

26/41

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

27/41

28/41

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

RDBMS Cassandra

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

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

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

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

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

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

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

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

строк)

29/41

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

30/41

31/41

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

32/41

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

33/41

34/41

План

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

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

CAP

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

MapReduce

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

35/41

MapReduce

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

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

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

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

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

36/41

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

37/41

План

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

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

CAP

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

MapReduce

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

38/41

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

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

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

39/41

Литература

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

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

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

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

баз данных

40/41

Спасибо!

Вопросы?

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

soldatkin@custis.ru

41/41

Recommended