SQL И NOSQL:на пути к
централизованным
платформам
управления данными
DWHOLTP
RDBMSBI
БОЛЬШИЕ ДАННЫЕ В НАЧАЛЕ БОЛЬШОГО ПУТИ…
«данные такого объёма, разнообразия и скорости прироста, что их обработка традиционными средствами неэффективна»
McKinsey, PWC (2009–2010)
Hadoop NoSQLR
→ … → глубинное обучение
п р о т и в
NOSQL: ТЕРМИНОЛОГИЧЕСКИЕ ТОНКОСТИ
• Реляционные СУБД
• Классические «SQL-серверы»S Q L
• «Не SQL-сервер»
• … но, возможно, с поддержкой языка SQLN o S Q L
• “Not Only SQL”
• …в поддержку языка SQL, но не реляционной модели
N O S Q L
• Горизонтально масштабируемые СУБД на реляционных движках
• …или NoSQL-системы, говорящие на SQLN e w S Q L
NOSQL: ВЫЯВЛЕННОЕ ОПРЕДЕЛЕНИЕ
и иногда (в широком смысле)
другие нереляционные СУБД
а также
графовые СУБД
…класс горизонтально масштабируемых СУБД с агрегатной моделью хранения и ограниченной
транзакционностью
«ключ – значение»документо-
ориентированные«семейство столбцов»
NOSQL-I: АГРЕГАТНЫЕ
«Ключ –значение»
DynamoDB
Riak
Berkeley DB
Redis
Aerospike
Voldermort
Tarantool
MemcacheDB
FoundationDB
Документо-ориентированные
MongoDB
CouchDB и Couchbase
SequoiaDB
RavenDB
«Семейство столбцов»
BigTable
HBase
Cassandra
SimpleDB
Accumulo
NOSQL-II: ГРАФОВЫЕ
Neo4j
FlockDB OrientDB
InfiniteGraph
HyperGraphDB
NOSQL-III: «И ПРИМКНУВШИЕ К НИМ»
Многозначные (multivalue) и
иерархические
Mumps
Pick D3
Cachè
Объектно-ориентиро-ванные
Objectivity
db4o
Jasmine
XML DB,RDF-DB
(часто включены в сегмент «документо-ориентированных»)
Sedna
xDB
MarkLogic
Системы полно-текстового поиска
Lucene
Solr
…
Распределённые файловые системы
Hadoop+
Hive +
Pig
ВЫТЕСНЯТ ЛИ NOSQL
РЕЛЯЦИОННЫЕ СУБД?
ИСТОРИЯ ВЫЗОВОВ РЕЛЯЦИОННОМУ ДВИЖЕНИЮ
•Аналитические функции
•Кластеры без разделяемых ресурсов
•Встраивание в движок РСУБД (OLAP Option, Analytics Services)
MOLAP
•Косметическая поддержка
Объектно-ориентированные
СУБД
•Эффективный XMLType
•Эффективный BLOBXML-СУБД
NoSQL…?
«Ключ – значение»Документо-
ориентированные
«Семейство столбцов»
Графовые
ХАРАКТЕРИСТИЧЕСКИЕ СВОЙСТВА NOSQL
Агрегатная модель хранения
Бессхемность, комбинирование на стороне приложения
Атомарный доступ
Горизонтальная масштабируемость
Ограниченная транзакционность
Эффективная репликация
ГОРИЗОНТАЛЬНАЯ МАСШТАБИРУЕМОСТЬ
“Shared-nothing” и комплексы аналитики
«Прикладной кластер»
Multimaster cluster
“NewSQL”
“Shared-something”
•Oracle Real Application Cluster
•Sybase ASE Cluster Edition•Postgres XL
•PostgresPro cluster•VoltDB
•Clustrix
Копируются целикомна все узлы
Секционируются по узлам
Транзакционные объекты
•Большой объём вставки и обновлений
•Секционируются по признаку от основных данных
Основные данные
•«Большие» реестры (клиенты, материалы)
•Определяют ключи секционирования
Метаданные, внутрисистемная информация
Конфигурационные данные, типология для основных данных, «маленькие» справочники
Содержательно-статистическая классификация схемы данных
приложения
АГРЕГАТНАЯ МОДЕЛЬ ХРАНЕНИЯ
Кластер в Oracle Database(1988)
Совместно хранится
Совместно индексируется
Совместно секционируется
Изображение ©Oracle, 1997
БЕССХЕМНОСТЬ
«Полугибкие» схемы, data-vault-style
XML-, JSON-, BSON-типы столбцов и SQL-доступ к их содержимому
PERSON
PERSON_ADDRESS PERSON_ATTR PERSON_REL
MD_PERSON_ATTR MD_PERSON_REL
json_extract_path('{"f2":{"f3":1},
"f4":{"f5":99,"f6":"foo"}}','f4')
'{"a":[1,2,3],"b":[4,5,6]}'::json
#>>'{a,2}'
АТОМАРНЫЙ ДОСТУП
MapReduce над РСУБД
Teradata Aster Greenplum
Не менее «атомарные» возможности с процедурными расширениями
пользовательские функции
курсорыпользовательские
выходы
[ГЕО]РЕПЛИКАЦИЯ
В бизнес-приложениях в основном решается резервами, доступными на чтение
Основной узел(запись, чтение)
Резерв 1(чтение)
Резерв n(чтение)
…
Журналы изменений
МОГУТ ЛИ СОСУЩЕСТВОВАТЬ
SQL И NOSQL ВМЕСТЕ?
Изображение: Peter Koelbel, CC-SA
«МНОГОВАРИАНТНАЯ ПЕРСИСТЕНТНОСТЬ»
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 PersistenceN. J.: Addison-Wesley, 2012
Переведена на русский язык (2013, Вильямс, перевод Дм.
Клюшин )
COSQL: ОБЩИЙ ЯЗЫК И ДВОЙСТВЕННОСТЬ SQL И NOSQL
Erik 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)
для одной записи
Набросок теоретико-категорной модели, объединяющей реляционную алгебру и «двойственную ей» алгебру для агрегатных моделей
БОРЬБА ЗА ГЛАВЕНСТВУЮЩУЮ
РОЛЬ…
В БОРЬБЕ ЗА АНАЛИТИКУ: «ОЗЁРА ДАННЫХ»
Джеймс Диксон (генеральный директор Pentaho, 2011) :
• «если витрины данных – это бутылки с отфильтрованной водой, то озеро – их неисчерпаемый источник»
…собранные в большую
распределённую файловую систему данные в исходных
форматах, достаточных для [Hadoop-]обработки
… в противопоставление
хранилищу данных, для которого данные
приходится трансформировать
Озёрные пессимисты
Озёрные
оптимисты
В БОРЬБЕ ЗА OLTP-СИСТЕМЫ…
[ Р е з и д е н т н ы й ] N o S Q L б е з р а з д е л я е м ы х р е с у р с о в
Aerospike, Riak, Tarantool, …Необходима кардинальная переработка приложения
Практически неограниченная масштабируемость, поддержка
геокластеризации
Используется в основном для новых приложений (практика в
RTB, розничной торговле)
Р е з и д е н т н ы й г р и д д а н н ы х
Oracle Coherence, Infinispan, Gemfire, Gridgain, …
Необходима модификация приложения (но может быть
незначительной при аккуратной ORM-реализации)
Встаёт между сервером приложений и СУБД и
существенно разгружает последнюю
Практика с конца 2000-х, поддерживается некоторыми
тиражируемыми приложениями
О д н о у з л о в а я р е з и д е н т н а я С У Б Д
SAP Hana, Oracle Timesten, Oracle 12c in-memory option, Exasol, MemSQL, IBM solidDB,
VoltDB
Может обойтись (в некоторых случаях) без модификации
приложения
«Низкий потолок» размера базы данных (32 ТБ на RISC, 24 ТБ на
x86-64-scaleup, 4 ТБ x86-64 commodity)
Основная практика – за счёт поддержки со стороны
тиражируемых приложений (S4/Hana)
Р а з д е л ь н ы е э к з е м п л я р ы с ф е д е р а ц и е й о с н о в н ы х д а н н ы х
Не требуется специализированного
платформенного ПО (обычные СУБД + MDM)
Значительные модификации приложения и модели данных
Необходимость в естественных ключах разделения, от их выбора
зависит масштабируемость
Не всегда возможно при высокой частоте модификации
основных данных
Б о л ь ш а я м а ш и н а д л я С У Б Д , г о н к а з а i o p s
IBM p795, SPARC M6-32, all-flash-массивы
Не требует значительных модификаций приложения
«Низкий потолок» (384 ядра, 5 млн iops)
Наиболее традиционный подход для банков, «реального
сектора»…
РЕЗИДЕНТНЫЕ ВЫЧИСЛЕНИЯ
СУ
БД
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ В РЕЗИДЕНТНЫХ КОМПЛЕКСАХ
OLTP-
SQL
MOLAP BI Data
Discovery
Stats Apps OLTP-
NoSQL
Hadoop
Hana in-memory database
DB 12c(Timesten)
MonetDB
Essbase
KXen
OBIEE
RevolutionR
Полиматика
SAP S/4
Endeca
Vora(Spark)
Spark
Spark
Spark
DB2 BLU
R (DB option)
Hyperion
R
PAL RHana
Exalytics
BLU
NumaQ
Скала-СР /Аналатика
IMM/H
РЕЗИДЕНТНЫЕ СУБД
Реляционные SAP HanaOracle
TimesTenMemSQL
Реляционные расширения
Oracle 12g in-memory
option
IBM DB2 BLU
SQL Server in-memory
OLTP
MOLAP IBM TM1Oracle
Essbase for Exalytics
Jedox Palo
РЕЗИДЕНТНАЯ АНАЛИТИКА (VISUAL DATA DISCOVERY)
Tableau QlikViewTibco
SpotfireIBM Cognos
Insight
SiSenseOracle Endeca
Полиматика
Узкоспециализированная СУБД в оперативной памяти
(как правило, колоночная и без широких средств доступа)
богатые средства визуального анализа в комплекте с ней
РЕЗИДЕНТНЫЕ ГРИДЫДАННЫХ
Oracle Coherence
WebSphere Extreme Scale
TibcoActiveSpaces
Hazelcast
GigaspacesXAP
GridgainRed Hat Ininispan
TmaxIninicache
Распределённый кэш Java-объектов
На каждый узел J2EE-сервера приложений
ставится спец. ПО
Одно из ключевых требований –
поддержка JSR-107(java cache)
Пробрасывает операции в СУБД
Поддерживает основные ORM
(Hibernate, Toplink, …)
Требуется рефакторинг слоя
model в MVC-приложении
РЕЗИДЕНТНЫЙ ГРИД: ФАКТОРЫ УСКОРЕНИЯ
О б л е г ч е н и е б а з ы о т и з б ы т о ч н ы х ч т е н и й
•Практически полная разгрузка транзакционной СУБД на чтение условно-постоянных данных (конфигураций, справочников, основных данных), которые полностью кэшированы в оперативной памяти, притом в распределённом режиме
Б а л а н с и р о в к а
•Весь пул соединений сосредоточен в гриде, приложение не держит соединений с базой данных, соответственно, загрузка пула соединений управляется из одного места
Р е а л и з а ц и я м у л ь т и в е р с и о н н о г о к о н к у р е н т н о г о к о н т р о л я н а с т о р о н е г р и д а
•Разгрузка базы данных от длинных транзакций, в базе фиксируются только финализированныерезультаты, все неуспешные конкурентные попытки отсеиваются гридом; работа в качестве монитора транзакций
О п т и м и з а ц и я с е р в е р о в п р и л о ж е н и й
•Разгрузка кэшей серверов приложений, ограниченных особенностями виртуальной машины (off-heap-storage)
ЦЕНТРАЛИЗОВАННАЯ ПЛАТФОРМА?
РЕЗИДЕНТНЫЙ ГРИД И РИТОРИКА “CONVERGED DATA PLATFORM”
И о п е р а т и в н а я о б р а б о т к а , и а н а л и т и к а – в о з м о ж н ы в о д н о м г р и д е
т р а н с ф о р м а ц и ин е н у ж н ы !
ц е н т р а л ь н а я п л а т ф о р м а , о с т о в – о д и н
Н а у ч и л и с ь р а б о т а т ь б е з б а з ы и H D F S
Б а з а и H D F S с т а л и р е з е р в о м и п е р е х о д н ы м э т а п о м
… п о д д е р ж а л и A p a c h e S p a r k
г л о б а л ь н ы е R D D !
… п о д д е р ж а л и H D F S
Р е з и д е н т н ы е г р и д ы з а г о в о р и л и н а S Q L
«КЛЮЧ – ЗНАЧЕНИЕ» –ЦЕНТРАЛЬНАЯ ПЛАТФОРМА
Е с л и р е з и д е н т н ы е г р и д ы о б р е т а ю т с м ы с л ц е н т р а л и з о в а н н о й п л а т ф о р м ы у п р а в л е н и я д а н н ы м и – т о
т о т ж е ш а н с у [ р е з и д е н т н ы х ] N o S Q L - С У Б Д в м о д е л и « к л ю ч – з н а ч е н и е »
… н о б е з г р у з а J a v a , . N e t …
с N o S Q L - s t y l e -A P I
с д о к а з а н н ы м и к а ч е с т в а м и п о г е о р е п л и к а ц и и
в т ы с я ч и у з л о в в г о р и з о н т а л ь
С у щ е с т в о р е з и д е н т н ы х г р и д о в –С У Б Д « к л ю ч – з н а ч е н и е »
Л и ш ь п о я в и в ш и е с я д о в р е м ё н N o S Q L
В к л ю ч а ю т с я а н а л и т и к а м и с о о т в е т с т в у ю щ и й к л а с с
( T e r r a c o t a , I n i n i s p a n )
РЫНОК
Изображение: Clinton Lord, CC-SA
ОБЪЁМ РЫНКА
IDC: рынок СУБД в
2016 году – $45,7
млрд
451 Research: к 2016 году
объём рынка NoSQL
превзойдёт $1 млрд
IDC: рынок больших
данных к 2016 году
– $16 млрд
Gartner: резидентные
СУБД в 2015 году – $6
млрд
РЕЛЯЦИОННЫЕ, NOSQL+HADOOP, ПРОЧИЕ НЕРЕЛЯЦИОННЫЕ
МАСШТАБ ПО 451 RESEARCH
Изображение ©451 Research, 2012
ВЕРСИЯ WIKIBON
Изображение ©Wikibon, 2013
РЕЙТИНГ DB-ENGINES, 1…10
РЕ
ЙТИ
НГ D
B-E
NG
INE
S,
11
…3
9
КВАДРАНТ МАГИЧЕСКИЙ, ОБЪЕДИНЯЮЩИЙ
Magic Quadrant for
Operational Database
Management Systems,
2015
«Реляционные и
нереляционные СУБД
для OLTP-приложений
корпоративного
уровня»
ФУНДАМЕНТАЛЬНЫЙ ОПРЕДЕЛИТЕЛЬ – АППАРАТНАЯ
ЭКОНОМИКАИзображение: NYC Department of Information, CC-SA
АППАРАТНЫЙ ПРОГРЕСС ВСКОРЕ МОЖЕТ ИЗМЕНИТЬ РАСКЛАД СИЛ…
Вертикально масштабируемые x86?
GPGPU
N V i d i a A M D I n t e l
100 GbE и адаптация In f i n iband
NVM-Express
NVMe over Fabrics
ОЗУ постоянного хранения
3D XPoint MeRAM NRAM STT-RAM CBRAM Racetrack
Top Related