NoSQL: issues and progress, current status and prospects

50
NOSQL Достижения и проблемы Текущее состояние и перспективы

Transcript of NoSQL: issues and progress, current status and prospects

NOSQL Достижения и проблемы Текущее состояние и перспективы

ИСТОРИЯ

1999: STROZZI NOSQL

Реляционная СУБД

NoSQL – без

поддержки SQL

Постоянно упоминается

как «первое NoSQL-

решение»

• Разработана Карлом Строцци в

1998–1999 годы

• реляционная алгебра реализована

через хитроумные сценарии

оболочки, соединяемые через

стандартные Unix-конвейеры

• Однако общность с NoSQL в

современном понимании только

лингвистическая

2001: ТЕОРЕМА CAP

О д н о в р е м е н н о в ы п о л н и м ы т о л ь к о д в а и з т р ё х с в о й с т в :

onsistency

vailability

artition tolerance

Устойчивость к распаду на сегменты

Доступность

Согласованность данных

2006: СТАТЬЯ О BIGTABLEFay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, and Robert E. Gruber. Bigtable: A Distributed Storage System for Structured Data// Proceedings of 7th USENIX Symposium on Operating Systems Design and Implementation, Seattle, WA, 2006

Работы начаты в 2004 году

Утверждалось об использовании в продуктах Google

Google Analytics Google Earth Google Finance

2007: “SQL IS KLUDGE”Эван Уивер (RailsConf’2006): «SQL – это клудж»

Kludge ([klʌdʒ], техн., жарг.)

•клудж, устройство, программа или часть программы, которые теоретически не должны работать, но почему-то работают

•ошибка, ляп (The first time, it’s a kludge! The second, a trick. Later, it’s a well-established technique!)

«Большинство веб-приложений используют СУБД как хэш-таблицу»

Более сильный вывод Уивера: «SQL – ошибка природы»

Последующее активное обсуждение в Ruby-сообществе о необходимости

СУБД вообще и реализации хранения для приложений

Популярная альтернативная идея среди разработчиков каркасов в стиле

RailsТекст определения: ©2015, Викисловарь (лицензия CC-SA)

2008 – 2009: ВСПЛЕСК «АНАЛОГОВ BIGTABLE»

• AmazonS i m p l e D B

• Powerset

• потом – ApacheH B a s e

• FacebookC a s s a n d r a

• Zvents

• потом – BaiduH y p e r t a b l e

2009: РОЖДЕНИЕ NOSQL

На первом семинаре освещены:

Voldemort Cassandra Dynomite Hbase Hypertable CouchDB MongoDB

Возник вопрос о «хэштеге» для семинара, в irc-чате на Freenode #cassandra

Эрик Эванс (Rackspace) предложил #NoSQL

Семинар Йохана Оскарссона по «распределённым нереляционным СУБД с

открытым исходным кодом»

Hadoop-конференция в Сан-Франциско

2010: ПРИЗНАНИЕ КАК КЛЮЧЕВОЙ ТЕХНОЛОГИИ «БОЛЬШИХ ДАННЫХ»

O’Reilly Media The EconomistPricewaterhouse

CoopersMcKinsey

… как технологии, обеспечивающую горизонтальную масштабируемость,наряду с Hadoop, отмечена в отчётах:

C 2012 года NoSQL входит в академические программы по «большим данным» и «науке о данных»

2010: “NOT ONLY SQL”

Возник в районе 2010 года

По-видимому, автором является Джон Расин, в ответ на публикацию

Стоунбрейкера в Blogs@ACM написавший:

“…To me, NoSQL means Not-Only-SQL, more than No SQL at all. In

Pick, we have SQL phrases which allow access and handling of

associative array data, so it isn’t necessarily a one-or-the-other

situation…”

2011: NEWSQL

Объединяет два типа решений

NoSQL-системы, понимающие SQL или SQL-

подобный язык (UnQL, Hive)

Построение средствами реляционных

движков систем, обладающих свойствами

NoSQL (горизонтальная масштабируемость,

MapReduce API)

Как “new school” против “old school”

Джеймс Аслетт (451 Research)

2012: «МНОГОВАРИАНТНАЯ ПЕРСИСТЕНТНОСТЬ»

Hibernate OGM: библиотека,

обеспечивающая Java Persistence API для

унифицированного доступа к

различного класса NoSQL-системам

I n i f n i s p a n

E h c a c h e

M o n g o D B

N e o 4 j

Marin Fowler, Pramod Sadalage. NoSQL

Distilled: A Brief Guide to the Emerging

World of Polyglot Persistence

N. J.: Addison-Wesley, 2012

Переведена на русский язык

(2013, Вильямс, перевод Дм. Клюшин )

В 2015 году готовится второе издание

на русском

2013: НАЧАЛО КОНСОЛИДАЦИИ

Rackspace покупает ObjectRocket

IBM покупает Cloudant

2014: ВСПЛЕСК ПОПУЛЯРНОСТИ ГРАФОВЫХСИСТЕМ

ТАКСОНОМИЯ

ОСНОВНАЯ ТАКСОНОМИЯ

«Ключ – значение»

DynamoDB

Riak

BerkeleyDB

Redis

Aerospike

Voldermort

MemcacheDB

FoundationDB

Mnesia

Hibari

Документо-

ориентированные

MongoDB

CouchDB и

Couchbase

SequoiaDB

RavenDB

«Семейство

столбцов»

BigTable

HBase

Cassandra

SimpleDB

Accumulo

Графовые

Neo4j

FlockDB

OrientDB

InfiniteGraph

HyperGraphDB

ХАРАКТЕРИСТИЧЕСКИЕ СВОЙСТВА

«Ключ – значение»Документо-

ориентированные

«Семейство

столбцов»Графовые

Агрегатная модель хранения

Бессхемность, комбинирование на стороне приложения

Атомарный доступ

Горизонтальная масштабируемость

Ограниченная транзакционность

Эффективная репликация

Изображение ©Илья Кацов, 2012

ERLANG: НОВЫЙ ЯЗЫК РАЗРАБОТКИ СУБД

«Ключ – значение»

DynamoDB

Riak

BerkeleyDB

Redis

Aerospike

Voldermort

MemcacheDB

FoundationDB

Mnesia

Hibari

Документо-

ориентированные

MongoDB

CouchDB и

Couchbase

SequoiaDB

RavenDB

«Семейство

столбцов»

BigTable

HBase

Cassandra

SimpleDB

Accumulo

Графовые

Neo4j

FlockDB

OrientDB

InfiniteGraph

HyperGraphDB

JAVA: ОСНОВНОЙ ЯЗЫК РАЗРАБОТКИ ГРАФОВЫХ СУБД

«Ключ – значение»

DynamoDB

Riak

BerkeleyDB

Redis

Aerospike

Voldermort

MemcacheDB

FoundationDB

Mnesia

Hibari

Документо-

ориентированные

MongoDB

CouchDB и

Couchbase

SequoiaDB

RavenDB

«Семейство

столбцов»

BigTable

HBase

Cassandra

SimpleDB

Accumulo

Графовые

Neo4j

FlockDB

OrientDB

InfiniteGraph

HyperGraphDB

ПРОЧИЕ «ПРЕТЕНДЕНТЫ НА NOSQL»

Многозначные

(multivalue) и

иерархические

Mumps

Pick D3

Cachè

Объектно-

ориентиро-

ванные

Objectivity

db4o

Jasmine

XML DB,

RDF-DB(часто включены в

сегмент «документо-

ориентированных»)

Sedna

xDB

MarkLogic

Системы

полно-

текстового

поиска

Lucene

Solr

Распреде-

лённые

файловые

системы

Hadoop

+

Hive

+

Pig

ОПРЕДЕЛЕНИЕ-ПРЕТЕНДЕНТ

и иногда (в широком смысле)

другие нереляционные СУБД

а также

графовые СУБД

NoSQL – класс горизонтально масштабируемых СУБД с агрегатной

моделью хранения и ограниченной транзакционностью, появившихся в

конце 2000-х – начале 2010-х годов

«ключ – значение» документоориентированные «семейство столбцов»

РЫНОК

ОБЪЁМ РЫНКА

IDC: рынок СУБД к 2016 году – $30 млрд

451 Research: к 2016 году объём рынка NoSQLпревзойдёт $1 млрд

IDC: рынок больших данных к 2016 году

– $16 млрд

МАСШТАБ ПО 451 RESEARCH

Изображение ©451 Research, 2012

ВЕРСИЯ WIKIBON

Изображение ©Wikibon, 2013

ПОСТАВЩИКИ

O r a c l eВладелец BerkeleyDB (после

поглощения Sleepycat в 2006)

Владелец Coherence (после поглощения

Tangasol в 2007)

Сконцентрировала более 50% рынка

СУБД (Oracle Database, MySQL)

D a t a S t a x

Коммерциализатор Apache Cassandra от

выходцев из RackspaceВ списке «20 кандидатов на IPO» (IDG) Инвестиции – $190 млн

B a s h o

Разработчик Riak и Riak CS Инвестиции – $57,5 млн

A e r o s p i k e

Фокусируется на рынке RTBОсенью 2014 года опубликовали СУБД

под свободной лицензиейИнвестиции – $22 млн

C o u c h B a s e

Основной разработчик Couchbase Инвестиции – $60 млн

1 0 g e nОсновной разработчик MongoDB

(переименована в MongoDB Inc.)

«No. 9 The Next Big Thing –2012» // The

Wall Street JournalИнвестиции – $311 млн

ПРОВАЙДЕРЫ

O b j e c t R o c k e t

MongoDB Redis Поглощена Rackspace

C l o u d a n t

BigCouch (на основе CouchDB) Поглощена IBM

G o o g l e

BigQuery Cloud Datastore

A m a z o n

SimpleDB DynamoDB ElastiCache Elastic MapReduce

GOOGLE

MapReduce

BigTable

Megastore

Spanner

Pregel

Dremel Tenzing

Hadoop

HBase

BigQuery

Cloud Datastore

Cloud SQL

Распределённое столбцовое хранилище и механизм запросов

SQL-MapReduce-механизм

распределённых запросов

Распределённая графовая СУБД

32

GARTNER

Изображение ©2014, Gartner

Magic Quadrant forOperational DatabaseManagement Systems,2014

«Реляционные и нереляционные СУБД

для OLTP-приложений корпоративного

уровня»

FORRESTER

Изображения: ©2014, Forrester

«ключ – значение»(включает «семейство-столбцовые»)

документоориентированные(включает XML-СУБД)

РЫНОК NOSQL-ТРУДА

Изображения: ©Simply Hired, 2015

РЫНОК NOSQL-ЗНАНИЙ

Изображение: ©451 Research, 2014

ТЕОРЕМА CAP Дискуссионный вопрос №1

CAP

Изображение: ©2014, Натан Хёрст

CAP VERSUS ACID

onsistency

vailability

artition tolerance

tomicity

onsistency

solation

urability

CAP И BASE

sic availability

oft state

ventual consistency

onsistency

vailability

artition tolerance

АКАДЕМИЧЕСКИЙ ИНТЕРЕС

ПЕРВАЯ РЕАКЦИЯ

Майкл Стоунбрейкер

(blogs@ACM):

• разделил NoSQL-системы

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

«документоориентированные»

• провёл критический анализ

(постепенно смягчая позицию к

движению в целом)

• породил полемику и интерес со

стороны видных деятелей

научного сообщества

Русскоязычное пространство

(Сергей Дмитриевич Кузнецов):

• Серия переводов (в том числе

записей Стоунбрейкера)

• Серия критических обзоров

(Citforum, «Открытые системы.

СУБД»)

• Скепсис на базе историй неуспеха

альтернатив реляционной

технологии в 1990-е (прежде всего,

объектных СУБД)

КОЛЛЕКЦИЯ

Nosql-database.org

Ведётся профессором

Берлинского университета

Штефаном Эдлихом c 2009 года

Содержит 150 NoSQL-СУБД

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

Документоориентированные

«Ключ-значение» и кортежные

Графовые

Мультимодельные

«Для грида и облачных вычислений»

Объектные

Многомерные

XML-СУБД

Многозначные (multivalue)

Сетевые

«Event-sourcing»

COSQLErik Meijer and Gavin Bierman

A co-relational model of data for large shared data banks

// Communications of the ACM, vol. 54 (2011), No. 4

SQL coSQL

Дочерние записи ссылаются на родительские

Родительские записи содержат дочерние

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

(Потенциально) динамически типизированы

Синхронные обновления (ACID) для нескольких записей

Асинхронные обновления (BASE) для одной записи

Набросок теоретико-категорной модели, объединяющей реляционную алгебру и «двойственную ей» алгебру для агрегатных моделей

ЗАКЛЮЧЕНИЕ

NOSQL: ПРОБЛЕМЫ

«Зонтичность»

• широкий класс решений, объединённых под одним [дискуссионным] заголовком

• отсутствует концептуальный взгляд на движение в целом, каждое решение «пробивается»

самостоятельно, нет единой идеологической базы

• понятийные и терминологические разночтения внутри движения, отсутствие внутренней

поддержки

Нестандартизованность

• отсутствуют стандарты в сегментах, даже в тех случаях, где они могли бы быть сформулированы

• слабая сочетаемость и взаимозаменяемость решений (риски уникальности)

Молодость, новизна

• неприятие и непонимание со стороны части опытных экспертов

• критика со стороны конкурентных технологий

NOSQL: ДОСТИЖЕНИЯСтановление как важной технологии в интернет-гигантах

• Google (BigTable)

• Amazon (DynamoDB)

• Facebook (Cassandra)

Признание как ключевой технологии «больших данных»

Оформление как дополняющей технологии

• сближение с возможностями реляционных систем (транзакции, целостность, …)

• «многовариантная персистентность» (polyglot persistence); ORM-средства с поддержкой

NoSQL; программные каркасы, объединяющие реляционные системы и NoSQL

Молодость, новизна!

• несмотря на «зонтичность», за счёт новизны удалось создать привлекательную атмосферу и

разогреть интерес как академический, так и коммерческий

NOSQL: ТЕКУЩЕЕ СОСТОЯНИЕ

Появление в «корпоративном секторе»

банкиоператоры

электросвязиРозничная торговля энергосбыт госсектор

Относительно небольшой, быстрорастущий рынок

NoSQL растёт не взамен рынку реляционных СУБД, а в

дополнениеинвестиции в NoSQL-разработчиков превысили $1 млрд

Изначальные фокусные пользователи – интернет-гиганты, – по-прежнему

используют РСУБД в качестве основной технологии слоя хранения

Facebook Yahoo Ebay Twitter Wikipedia Apple (store)

Более сотни СУБД, более десятка – развитых и зрелых

NOSQL: ПЕРСПЕКТИВЫ

•Становление нескольких лидеров движения, деградация отстающих

•Концентрация на стороне ИТ-гигантов

К о н с о л и д а ц и я

•формирования достаточно чётких рамок, определений

•… как с облачными вычислениями

К о н ц е п т у а л и з а ц и я

•универсальные языки

•универсальные программные каркасы

•универсальные сервисы, интероперабельность

С т а н д а р т и з а ц и я

•появление референтных отраслевых решений

•формирование рынка услуг профессиональных услуг

К о м м е р ц и а л и з а ц и я

•оперативная память

•твердотельные накопители

•применение ПЛВМ…

Ф о к у с н а а п п а р а т н о й с п е ц и ф и к е

СПАСИБО ЗА ВНИМАНИЕ!

mailto:[email protected]

mailto:[email protected]