SlideShare a Scribd company logo
NewSQL: SQL никуда не
уходит
Константин,
Осипов
Developer http://tarantool.org
Содержание
● вспоминаем, зачем был нужен NoSQL
● что из NoSQL выдержало испытание временем
● SQL в NoSQL: смотрим на N1QL и CQL.
● NoSQL уже мёртв, а NewSQL ещё не рождён: чем тёплый, ламповый SQL
отличается от SQL в NoSQL
● ищем уникальные ценности NoSQL
● изучаем Multi-Model databases и NewSQL
NoSQL tenets
● #nosql hashtag
● горизонтальное масштабирование
● новые модели данных
● новые модели консистентности
NoSQL - выход для фрустрации, тэг который присвоили себе все кому оказалось
недостаточно возможностей SQL
NoSQL сегодня
● горизонтальное масштабирование
● новые модели данных document and graph data models
● новые модели консистентности
Смерть CAP
● eventual consistency: инфляция термина
● MongoDB: atomic сменяется isolated, добавляются транзакции в 3.xx
● Redis transactions
● Кто использует Riak?
Трудности масштабирования
Redis Cluster implements all the single key commands
available in the non-distributed version of Redis.
Commands performing complex multi-key operations like
Set type unions or intersections are implemented as well
as long as the keys all belong to the same node.
Трудности масштабирования
Трудности масштабирования
Трудности масштабирования
JSON в реляционных БД
MySQL PostgreSQL Redis Couchbase Cassandra Neo4J
Хранение JSON Yes Yes Yes Yes Yes Yes!
JSON field ops Yes Yes Yes Yes No No
JSON query Yes Yes No Yes Yes No
JSON secondary
index
Yes Yes No Yes No No
Горизонтальное масштабирование в SQL
SQL в NoSQL
MongoDB Couchbase Cassandra Redis
Cхема данных Yes* No Yes No
NULLs/Absent values Yes* Yes Yes No
JOINs No Yes No No
Secondary keys Yes* Yes Yes, but.. No
GROUP BY Yes* Yes No No
JDBC/ODBC No Yes No No
N1QL: отличия от SQL
● NEST/UNNEST
● LETTING -> AS
● IS MISSING -> IS NULL
● IS VALUED -> IS NOT UNKNOWN
● IN [] -> IN ()
SQL в NoSQL: консистентность
Couchbase:
Because indexes are by design outside the data service, they are eventually
consistent with respect to changes to documents and, depending on how you
issue the query, may at times not contain the most up-to-date information.
This may especially be the case when deployed in a write-heavy environment:
changes may take some time to propagate over to the index nodes.
Crate.io:
Crate does not provide transactions.
NoSQL: ищем ценности
● multi-model databases
● domain-specific languages
● UPSERT
Новые языки запросов к данным
● RethinkDB ReQL
● Elasticsearch Query Language
○ MIN/MAX/AVG
○ derivative/percentiles/histogram/cumulative sum/serial diff
● JSONIQ
● GraphQL
● SparQL
● Pregel
-> Сообщество по-прежнему недовольно SQL !
-> потоковая, итеративная парадигма данных вместо реляционной
алгебры
Multi-model databases: о чём это
Multi-model databases (2)
Multi-model databases (3)
UPSERT: зачем это
● SQL по своей семантике не содержит non-reading update
● LSM структуры данных неэффективны для операций чтения
● необходим оператор с новой семантикой
После NewSQL: temporal database
● time period datatype, including the ability to represent time periods with no end (infinity or
forever)
● the ability to define valid and transaction time period attributes and bitemporal relations
● system-maintained transaction time
● temporal primary keys, including non-overlapping period constraints
● temporal constraints, including non-overlapping uniqueness and referential integrity
● update and deletion of temporal records with automatic splitting and coalescing of time periods
● temporal queries at current time, time points in the past or future, or over durations
● predicates for querying time periods, often based on Allen’s interval relations
После NewSQL: temporal database
После NewSQL: temporal database
После NewSQL: temporal database
SELECT * FROM Employee
FOR SYSTEM_TIME
BETWEEN '2014-01-01 00:00:00.0000000'
AND '2015-01-01 00:00:00.0000000'
WHERE EmployeeID = 1000 ORDER BY
ValidFrom;
@kostja_osipov
Konstantin
Osipov
Developer tarantool.org
Вопросы?
tarantooldb
tarantool.orgkostja@tarantool.org
Ссылки
● https://developer.couchbase.com/documentation/server/current/developer-guide/query-consistency.html
● https://martinfowler.com/books/nosql.html
● http://jimwebber.org/2011/02/on-sharding-graph-databases/
● https://docs.mongodb.com/manual/core/document-validation/
● http://www.oreilly.com/pub/e/3847
● https://www.oreilly.com/ideas/data-modeling-with-multi-model-databases
● https://redislabs.com/blog/redis-as-a-json-store/

More Related Content

PDF
Обзор перспективных баз данных для highload / Юрий Насретдинов
PDF
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
PPTX
Как ускорить MySQL Handler Socket в 9 раз / Александр Яковлев (Мамба)
PDF
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
PDF
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
PDF
Применение в Enterprise-приложении графовой базы данных Neo4j - Антон Максимо...
PDF
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
PDF
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Обзор перспективных баз данных для highload / Юрий Насретдинов
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Как ускорить MySQL Handler Socket в 9 раз / Александр Яковлев (Мамба)
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
Применение в Enterprise-приложении графовой базы данных Neo4j - Антон Максимо...
История успеха Яндекс.Почты с PostgreSQL / Владимир Бородин (Яндекс)
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"

What's hot (20)

PDF
Константин Осипов
PDF
NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...
PPTX
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
PPTX
Поиск наизнанку
PDF
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
PDF
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
PDF
Дмитрий Долгов
PPTX
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
PDF
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
PDF
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС
PDF
My talk at Highload++ 2015
PPTX
Машинное обучение в электронной коммерции — практика использования и подводны...
PDF
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
PDF
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
PDF
"Новые возможности MySQL 5.7"
PDF
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
PDF
Андрей Кондрашов, Банк Москвы. «АБС в крупном Банке. Тестирование PostgreSQL...
PPTX
Mysql vs postgresql
PDF
Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)
PDF
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
Константин Осипов
NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
Поиск наизнанку
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
Дмитрий Долгов
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС
My talk at Highload++ 2015
Машинное обучение в электронной коммерции — практика использования и подводны...
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
"Новые возможности MySQL 5.7"
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
Андрей Кондрашов, Банк Москвы. «АБС в крупном Банке. Тестирование PostgreSQL...
Mysql vs postgresql
Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
Ad

Similar to NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org) (20)

PPTX
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
PDF
кри 2014 elastic search рациональный подход к созданию собственной системы а...
PPTX
NoSQL - World IT Planet, Saint Petersburg 2015
PDF
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
PDF
ORM battle. MyBatis vs Hibernate
PDF
2013-02-02 02 Нелюбин. Почему NoSql
PDF
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
PDF
Говорим о СУБД языком HR
PDF
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
PDF
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
PDF
NoSQL thumbtack experience, Анатолий Никулин
PPTX
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
PDF
Ivan Kotlyar. PostgreSQL in web applications
PPTX
Современный graphql на бекенде и фронтенде. Тестирование, секьюрити, новые во...
PDF
Максим Богук. Postgres-XC
PPTX
Что такое Postgresql (Максим Богук)
PDF
NoSQL: issues and progress, current status and prospects
PPTX
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
ODP
PDF
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
кри 2014 elastic search рациональный подход к созданию собственной системы а...
NoSQL - World IT Planet, Saint Petersburg 2015
2012-12-01 03 Битва ORM: Hibernate vs MyBatis. Давайте жить дружно!
ORM battle. MyBatis vs Hibernate
2013-02-02 02 Нелюбин. Почему NoSql
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Говорим о СУБД языком HR
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
NoSQL thumbtack experience, Анатолий Никулин
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Ivan Kotlyar. PostgreSQL in web applications
Современный graphql на бекенде и фронтенде. Тестирование, секьюрити, новые во...
Максим Богук. Postgres-XC
Что такое Postgresql (Максим Богук)
NoSQL: issues and progress, current status and prospects
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
Ad

More from Ontico (20)

PDF
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
PDF
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
PPTX
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
PDF
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
PDF
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
PDF
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PDF
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
PDF
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
PPTX
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
PPTX
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
PDF
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
PPTX
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
PPTX
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
PDF
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
PPT
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
PPTX
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
PPTX
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
PPTX
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
PPTX
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
PDF
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...

NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)