SlideShare a Scribd company logo
1 of 38
Нереляційні бази даних,
або NoSQL
План
● Історія
● А навіщо?
● Трохи теорії
● Типи NoSQL
● Де використати
Історія
2006 – Google BigTable
2007 – Amazon Dynamo
2008 – Facebook Cassandra
І почалось...
NoSQL?
Нереляційні бази даних
А до чого тут SQL?
NoREL – не звучить
З 2009 - розподілені бази даних
(Not only SQL)
А навіщо?
Чим погані реляційні бази даних
Чим поганий ACID
● Atomicity (Атомарність) - операції в окремій транзакції або
виконаються всі, або жодна;
● Consistency (Консистентність) - база даних буде в
узгодженому/цілісному стані до початку транзакції і після її завершення;
● Isolation (Ізоляція) - кожна операція виконується незалежно одна від
одної;
● Durability (Довговічність) - зроблені зміни залишаються в системі,
незалежно від зовнішніх факторів, аж до подальших змін.
ACID не масштабується
Майже не масштабується
Читання – додати кешування
Запис - ?????
● Вертикальне
● Горизонтальне
Вертикальне
Або купити комп “пакручє”
Але
● Або не стає грошей
● Або підсідаєш на конкретне “залізо”
Горизонтальне
Розпаралелити роботу/дані між
кількома машинами
Клієнти 0
Клієнти 1
Прод. 0Клієнти 0 Транзакції 0
Транзакції 1
Two phase commit
1. Приготоватись до транзакції
Two phase commit
2. Завершити транзакцію
Two phase commit
А якщо транзакція неможлива?
Або один з серверів не доступний?
Все відміняється (Consistency)
BASE
В 1997/99 рр. Ерік Брюер (Eric Brewer)
● Basically Available – переважно/завжди
доступна
● Soft-state – гнучка структура
● Eventually consystent – випадкова
консистентність, або консистентність при
певних умовах
BASE vs. ACID
ACID BASE
Сильна консистентність
Ізоляція
Консервативність/песимістичість
Складна еволюція
Доступність?
Слабка консистентність
(дозпускається застаріння
даних)
Доступність перш за все
Дозволяються приблизні відповіді
Агресивність/оптимістичність
Простіші
Швидші
Легша еволюція
Теорема CAP
В розподіленій системі не можливо добитись
одночасного виконання наступних умов:
консистентності (C), доступності (A), стійкості до
збоїв (P)
Теорема CAP
У 2002 році Сет Ґілберт (Seth Gilbert) та
Ненсі Лінч (Nancy Lynch) з MIT
формально/математично довели
правильність припущення Брюера.
Atomic Consistency
DNS!!
Типи NoSQL
● Tabular / Wide Column Store / Column Families
(Напівструктуровані)
● Key Value / Tuple Store (Ключ-Значення /
Ключ-Набір значень)
● Document Store (Документо-орієнтовані)
● Graph Databases (Граф-орієнтовані)
Напівструктуровані
● Google BigTablle
● Hbase
● Cassandra
● Hypertable
BigTable
Column oriented
ID Name Age Interests
1 Homer 40 Beer, food, sleep
2 Bart play
3 Kenny 9
ID Name
1 Homer
2 Bart
3 Kenny
ID Age
1 40
3 9
ID Interests
1 beer
1 food
1 sleep
2 play
BigTable
Невизначена кількість колонок
Homer.simpson@gamil.com Homer Simpson 1234567890
bart@gmail.com Bart
Сім'ї колонок (Column family)
Клітинка (cell)– перетин рядка і стовпця
Декілька версій (timestamp)
Id рядка, назва колонки, timestamp
BigTable
Послідовний запис (LogFile,Memtable)
Об'єднане читання (Merged read)
Фільтр Блума (Bloom filter)
SSTable
Періодичне ущільнення (compaction)
BigTable
MapReduce
Map
circle
circle
circle
square
circle
square
[circle, 3]
[square, 1]
[circle, 1]
[square, 1]
Reduce
[circle, 4]
[square, 2]
!!!!!
Google: “півсекундна затримка зменшує
трафік на 20%”
Apache Hadoop
Ключ-Значення (Key/Value)
● Berkeley DB
● MemcacheDB
● Membase
● Redis
● Amazon SimpleDB
● MicrosoftAzure
● Amazon Dynamo
● Cassandra
● Riak
● Project Voldemort
AmazonDynamo
AmazonDynamo
AmazonDynamo
AmazonDynamo
● Розподілені хеш-таблиці (DHT)
● Consistent hashing
● Versioning
● Vector clocks
● Quorum
● Anti-entropy based recovery (gossip)
● Hinted handoff
Революція
● Cassandra
● Riak
● Project Voldemort
Ті хто слідує дизайну Amazon Dynamo та інші
!!!!!!
Amazon: “затримка на 1/10 секунди коштує 1%
продаж.”
Amazon: “хвилина простою коштує 30,000
долларів” (2008 р.)
Amazon Dynamo розроблялось тільки для
однієї фічі: “додати в корзину”
Google BigTable + Amazon Dynamo = Cassandra
(Avinash Lakshman)
Документо-орієнтовані
Теж що і Key/Value, але...
значення зберігаються в форматі, який
система “розуміє” - JSON, XML
{
"name": "homer",
"email": "homer.simpson@gmail.com",
"projects": [
"BigTable",
"HBase",
"Cassamdra"
]
}
Документо-орієнтовані
● СouchDB
● MongoDB
● RavenDB
● Terrastore
Документо-орієнтовані
● Адресна/телефонна книга
● Форум
● Bug Tracking
● Списки витрат
● Звітування часу
● Списки справ (To-Do lists)
Граф-орієнтовані
Граф-орієнтовані
● Neo4j
● Sones
● InfoGrid
● HyperGraphDB
● vertexdb
Граф-орієнтовані
Соціальні менежі
Маршрут
Недоліки
Нова (нестабільна) технологіяНова (нестабільна) технологія
Більша відповідальність
There is no silver bullet
Можливі варіанти
Таблиця як нескінченне дерево
Динамічне створення таблиць
Надто багато JOIN-ів
Таблиця як кеш/черга/лог
Запитання

More Related Content

What's hot

Mapping Data Flows Training deck Q1 CY22
Mapping Data Flows Training deck Q1 CY22Mapping Data Flows Training deck Q1 CY22
Mapping Data Flows Training deck Q1 CY22Mark Kromer
 
Big Data Architectural Patterns and Best Practices on AWS
Big Data Architectural Patterns and Best Practices on AWSBig Data Architectural Patterns and Best Practices on AWS
Big Data Architectural Patterns and Best Practices on AWSAmazon Web Services
 
Best Practices for Migrating your Data Warehouse to Amazon Redshift
Best Practices for Migrating your Data Warehouse to Amazon Redshift Best Practices for Migrating your Data Warehouse to Amazon Redshift
Best Practices for Migrating your Data Warehouse to Amazon Redshift Amazon Web Services
 
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめDTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめMikiya Okuno
 
MongoDB Atlas
MongoDB AtlasMongoDB Atlas
MongoDB AtlasMongoDB
 
Migrating Oracle database to PostgreSQL
Migrating Oracle database to PostgreSQLMigrating Oracle database to PostgreSQL
Migrating Oracle database to PostgreSQLUmair Mansoob
 
Building Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon RedshiftBuilding Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon RedshiftAmazon Web Services
 
re:Invent 2022 DAT326 Deep dive into Amazon Aurora and its innovations
re:Invent 2022  DAT326 Deep dive into Amazon Aurora and its innovationsre:Invent 2022  DAT326 Deep dive into Amazon Aurora and its innovations
re:Invent 2022 DAT326 Deep dive into Amazon Aurora and its innovationsGrant McAlister
 
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기Amazon Web Services Korea
 
Stl meetup cloudera platform - january 2020
Stl meetup   cloudera platform  - january 2020Stl meetup   cloudera platform  - january 2020
Stl meetup cloudera platform - january 2020Adam Doyle
 
Amazon Redshift의 이해와 활용 (김용우) - AWS DB Day
Amazon Redshift의 이해와 활용 (김용우) - AWS DB DayAmazon Redshift의 이해와 활용 (김용우) - AWS DB Day
Amazon Redshift의 이해와 활용 (김용우) - AWS DB DayAmazon Web Services Korea
 
What Comes After The Star Schema? Dimensional Modeling For Enterprise Data Hubs
What Comes After The Star Schema? Dimensional Modeling For Enterprise Data HubsWhat Comes After The Star Schema? Dimensional Modeling For Enterprise Data Hubs
What Comes After The Star Schema? Dimensional Modeling For Enterprise Data HubsCloudera, Inc.
 
Azure Data Fundamentals DP 900 Full Course
Azure Data Fundamentals DP 900 Full CourseAzure Data Fundamentals DP 900 Full Course
Azure Data Fundamentals DP 900 Full CoursePiyush sachdeva
 
MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...
MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...
MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...MongoDB
 
How Retail Banks Use MongoDB
How Retail Banks Use MongoDBHow Retail Banks Use MongoDB
How Retail Banks Use MongoDBMongoDB
 
ETL VS ELT.pdf
ETL VS ELT.pdfETL VS ELT.pdf
ETL VS ELT.pdfBOSupport
 

What's hot (20)

Mapping Data Flows Training deck Q1 CY22
Mapping Data Flows Training deck Q1 CY22Mapping Data Flows Training deck Q1 CY22
Mapping Data Flows Training deck Q1 CY22
 
Big Data Architectural Patterns and Best Practices on AWS
Big Data Architectural Patterns and Best Practices on AWSBig Data Architectural Patterns and Best Practices on AWS
Big Data Architectural Patterns and Best Practices on AWS
 
Best Practices for Migrating your Data Warehouse to Amazon Redshift
Best Practices for Migrating your Data Warehouse to Amazon Redshift Best Practices for Migrating your Data Warehouse to Amazon Redshift
Best Practices for Migrating your Data Warehouse to Amazon Redshift
 
Retail Data Warehouse
Retail Data WarehouseRetail Data Warehouse
Retail Data Warehouse
 
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめDTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
 
NOSQL vs SQL
NOSQL vs SQLNOSQL vs SQL
NOSQL vs SQL
 
MongoDB Atlas
MongoDB AtlasMongoDB Atlas
MongoDB Atlas
 
Migrating Oracle database to PostgreSQL
Migrating Oracle database to PostgreSQLMigrating Oracle database to PostgreSQL
Migrating Oracle database to PostgreSQL
 
Building Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon RedshiftBuilding Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon Redshift
 
re:Invent 2022 DAT326 Deep dive into Amazon Aurora and its innovations
re:Invent 2022  DAT326 Deep dive into Amazon Aurora and its innovationsre:Invent 2022  DAT326 Deep dive into Amazon Aurora and its innovations
re:Invent 2022 DAT326 Deep dive into Amazon Aurora and its innovations
 
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
 
Stl meetup cloudera platform - january 2020
Stl meetup   cloudera platform  - january 2020Stl meetup   cloudera platform  - january 2020
Stl meetup cloudera platform - january 2020
 
SQL & NoSQL
SQL & NoSQLSQL & NoSQL
SQL & NoSQL
 
Amazon Redshift의 이해와 활용 (김용우) - AWS DB Day
Amazon Redshift의 이해와 활용 (김용우) - AWS DB DayAmazon Redshift의 이해와 활용 (김용우) - AWS DB Day
Amazon Redshift의 이해와 활용 (김용우) - AWS DB Day
 
What Comes After The Star Schema? Dimensional Modeling For Enterprise Data Hubs
What Comes After The Star Schema? Dimensional Modeling For Enterprise Data HubsWhat Comes After The Star Schema? Dimensional Modeling For Enterprise Data Hubs
What Comes After The Star Schema? Dimensional Modeling For Enterprise Data Hubs
 
Azure Data Fundamentals DP 900 Full Course
Azure Data Fundamentals DP 900 Full CourseAzure Data Fundamentals DP 900 Full Course
Azure Data Fundamentals DP 900 Full Course
 
MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...
MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...
MongoDB Days UK: Building an Enterprise Data Fabric at Royal Bank of Scotland...
 
How Retail Banks Use MongoDB
How Retail Banks Use MongoDBHow Retail Banks Use MongoDB
How Retail Banks Use MongoDB
 
Modern Data Architecture
Modern Data ArchitectureModern Data Architecture
Modern Data Architecture
 
ETL VS ELT.pdf
ETL VS ELT.pdfETL VS ELT.pdf
ETL VS ELT.pdf
 

Recently uploaded

О.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяО.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяAdriana Himinets
 
Автомат.звука с.інтегровані ігри для дітейpptx
Автомат.звука с.інтегровані ігри для дітейpptxАвтомат.звука с.інтегровані ігри для дітейpptx
Автомат.звука с.інтегровані ігри для дітейpptxvitalina6709
 
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfupd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfssuser54595a
 
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»tetiana1958
 

Recently uploaded (6)

Її величність - українська книга презентація-огляд 2024.pptx
Її величність - українська книга презентація-огляд 2024.pptxЇї величність - українська книга презентація-огляд 2024.pptx
Її величність - українська книга презентація-огляд 2024.pptx
 
О.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяО.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. Біографія
 
Автомат.звука с.інтегровані ігри для дітейpptx
Автомат.звука с.інтегровані ігри для дітейpptxАвтомат.звука с.інтегровані ігри для дітейpptx
Автомат.звука с.інтегровані ігри для дітейpptx
 
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfupd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
 
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
 
Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
 

Нереляційні бази даних NoSQL