Você está na página 1de 28

MBA em Cloud Computing

BANCO DE DADOS CLOUD E BIG DATA


Aula 2

Banco de Dados Distribuídos


Escalabilidade
Transações Distribuídas
Computação distribuída avançada

As redes Peer-to-Peer
(P2P) são um modelo de
comunicação em que todas as
partes possuem as mesmas
capacidades e
responsabilidades
O Grid Computing é um desafio
bem maior do que formas mais
simples de computação
paralela e distribuída

Uma aplicação distribuída consiste de um conjunto de processos de aplicação que


interagem por meio de mensagens. É uma aplicação na qual os programas que a
compõem são distribuídos entre dois ou mais computadores interconectados em uma
rede, como a Internet por exemplo.
Arquitetura Master-Slave
Arquitetura Peer to Peer (P2P)
Arquitetura Shared Nothing
Motivações NoSQL e Big Data

ü Escalabilidade
Demandas por
ü Cloud Native
escalabilidade
ü BIG DATA - Grande volume de dados;
é cada vez ü BIG DATA - Velocidade para analise de dados;
maior ü BIG DATA - Capturar, armazenar e analisar dados não estruturados;
ü Flexibilidade no desenvolvimento;
ü Internet of things – Tudo conectado “ligado”;
Not Only SQL
“As empresas estão adotando tecnologias
NoSQL e encontrando sucesso com eles.
Muitas vezes, encontrar o sucesso é uma
questão de encontrar a abordagem certa.”

“Invasão dos Bárbaros”

> 40 anos
Era da informação
Evolução dos Banco de Dados
Modelo Hierárquico Modelo Relacional Evolução Novos Modelos
SGDBs SQL NoSQL

Década de 60 Década de 70 Década de 80 e 90 A partir de 2000


Definição NoSQL
§ O NoSQL abrange uma ampla variedade de diferentes tecnologias de banco de dados que foram
desenvolvidas em resposta às demandas apresentadas na construção de aplicativos modernos;

§ Os desenvolvedores estão trabalhando com aplicativos que criam grandes volumes de novos tipos de dados
que mudam rapidamente - dados estruturados, semiestruturados, não estruturados e polimórficos;

§ Pode ser definido como uma classe definida de banco de dados que fornecem um mecanismo para
armazenamento e recuperação de dados que são modelados de formas diferentes das relações tabulares
usadas nos bancos de dados relacionais.
§ Bancos de dados NoSQL são cada vez mais usados em big data e aplicações web de tempo real;

§ Sistemas NoSQL, às vezes, também são chamados de "Not only SQL" ("Não apenas SQL") para enfatizar que
eles podem suportar linguagens de consulta semelhantes à SQL.
SQL comparado a NoSQL

• Gerenciamento de database relacionais • Gerenciamento de database distribuído


• Escalabilidade Vertical • Escalabilidade Horizontal
• Esquema pré-definido • Esquema flexível/dinâmico
• Pode ser usado para consultas complexas • Funciona bem para consultas simples
Qual é o caminho ?

Size Key-value

Família de Colunas

Documento DB

Social Semantic
Grafos DB

Zone
RDBMS
Tradicional

Zona de conforto SQL


90% das Aplicações

Complexidade
Incompatibilidade de impedância
Diferença entre a estrutura de dados na memória (aplicativo) e o modelo relacional.
Arquitetura Multitenancy
ü Banco de Dados dedicados A maioria dos softwares existentes hoje foi
desenhada para operar nos data centers
das empresas, sujeitos a contratos
DB específicos de licença de uso. As próprias
Inquilino plataformas de aplicação como Java e .Net
foram desenhadas para operarem no
modelo on-premises
ü Banco de Dados Compartilhados (Esquemas Separados)
Inquilino 1
DB Inquilino 2
Inquilino
Inquilino 3
As arquiteturas de software atuais não
atendem a este novo cenário. É
ü Banco de Dados Compartilhados (Esquemas Compartilhados) necessário um novo modelo
arquitetônico de software, chamado de
Inquilino 1
multitenancy ou multi-inquilino.
DB Inquilino 2
Inquilino
Inquilino 3
Tipos de databases NoSQL
Column Store / Document Store Key Value / Tuple Graph Databases
Column Families Store

HBase MongoDB DynamoDB Neo4J


Cassandra Couchbase Server Azure Table Storage Infinite Graph

Hypertable CouchDB Riak HyperGraphDB


Amazon SimpleDB RethinkDB Redis GraphBase

Hypertable Terrastore Voldemort Trinity


... ... ... ...

http://nosql-database.org/
Princípios de banco de dados distribuídos

Cliente
Cluster DB Particionamento J-N
Cliente
E-I
Cliente
A-D

Mestre Atualização

Replicação Consultas

Slave 2 Slave 1
Replicação de Dados
+ Performance e Escala para Leitura;
+ Resiliência para Leitura;
- Consitência

Ponto único de falha


Sistema distribuído

Escalabilidade horizontal para leitura


Cluster A
Nó Mestre Nós Escravos

DC Principal DC Principal DC Secundário DC Principal

Node A Node B Node C Node D


Prioridade = 5 Prioridade = 5 Prioridade = 1 Prioridade = 5
Particionamento

+ Performance e Escala para Gravação;


+ Complexidade;

Sistema distribuído

DB1 DB2 EUA BRA

Escalabilidade geograficamente distribuído.


Replicação + Particionamento
No geral, não há garantias nas
gravações:
Conceito de Quórum: exemplo
N = 6 (fator de replicação)
Sistema distribuído W = 4 (fator de escrita bem sucedida)
N – W = 2 (tolerância)

Cluster A
Nó Mestre Nós Escravos

DC Principal DC Principal DC Secundário DC Principal


BRA

Node A Node B Node C Node D


Prioridade = 5 Prioridade = 5 Prioridade = 1 Prioridade = 5

Nó Mestre Nós Escravos

DC Principal DC Principal DC Secundário


EUA

Node E Node F Node G


Prioridade = 5 Prioridade = 5 Prioridade = 1
Teorema de CAP

Somente é possível obter 2 delas. Sistemas distribuídos, escolher 2:


ü Consistency: Todos os nodes veem os mesmos

CA
A dados
AP
RDBMS ü Availability: Todos os pedidos recebem uma
(Oracle, Dynamo
Mysql, etc) Voldemort
resposta

Aster
Cassandra ü Partition Tolerance: Sistema funcional após
Availability SimpleDB
Greenplum falhas de rede
CouchDB
Vertica
Riak

CAP
Tolerância a
Consistency
Partições
C CP
P
Big Table MongoDB
Hbase Redis
Modelo de Dados (Documentos) - JSON
{
"_id": "Joao", {
"nome": "Joao da Silva" "_id": "Joao",
} "nome": "Joao da Silva",
"endereco": {
{ "rua": "das hortencias",
"pessoa_id": "Joao", "cidade": "Sao Paulo",
"rua": "das hortencias", "estado": "Sao Paulo",
"cidade": "Sao Paulo", "cep": 777777
"estado": "Sao Paulo", }
"cep": 777777 }
}
Modelo de Dados Agregado
{
"_id": "Joao",
"nome": "Joao da Silva",
"join_data": 20160401,
1 Pessoa
"endereco": [
{
"rua": "das hortencias",
"cidade": "Sao Paulo",
"estado": "Sao Paulo",
"cep": 777777
},
{
N Endereços
"rua": "dom pedro",
"cidade": "Sao Paulo",
"estado": "Sao Paulo",
"cep": 888888
}
]
}
Consultando os títulos de uma Editora
{
"_id": “oreilly",
"nome": “O Reilly Media",
"fundada": 1980,
“local": “CA“
}

{
"titulo": “Mongo DB: The Definitive Guide",
"autor": [ "Kristina Chodorow", "Mike Diroli“ ] ,
"data_publicacao": "2010-09-24",
"paginas": 216,
"linguagem": "English",
"editora": "oreilly"
}
Modelo para consulta

{
"_id": “oreilly",
"nome": “O Reilly Media",
"fundada": 1980,
“local": “CA“
“livro": [
" Mongo DB: The Definitive Guide ",
"Machine Learning “ ,
“Hadoop: The Definitive Guide“,
“Data Science from Scratch”
]
}
Persistência poliglota

Plataforma

Carrinho de Pedidos Estoque e


Sessão DW/BI
compras Concluídos Vendas

Família
Chave-
Valor RDBMS
Orientado
Documentos
RDBMS De
Colunas

Você também pode gostar