SEM LIMITES COM NOSQL
SOBRE – JHONATHAN DE SOUZA SOARES
• Bacharel Ciência da Computação - UNIFENAS
• Pós Graduado em Arquitetura de Software - IGTI
• MBA em Gestão de TI - UNIS
• Most Valuable Professional (MVP) - Microsoft
• Top 50 World Certified - Neo4j
• Evangelist e Ambassador - MongoDB
• Scrum Master PSM – Scrum.org
• Professor na FIAP e Bandtec
• Lead Architect na Lumini IT Solutions
SURGIMENTO NOSQL
• Primeiramente introduzido em 1998 por Carlo Strozzi, como
NoREL
• Conceito BigTable – 2006 Google Inc
•NÃO ACID ( Atomicidade, Consistência, Isolamento e
Durabilidade )
• SIM BASE (Basic Availability , Soft-state , Eventual consistency )
FUNDAMENTOS NOSQL
BASE - Basically Available, Soft state, Eventual consistency
• Basic Availability
• Caracteriza-se por ser basicamente disponível, ou seja, o sistema parece
estar funcionando o tempo todo;
• Soft-state
• Em estado leve, o sistema não precisa ser consistente o tempo todo nem
possuir esquema rígido
• Eventual consistency
• Eventualmente consistente, o sistema torna-se consistente no momento
devido, priorizando a disponibilidade do que a consistência.
FUNDAMENTOS NOSQL
• BIG DATA – Grande volume de dados
• BIG DATA – Velocidade para análise de dados
• BIG DATA – Capturar, armazenar e analisar dados não
estruturados
• Flexibilidade no desenvolvimento
• “Nova” Arquitetura em Nuvem
• Internet of things – tudo conectado
•Demandas por escalabilidade é cada vez maior
90% das empresas top
100 que mais faturam no
mundo utilizam algum
NoSQL!
NOSQL NÃO SUBSTITUI SQL, E SIM TRABALHA EM CONJUNTO -
POLIGLOTA
NoSQLNão Relacional, distribuído, alta performance para e alta escalabilidade;
SQLRelacional, processamento de transações, concorrência, consistência, baixíssima latência;
Dificuldades para escalar; Não serve para tudo;
TIPOS DE NOSQL
• Colunar | Wide Column | Column Families
• Hadoop – Hbase – Cassandra – Google BigTable – Azure Tables
• Orientado à Documentos | Document Store
• MongoDB – CouchBase – DocumentDB – ElasticSearch
• Chave-Valor | Tuple Store | Key Value
• DynamoDB – Redis – Memcache
• Orientado à Grafos | Graph Databases
• Neo4j – TitanDB - GraphData
•MULTI MODEL DATABASES (ou quase)
• ArangoDB – OrientDB – Azure CosmosDB – MongoDB
TIPOS DE NOSQL
Key Value
Column
Document
Graph
SQL Store
0
1
2
3
4
5
6
7
0 1 2 3 4 5 6 7 8 9 10
Escala
bilid
ade
Complexidade
Complexidade x Escalabilidade NoSQL
TEOREMA DE CAP
FUNDAMENTOS NOSQL
NoSQL = No Join (?) = Not Only Join
O que substitui o JOIN ?
•Hierarquia;
•Duplicar Dados (desnormalizar);
•Diferentes modelos para consultas e indexação;
FUNDAMENTOS NOSQL
Qual é a prioridade ?
•Alta consistência ?
•Alta performance de leitura ?
•Alta performance de escrita ?
FUNDAMENTOS NOSQL
FUNDAMENTOS NOSQL
REPLICASET = + REDUNDÂNCIA /
DISPONIBILIDADE
FUNDAMENTOS NOSQL
REPLICASET = + REDUNDÂNCIA /
DISPONIBILIDADE
FUNDAMENTOS NOSQL
REPLICASET = + REDUNDÂNCIA /
DISPONIBILIDADE
FUNDAMENTOS NOSQL
SHARDING = + ESCALABILIDADE /
PERFORMANCE
FUNDAMENTOS NOSQL
SHARDING = + ESCALABILIDADE /
PERFORMANCE
FUNDAMENTOS NOSQL
BENCHMARKS ARE NOT TRUSTFUL
FUNDAMENTOS NOSQL
Our database is too slow and is not big enough!We need NoSql!
Our database is too slow and is not big enough!We need NoSql!
FUNDAMENTOS NOSQL
KISS
● Avoid complexity
● Product First
● MVP
● Baby Step