SlideShare ist ein Scribd-Unternehmen logo
1 von 28
© ALTOROS Systems | CONFIDENTIAL
NoSQL Databases and Polyglot
Persistence
Sergey Kovalev, Senior Java Developer, sergey.kovalev@altoros.com
© ALTOROS Systems | CONFIDENTIAL 2
The Challenge
“One Size Does Not Fit
All”
© ALTOROS Systems | CONFIDENTIAL 3
• What is Polyglot Persistence?
• RDBMS vs NoSQL
• NoSQL DB types
• Polyglot Persistence Patterns
• Real project experience
Agenda:
© ALTOROS Systems | CONFIDENTIAL
Polyglot Persistence -
4
Using multiple data storage technologies, chosen
based upon the way data is being used by individual
applications or components of single application.
Martin Fowler
http://martinfowler.com/articles/nosql-intro.pdf
What is Polyglot Persistence?
© ALTOROS Systems | CONFIDENTIAL 5
NoSQL Zooo
What is Polyglot Persistence?
http://nosql-databases.org 150+ NoSQL databases
© ALTOROS Systems | CONFIDENTIAL 6
What is Polyglot Persistence?
Who use polyglot persistence?
© ALTOROS Systems | CONFIDENTIAL 7
• What is Polyglot Persistence?
• RDBMS vs NoSQL
• NoSQL DB types
• Polyglot Persistence Patterns
• Real project experience
Agenda:
© ALTOROS Systems | CONFIDENTIAL
RDMS are great
8
• Widely used and understood
• Tested in real environments
• Efficient use of storage space if data normalized properly
• Great tools support ACID semantics
• Incredibly flexible and powerful query language
• Great framework support
RDBMS vs NoSQL
© ALTOROS Systems | CONFIDENTIAL
RDBMS have limitations
9
• Complex object graphs does not map very well with flat
tables.
• Strict Schema
• Difficult to evolve Schema with time.
• Data constraints and JOINs can be expensive at runtime.
• Difficult to scale horizontally.
RDBMS vs NoSQL
© ALTOROS Systems | CONFIDENTIAL
NoSQL features
10
• Flexible schema
• Easy to scale horizontally to add processing power and
storage
• High Performance
RDBMS vs NoSQL
© ALTOROS Systems | CONFIDENTIAL 11
• What is Polyglot Persistence?
• RDBMS vs NoSQL
• NoSQL DB types
• Polyglot Persistence Patterns
• Real project experience
Agenda:
© ALTOROS Systems | CONFIDENTIAL
Key Value Stores
12
• A key-value store is a simple hash table
• Primarily used when all access to the database is via
primary key
• Value is a blob with the data store not caring or knowing
what is inside
NoSQL DB types
© ALTOROS Systems | CONFIDENTIAL
Column-Family Stores
13
• Store data in column families as rows that have many
columns associated with a row key
• Column families are groups of related data, often accessed
together
• Aggregate-Oriented
NoSQL DB types
© ALTOROS Systems | CONFIDENTIAL 14
NoSQL DB types
Document Databases
• Stores and retrieves documents, which can be XML, JSON,
BSON, …
• Documents are self-describing, hierarchical tree data
structures which can consist of maps, collections and scalar
values
• Aggregate-Oriented
© ALTOROS Systems | CONFIDENTIAL 15
NoSQL DB types
Graph Databases
• Allow to store entities and relationships between these
entities
• Entities are known as nodes, which have properties
• Relations are known as edges, which also have properties
© ALTOROS Systems | CONFIDENTIAL 16
• What is Polyglot Persistence?
• RDBMS vs NoSQL
• NoSQL DB types
• Polyglot Persistence Patterns
• Real project experience
Agenda:
© ALTOROS Systems | CONFIDENTIAL
RDBMS
17
• Transactional data (payment and account) in a ACID compliant traditional
RDBMS stores such as MySQL or Oracle.
• Reporting Tools
Polyglot Persistence Patterns
RDBMS
Web application
Reporting Tools
Transactional
data
© ALTOROS Systems | CONFIDENTIAL
Key Value Stores
18
• Session data in Redis or Hazelcast. Session data requires faster read and write
but not durability.
• Shopping cart data in a high availability and fault-tolerance data store such as
Riak.
Polyglot Persistence Patterns
RDBMS
Web application
Reporting
Tools
Transactional
data
Key-Value
store
Sessions and
Shopping cart
© ALTOROS Systems | CONFIDENTIAL
Column-Family Stores
19
• Log level data (audit and activity) in a very high write throughput data store such
as Cassandra.
• Also good for analytic and real-time data mining such as product ranking
Polyglot Persistence Patterns
RDBMS
Web application
Reporting
Tools
Transactional
data
Key-Value
store
Sessions and
Shopping cart
Column-Family
store
Logging
Analytic
© ALTOROS Systems | CONFIDENTIAL
Document Databases
20
• Product catalogue in a document oriented data store such as MongoDB.
Requirement include high read throughput, frequent data change (stock level
information)
• Customer profile data including purchase history, shipping & billing address
Polyglot Persistence Patterns
Web application
Reporting
Tools
Transactional
data
Key-Value
store
Sessions and
Shopping cart
Column-Family
store
Logging
Analytic
Document
store
RDBMS
Product
catalogue
© ALTOROS Systems | CONFIDENTIAL
Graph Databases
21
• Data for product recommendations, related products and similar products in a
graph database such as Neo4j.
Polyglot Persistence Patterns
Web application
Reporting
Tools
Transactional
data
Key-Value
store
Sessions and
Shopping cart
Column-Family
store
Logging
Analytic
Document
store
RDBMS
Product
catalogue
Graph
Databases
Social graph
© ALTOROS Systems | CONFIDENTIAL
Summary
22
Polyglot Persistence Patterns
© ALTOROS Systems | CONFIDENTIAL 23
• What is Polyglot Persistence?
• RDBMS vs NoSQL
• NoSQL DB types
• Polyglot Persistence Patterns
• Real project experience
Agenda:
© ALTOROS Systems | CONFIDENTIAL
ScienceWarehouse challenges
24
• Hundreds of thousands of records are added to the
database daily
• Visitors’ activities logging generates huge amount of write
queries
• Price table contains approximately 100,000,000 records
• Price history table contains approximately 500.000.000
• Data rapidly grows
Real project experience
© ALTOROS Systems | CONFIDENTIAL 25
• Upgrade hardware (vertical scaling)
• Upgrade to the Oracle Database Enterprise Edition
Options for ScienceWarehause
• Use NoSQL and Polyglot Persistence
or
Real project experience
© ALTOROS Systems | CONFIDENTIAL 26
Real project experience
Solutions for ScienceWarehouse
• Add a caching layer
• Write the log data on visitors’ activities to a NoSQL database
(Cassandra or HBase)
• Move price history(500,000,000 records table) information to
NoSQL data base(Cassandra or HBase)
© ALTOROS Systems | CONFIDENTIAL 27
Real project experience
ScienceWarehouse High Level Architecture
Web application
Legacy DB
Key-Value
store
Sessions and
Shopping cart
Column-Family
store
Logging
Analytic
RDBMS
© ALTOROS Systems | CONFIDENTIAL 28
Sergey Kovalev, Senior Java Developer, sergey.kovalev@altoros.com
NoSQL Databases and Polyglot
Persistence

Weitere ähnliche Inhalte

Was ist angesagt?

No SQL- The Future Of Data Storage
No SQL- The Future Of Data StorageNo SQL- The Future Of Data Storage
No SQL- The Future Of Data StorageBethmi Gunasekara
 
No SQL - A Simple Intro
No SQL - A Simple IntroNo SQL - A Simple Intro
No SQL - A Simple IntroKarthi Keyan
 
Multi-model databases and node.js
Multi-model databases and node.jsMulti-model databases and node.js
Multi-model databases and node.jsMax Neunhöffer
 
NoSQL Slideshare Presentation
NoSQL Slideshare Presentation NoSQL Slideshare Presentation
NoSQL Slideshare Presentation Ericsson Labs
 
MongoDB introduction
MongoDB introductionMongoDB introduction
MongoDB introductionEdward Yoon
 
Appache Cassandra
Appache Cassandra  Appache Cassandra
Appache Cassandra nehabsairam
 
Introduction of Redis as NoSQL Database
Introduction of Redis as NoSQL DatabaseIntroduction of Redis as NoSQL Database
Introduction of Redis as NoSQL DatabaseAbhijeet Shekhar
 
Use Cases for Oacle Pluggable Databases in Development Environments
Use Cases for Oacle Pluggable Databases in Development EnvironmentsUse Cases for Oacle Pluggable Databases in Development Environments
Use Cases for Oacle Pluggable Databases in Development Environmentsclaudegex
 
Nosql databases for the .net developer
Nosql databases for the .net developerNosql databases for the .net developer
Nosql databases for the .net developerJesus Rodriguez
 
NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL DatabasesBADR
 
SQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDBSQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDBMarco Segato
 
Query mechanisms for NoSQL databases
Query mechanisms for NoSQL databasesQuery mechanisms for NoSQL databases
Query mechanisms for NoSQL databasesArangoDB Database
 

Was ist angesagt? (20)

MongoDB
MongoDBMongoDB
MongoDB
 
No SQL- The Future Of Data Storage
No SQL- The Future Of Data StorageNo SQL- The Future Of Data Storage
No SQL- The Future Of Data Storage
 
No SQL - A Simple Intro
No SQL - A Simple IntroNo SQL - A Simple Intro
No SQL - A Simple Intro
 
Multi-model databases and node.js
Multi-model databases and node.jsMulti-model databases and node.js
Multi-model databases and node.js
 
NOSQL vs SQL
NOSQL vs SQLNOSQL vs SQL
NOSQL vs SQL
 
NoSQL Slideshare Presentation
NoSQL Slideshare Presentation NoSQL Slideshare Presentation
NoSQL Slideshare Presentation
 
MongoDB introduction
MongoDB introductionMongoDB introduction
MongoDB introduction
 
Appache Cassandra
Appache Cassandra  Appache Cassandra
Appache Cassandra
 
Introduction of Redis as NoSQL Database
Introduction of Redis as NoSQL DatabaseIntroduction of Redis as NoSQL Database
Introduction of Redis as NoSQL Database
 
CSCi226PPT1
CSCi226PPT1CSCi226PPT1
CSCi226PPT1
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
NoSQL
NoSQLNoSQL
NoSQL
 
Use Cases for Oacle Pluggable Databases in Development Environments
Use Cases for Oacle Pluggable Databases in Development EnvironmentsUse Cases for Oacle Pluggable Databases in Development Environments
Use Cases for Oacle Pluggable Databases in Development Environments
 
Key-Value NoSQL Database
Key-Value NoSQL DatabaseKey-Value NoSQL Database
Key-Value NoSQL Database
 
Nosql databases for the .net developer
Nosql databases for the .net developerNosql databases for the .net developer
Nosql databases for the .net developer
 
NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL Databases
 
NoSQL
NoSQLNoSQL
NoSQL
 
NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL Databases
 
SQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDBSQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDB
 
Query mechanisms for NoSQL databases
Query mechanisms for NoSQL databasesQuery mechanisms for NoSQL databases
Query mechanisms for NoSQL databases
 

Ähnlich wie «NoSQL Databases and Polyglot Persistence»

Relational and non relational database 7
Relational and non relational database 7Relational and non relational database 7
Relational and non relational database 7abdulrahmanhelan
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Lucas Jellema
 
Data Lake Acceleration vs. Data Virtualization - What’s the difference?
Data Lake Acceleration vs. Data Virtualization - What’s the difference?Data Lake Acceleration vs. Data Virtualization - What’s the difference?
Data Lake Acceleration vs. Data Virtualization - What’s the difference?Denodo
 
UNIT I Introduction to NoSQL.pptx
UNIT I Introduction to NoSQL.pptxUNIT I Introduction to NoSQL.pptx
UNIT I Introduction to NoSQL.pptxRahul Borate
 
TYPES OF NO SQL DATABASES.pptx
TYPES OF NO SQL DATABASES.pptxTYPES OF NO SQL DATABASES.pptx
TYPES OF NO SQL DATABASES.pptxMarkThomas316888
 
SQL vs NoSQL Data Modeling.pptx
SQL vs NoSQL Data Modeling.pptxSQL vs NoSQL Data Modeling.pptx
SQL vs NoSQL Data Modeling.pptxGarimaHasija1
 
Introduction to NoSQL database technology
Introduction to NoSQL database technologyIntroduction to NoSQL database technology
Introduction to NoSQL database technologynicolausalex722
 
Big Data technology Landscape
Big Data technology LandscapeBig Data technology Landscape
Big Data technology LandscapeShivanandaVSeeri
 
UNIT I Introduction to NoSQL.pptx
UNIT I Introduction to NoSQL.pptxUNIT I Introduction to NoSQL.pptx
UNIT I Introduction to NoSQL.pptxRahul Borate
 
NoSQL Architecture Overview
NoSQL Architecture OverviewNoSQL Architecture Overview
NoSQL Architecture OverviewChristopher Foot
 
Introducing DocumentDB
Introducing DocumentDB Introducing DocumentDB
Introducing DocumentDB James Serra
 
How companies use NoSQL and Couchbase - NoSQL Now 2013
How companies use NoSQL and Couchbase - NoSQL Now 2013How companies use NoSQL and Couchbase - NoSQL Now 2013
How companies use NoSQL and Couchbase - NoSQL Now 2013Dipti Borkar
 

Ähnlich wie «NoSQL Databases and Polyglot Persistence» (20)

UNIT-2.pptx
UNIT-2.pptxUNIT-2.pptx
UNIT-2.pptx
 
Relational and non relational database 7
Relational and non relational database 7Relational and non relational database 7
Relational and non relational database 7
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
 
Data Lake Acceleration vs. Data Virtualization - What’s the difference?
Data Lake Acceleration vs. Data Virtualization - What’s the difference?Data Lake Acceleration vs. Data Virtualization - What’s the difference?
Data Lake Acceleration vs. Data Virtualization - What’s the difference?
 
UNIT I Introduction to NoSQL.pptx
UNIT I Introduction to NoSQL.pptxUNIT I Introduction to NoSQL.pptx
UNIT I Introduction to NoSQL.pptx
 
NOsql Presentation.pdf
NOsql Presentation.pdfNOsql Presentation.pdf
NOsql Presentation.pdf
 
TYPES OF NO SQL DATABASES.pptx
TYPES OF NO SQL DATABASES.pptxTYPES OF NO SQL DATABASES.pptx
TYPES OF NO SQL DATABASES.pptx
 
SQL vs NoSQL Data Modeling.pptx
SQL vs NoSQL Data Modeling.pptxSQL vs NoSQL Data Modeling.pptx
SQL vs NoSQL Data Modeling.pptx
 
Datastore PPT.pptx
Datastore PPT.pptxDatastore PPT.pptx
Datastore PPT.pptx
 
Introduction to NoSQL database technology
Introduction to NoSQL database technologyIntroduction to NoSQL database technology
Introduction to NoSQL database technology
 
NOSQL
NOSQLNOSQL
NOSQL
 
dbms introduction.pptx
dbms introduction.pptxdbms introduction.pptx
dbms introduction.pptx
 
NoSQL.pptx
NoSQL.pptxNoSQL.pptx
NoSQL.pptx
 
Big Data technology Landscape
Big Data technology LandscapeBig Data technology Landscape
Big Data technology Landscape
 
UNIT I Introduction to NoSQL.pptx
UNIT I Introduction to NoSQL.pptxUNIT I Introduction to NoSQL.pptx
UNIT I Introduction to NoSQL.pptx
 
2018 05 08_biological_databases_no_sql
2018 05 08_biological_databases_no_sql2018 05 08_biological_databases_no_sql
2018 05 08_biological_databases_no_sql
 
NoSQL Architecture Overview
NoSQL Architecture OverviewNoSQL Architecture Overview
NoSQL Architecture Overview
 
Introducing DocumentDB
Introducing DocumentDB Introducing DocumentDB
Introducing DocumentDB
 
Database Technologies
Database TechnologiesDatabase Technologies
Database Technologies
 
How companies use NoSQL and Couchbase - NoSQL Now 2013
How companies use NoSQL and Couchbase - NoSQL Now 2013How companies use NoSQL and Couchbase - NoSQL Now 2013
How companies use NoSQL and Couchbase - NoSQL Now 2013
 

Mehr von Olga Lavrentieva

15 10-22 altoros-fact_sheet_st_v4
15 10-22 altoros-fact_sheet_st_v415 10-22 altoros-fact_sheet_st_v4
15 10-22 altoros-fact_sheet_st_v4Olga Lavrentieva
 
Сергей Ковалёв (Altoros): Practical Steps to Improve Apache Hive Performance
Сергей Ковалёв (Altoros): Practical Steps to Improve Apache Hive PerformanceСергей Ковалёв (Altoros): Practical Steps to Improve Apache Hive Performance
Сергей Ковалёв (Altoros): Practical Steps to Improve Apache Hive PerformanceOlga Lavrentieva
 
Андрей Козлов (Altoros): Оптимизация производительности Cassandra
Андрей Козлов (Altoros): Оптимизация производительности CassandraАндрей Козлов (Altoros): Оптимизация производительности Cassandra
Андрей Козлов (Altoros): Оптимизация производительности CassandraOlga Lavrentieva
 
Владимир Иванов (Oracle): Java: прошлое и будущее
Владимир Иванов (Oracle): Java: прошлое и будущееВладимир Иванов (Oracle): Java: прошлое и будущее
Владимир Иванов (Oracle): Java: прошлое и будущееOlga Lavrentieva
 
Brug - Web push notification
Brug  - Web push notificationBrug  - Web push notification
Brug - Web push notificationOlga Lavrentieva
 
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"Olga Lavrentieva
 
Максим Жилинский: "Контейнеры: под капотом"
Максим Жилинский: "Контейнеры: под капотом"Максим Жилинский: "Контейнеры: под капотом"
Максим Жилинский: "Контейнеры: под капотом"Olga Lavrentieva
 
Александр Протасеня: "PayPal. Различные способы интеграции"
Александр Протасеня: "PayPal. Различные способы интеграции"Александр Протасеня: "PayPal. Различные способы интеграции"
Александр Протасеня: "PayPal. Различные способы интеграции"Olga Lavrentieva
 
Сергей Черничков: "Интеграция платежных систем в .Net приложения"
Сергей Черничков: "Интеграция платежных систем в .Net приложения"Сергей Черничков: "Интеграция платежных систем в .Net приложения"
Сергей Черничков: "Интеграция платежных систем в .Net приложения"Olga Lavrentieva
 
Антон Шемерей «Single responsibility principle в руби или почему instanceclas...
Антон Шемерей «Single responsibility principle в руби или почему instanceclas...Антон Шемерей «Single responsibility principle в руби или почему instanceclas...
Антон Шемерей «Single responsibility principle в руби или почему instanceclas...Olga Lavrentieva
 
Егор Воробьёв: «Ruby internals»
Егор Воробьёв: «Ruby internals»Егор Воробьёв: «Ruby internals»
Егор Воробьёв: «Ruby internals»Olga Lavrentieva
 
Андрей Колешко «Что не так с Rails»
Андрей Колешко «Что не так с Rails»Андрей Колешко «Что не так с Rails»
Андрей Колешко «Что не так с Rails»Olga Lavrentieva
 
Дмитрий Савицкий «Ruby Anti Magic Shield»
Дмитрий Савицкий «Ruby Anti Magic Shield»Дмитрий Савицкий «Ruby Anti Magic Shield»
Дмитрий Савицкий «Ruby Anti Magic Shield»Olga Lavrentieva
 
Сергей Алексеев «Парное программирование. Удаленно»
Сергей Алексеев «Парное программирование. Удаленно»Сергей Алексеев «Парное программирование. Удаленно»
Сергей Алексеев «Парное программирование. Удаленно»Olga Lavrentieva
 
«Почему Spark отнюдь не так хорош»
«Почему Spark отнюдь не так хорош»«Почему Spark отнюдь не так хорош»
«Почему Spark отнюдь не так хорош»Olga Lavrentieva
 
«Cassandra data modeling – моделирование данных для NoSQL СУБД Cassandra»
«Cassandra data modeling – моделирование данных для NoSQL СУБД Cassandra»«Cassandra data modeling – моделирование данных для NoSQL СУБД Cassandra»
«Cassandra data modeling – моделирование данных для NoSQL СУБД Cassandra»Olga Lavrentieva
 
«Практика построения высокодоступного решения на базе Cloud Foundry Paas»
«Практика построения высокодоступного решения на базе Cloud Foundry Paas»«Практика построения высокодоступного решения на базе Cloud Foundry Paas»
«Практика построения высокодоступного решения на базе Cloud Foundry Paas»Olga Lavrentieva
 
«Дизайн продвинутых нереляционных схем для Big Data»
«Дизайн продвинутых нереляционных схем для Big Data»«Дизайн продвинутых нереляционных схем для Big Data»
«Дизайн продвинутых нереляционных схем для Big Data»Olga Lavrentieva
 
«Обзор возможностей Open cv»
«Обзор возможностей Open cv»«Обзор возможностей Open cv»
«Обзор возможностей Open cv»Olga Lavrentieva
 
«Нужно больше шин! Eventbus based framework vertx.io»
«Нужно больше шин! Eventbus based framework vertx.io»«Нужно больше шин! Eventbus based framework vertx.io»
«Нужно больше шин! Eventbus based framework vertx.io»Olga Lavrentieva
 

Mehr von Olga Lavrentieva (20)

15 10-22 altoros-fact_sheet_st_v4
15 10-22 altoros-fact_sheet_st_v415 10-22 altoros-fact_sheet_st_v4
15 10-22 altoros-fact_sheet_st_v4
 
Сергей Ковалёв (Altoros): Practical Steps to Improve Apache Hive Performance
Сергей Ковалёв (Altoros): Practical Steps to Improve Apache Hive PerformanceСергей Ковалёв (Altoros): Practical Steps to Improve Apache Hive Performance
Сергей Ковалёв (Altoros): Practical Steps to Improve Apache Hive Performance
 
Андрей Козлов (Altoros): Оптимизация производительности Cassandra
Андрей Козлов (Altoros): Оптимизация производительности CassandraАндрей Козлов (Altoros): Оптимизация производительности Cassandra
Андрей Козлов (Altoros): Оптимизация производительности Cassandra
 
Владимир Иванов (Oracle): Java: прошлое и будущее
Владимир Иванов (Oracle): Java: прошлое и будущееВладимир Иванов (Oracle): Java: прошлое и будущее
Владимир Иванов (Oracle): Java: прошлое и будущее
 
Brug - Web push notification
Brug  - Web push notificationBrug  - Web push notification
Brug - Web push notification
 
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
 
Максим Жилинский: "Контейнеры: под капотом"
Максим Жилинский: "Контейнеры: под капотом"Максим Жилинский: "Контейнеры: под капотом"
Максим Жилинский: "Контейнеры: под капотом"
 
Александр Протасеня: "PayPal. Различные способы интеграции"
Александр Протасеня: "PayPal. Различные способы интеграции"Александр Протасеня: "PayPal. Различные способы интеграции"
Александр Протасеня: "PayPal. Различные способы интеграции"
 
Сергей Черничков: "Интеграция платежных систем в .Net приложения"
Сергей Черничков: "Интеграция платежных систем в .Net приложения"Сергей Черничков: "Интеграция платежных систем в .Net приложения"
Сергей Черничков: "Интеграция платежных систем в .Net приложения"
 
Антон Шемерей «Single responsibility principle в руби или почему instanceclas...
Антон Шемерей «Single responsibility principle в руби или почему instanceclas...Антон Шемерей «Single responsibility principle в руби или почему instanceclas...
Антон Шемерей «Single responsibility principle в руби или почему instanceclas...
 
Егор Воробьёв: «Ruby internals»
Егор Воробьёв: «Ruby internals»Егор Воробьёв: «Ruby internals»
Егор Воробьёв: «Ruby internals»
 
Андрей Колешко «Что не так с Rails»
Андрей Колешко «Что не так с Rails»Андрей Колешко «Что не так с Rails»
Андрей Колешко «Что не так с Rails»
 
Дмитрий Савицкий «Ruby Anti Magic Shield»
Дмитрий Савицкий «Ruby Anti Magic Shield»Дмитрий Савицкий «Ruby Anti Magic Shield»
Дмитрий Савицкий «Ruby Anti Magic Shield»
 
Сергей Алексеев «Парное программирование. Удаленно»
Сергей Алексеев «Парное программирование. Удаленно»Сергей Алексеев «Парное программирование. Удаленно»
Сергей Алексеев «Парное программирование. Удаленно»
 
«Почему Spark отнюдь не так хорош»
«Почему Spark отнюдь не так хорош»«Почему Spark отнюдь не так хорош»
«Почему Spark отнюдь не так хорош»
 
«Cassandra data modeling – моделирование данных для NoSQL СУБД Cassandra»
«Cassandra data modeling – моделирование данных для NoSQL СУБД Cassandra»«Cassandra data modeling – моделирование данных для NoSQL СУБД Cassandra»
«Cassandra data modeling – моделирование данных для NoSQL СУБД Cassandra»
 
«Практика построения высокодоступного решения на базе Cloud Foundry Paas»
«Практика построения высокодоступного решения на базе Cloud Foundry Paas»«Практика построения высокодоступного решения на базе Cloud Foundry Paas»
«Практика построения высокодоступного решения на базе Cloud Foundry Paas»
 
«Дизайн продвинутых нереляционных схем для Big Data»
«Дизайн продвинутых нереляционных схем для Big Data»«Дизайн продвинутых нереляционных схем для Big Data»
«Дизайн продвинутых нереляционных схем для Big Data»
 
«Обзор возможностей Open cv»
«Обзор возможностей Open cv»«Обзор возможностей Open cv»
«Обзор возможностей Open cv»
 
«Нужно больше шин! Eventbus based framework vertx.io»
«Нужно больше шин! Eventbus based framework vertx.io»«Нужно больше шин! Eventbus based framework vertx.io»
«Нужно больше шин! Eventbus based framework vertx.io»
 

Kürzlich hochgeladen

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 

Kürzlich hochgeladen (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

«NoSQL Databases and Polyglot Persistence»

  • 1. © ALTOROS Systems | CONFIDENTIAL NoSQL Databases and Polyglot Persistence Sergey Kovalev, Senior Java Developer, sergey.kovalev@altoros.com
  • 2. © ALTOROS Systems | CONFIDENTIAL 2 The Challenge “One Size Does Not Fit All”
  • 3. © ALTOROS Systems | CONFIDENTIAL 3 • What is Polyglot Persistence? • RDBMS vs NoSQL • NoSQL DB types • Polyglot Persistence Patterns • Real project experience Agenda:
  • 4. © ALTOROS Systems | CONFIDENTIAL Polyglot Persistence - 4 Using multiple data storage technologies, chosen based upon the way data is being used by individual applications or components of single application. Martin Fowler http://martinfowler.com/articles/nosql-intro.pdf What is Polyglot Persistence?
  • 5. © ALTOROS Systems | CONFIDENTIAL 5 NoSQL Zooo What is Polyglot Persistence? http://nosql-databases.org 150+ NoSQL databases
  • 6. © ALTOROS Systems | CONFIDENTIAL 6 What is Polyglot Persistence? Who use polyglot persistence?
  • 7. © ALTOROS Systems | CONFIDENTIAL 7 • What is Polyglot Persistence? • RDBMS vs NoSQL • NoSQL DB types • Polyglot Persistence Patterns • Real project experience Agenda:
  • 8. © ALTOROS Systems | CONFIDENTIAL RDMS are great 8 • Widely used and understood • Tested in real environments • Efficient use of storage space if data normalized properly • Great tools support ACID semantics • Incredibly flexible and powerful query language • Great framework support RDBMS vs NoSQL
  • 9. © ALTOROS Systems | CONFIDENTIAL RDBMS have limitations 9 • Complex object graphs does not map very well with flat tables. • Strict Schema • Difficult to evolve Schema with time. • Data constraints and JOINs can be expensive at runtime. • Difficult to scale horizontally. RDBMS vs NoSQL
  • 10. © ALTOROS Systems | CONFIDENTIAL NoSQL features 10 • Flexible schema • Easy to scale horizontally to add processing power and storage • High Performance RDBMS vs NoSQL
  • 11. © ALTOROS Systems | CONFIDENTIAL 11 • What is Polyglot Persistence? • RDBMS vs NoSQL • NoSQL DB types • Polyglot Persistence Patterns • Real project experience Agenda:
  • 12. © ALTOROS Systems | CONFIDENTIAL Key Value Stores 12 • A key-value store is a simple hash table • Primarily used when all access to the database is via primary key • Value is a blob with the data store not caring or knowing what is inside NoSQL DB types
  • 13. © ALTOROS Systems | CONFIDENTIAL Column-Family Stores 13 • Store data in column families as rows that have many columns associated with a row key • Column families are groups of related data, often accessed together • Aggregate-Oriented NoSQL DB types
  • 14. © ALTOROS Systems | CONFIDENTIAL 14 NoSQL DB types Document Databases • Stores and retrieves documents, which can be XML, JSON, BSON, … • Documents are self-describing, hierarchical tree data structures which can consist of maps, collections and scalar values • Aggregate-Oriented
  • 15. © ALTOROS Systems | CONFIDENTIAL 15 NoSQL DB types Graph Databases • Allow to store entities and relationships between these entities • Entities are known as nodes, which have properties • Relations are known as edges, which also have properties
  • 16. © ALTOROS Systems | CONFIDENTIAL 16 • What is Polyglot Persistence? • RDBMS vs NoSQL • NoSQL DB types • Polyglot Persistence Patterns • Real project experience Agenda:
  • 17. © ALTOROS Systems | CONFIDENTIAL RDBMS 17 • Transactional data (payment and account) in a ACID compliant traditional RDBMS stores such as MySQL or Oracle. • Reporting Tools Polyglot Persistence Patterns RDBMS Web application Reporting Tools Transactional data
  • 18. © ALTOROS Systems | CONFIDENTIAL Key Value Stores 18 • Session data in Redis or Hazelcast. Session data requires faster read and write but not durability. • Shopping cart data in a high availability and fault-tolerance data store such as Riak. Polyglot Persistence Patterns RDBMS Web application Reporting Tools Transactional data Key-Value store Sessions and Shopping cart
  • 19. © ALTOROS Systems | CONFIDENTIAL Column-Family Stores 19 • Log level data (audit and activity) in a very high write throughput data store such as Cassandra. • Also good for analytic and real-time data mining such as product ranking Polyglot Persistence Patterns RDBMS Web application Reporting Tools Transactional data Key-Value store Sessions and Shopping cart Column-Family store Logging Analytic
  • 20. © ALTOROS Systems | CONFIDENTIAL Document Databases 20 • Product catalogue in a document oriented data store such as MongoDB. Requirement include high read throughput, frequent data change (stock level information) • Customer profile data including purchase history, shipping & billing address Polyglot Persistence Patterns Web application Reporting Tools Transactional data Key-Value store Sessions and Shopping cart Column-Family store Logging Analytic Document store RDBMS Product catalogue
  • 21. © ALTOROS Systems | CONFIDENTIAL Graph Databases 21 • Data for product recommendations, related products and similar products in a graph database such as Neo4j. Polyglot Persistence Patterns Web application Reporting Tools Transactional data Key-Value store Sessions and Shopping cart Column-Family store Logging Analytic Document store RDBMS Product catalogue Graph Databases Social graph
  • 22. © ALTOROS Systems | CONFIDENTIAL Summary 22 Polyglot Persistence Patterns
  • 23. © ALTOROS Systems | CONFIDENTIAL 23 • What is Polyglot Persistence? • RDBMS vs NoSQL • NoSQL DB types • Polyglot Persistence Patterns • Real project experience Agenda:
  • 24. © ALTOROS Systems | CONFIDENTIAL ScienceWarehouse challenges 24 • Hundreds of thousands of records are added to the database daily • Visitors’ activities logging generates huge amount of write queries • Price table contains approximately 100,000,000 records • Price history table contains approximately 500.000.000 • Data rapidly grows Real project experience
  • 25. © ALTOROS Systems | CONFIDENTIAL 25 • Upgrade hardware (vertical scaling) • Upgrade to the Oracle Database Enterprise Edition Options for ScienceWarehause • Use NoSQL and Polyglot Persistence or Real project experience
  • 26. © ALTOROS Systems | CONFIDENTIAL 26 Real project experience Solutions for ScienceWarehouse • Add a caching layer • Write the log data on visitors’ activities to a NoSQL database (Cassandra or HBase) • Move price history(500,000,000 records table) information to NoSQL data base(Cassandra or HBase)
  • 27. © ALTOROS Systems | CONFIDENTIAL 27 Real project experience ScienceWarehouse High Level Architecture Web application Legacy DB Key-Value store Sessions and Shopping cart Column-Family store Logging Analytic RDBMS
  • 28. © ALTOROS Systems | CONFIDENTIAL 28 Sergey Kovalev, Senior Java Developer, sergey.kovalev@altoros.com NoSQL Databases and Polyglot Persistence