Sistemas de Gerenciamento de Dados na Nuvem. Carmem Satie Hara Universidade Federal do Paraná

Documentos relacionados
Por que? A WEB está substituindo o desktop Google Gmail, Google Docs, Amazon, Flickr, Facebook, Twitter, YouTube Mudança de Paradigma:

Gerenciamento de Dados em Larga Escala

BD e Cloud Gerenciamento de. Dados na Nuvem

Bancos de Dados NoSQL

COMPUTAÇÃO EM NUVEM E PROCESSAMENTO MASSIVO DE DADOS Conceitos, tecnologias e aplicações

Evandro Deliberal Aula 01

Seminário apresentado em 29/06/2017 Disciplina: Sistemas Distribuídos Professora: Noemi Rodriguez Aluno: Ricardo Dias

BCD29008 Banco de dados

BCD29008 Banco de dados

Prof. Daniela Barreiro Claro

Universidade Federal do Maranhão

Um Repositório Chave-Valor com Garantia de Localidade de Dados. Patrick A. Bungama Wendel M. de Oliveira Flávio R. C. Sousa Carmem S.

Prof. Daniela Barreiro Claro

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIENCIAS AGRARIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMATICA

Introdução a Computação em Nuvem

Introdução a Computação em Nuvem

Sistemas Operacionais II

Marcio Victorino. Análise de Informações TCU - TI

Informática. Cloud Computing e Storage. Professor Márcio Hunecke.

Introdução aos Bancos de Dados Não-Relacionais. Mauricio De Diana (mestrando) Marco Aurélio Gerosa (orientador)

BIG DATA: UMA INTRODUÇÃO. Prof. Ronaldo R. Goldschmidt

Computação em nuvem (Cloud Computing)

Formação de DBAs SQL Server 2008

Carlos Eduardo de Carvalho Dantas

AN EVALUATION OF ALTERNATIVE ARCHITECTURE FOR TRANSACTION PROCESSING IN THE CLOUD (SIGMOD)

Gerenciamento de Dados em Sistemas Par-a-par

Arquiteturas para SGBD. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Bancos de Dados NoSQL PROF.: DR. LUÍS CARLOS COSTA FONSECA

Grandes volumes de dados pertenciam ao domínio das aplicações científicas até há 15 anos atrás.

PrIntCloud. Disciplina: Procedência de Dados e Data Warehousing. Aluna: Shermila Guerra Santa Cruz. 16/04/13

Capítulo 7: SPARQL Processamento de consulta em nuvem

23/05/12. Computação em Nuvem. Computação em nuvem: gerenciamento de dados. Computação em Nuvem - Características principais

SGBDs NoSQL Modelos e Sistemas de Colunas e Grafos. Aluno: Jorge Dias Disciplina: IN940

ARMAZENAMENTO E PROCESSAMENTO DE BANCOS DE DADOS RELACIONAIS

Interoperabilidade entre Bancos de Dados Relacionais e Bancos de Dados NoSQL

Big Data. A Nova Onda

SGBD NoSQL. Débora Souza in940

Computação em Grid e em Nuvem

Pollyanna Gonçalves. Seminário da disciplina Banco de Dados II

NoSQL Apache Cassandra para DBAs. Conceitos básicos que todo DBA deve conhecer sobre Apache Cassandra.

PÓS-GRADUAÇÃO ANÁLISE DE BIG DATA

Informática Parte 11 Prof. Márcio Hunecke

Introdução. O que é um Banco de Dados (BD)?

Unidade 1 Introdução

Arquitetura de sistemas distribuídos

CASSANDRA: BANCO DE DADOS NÃO RELACIONAL DE ALTO DESEMPENHO

Principais Motivos para Usar o MySQL

Designing Data Intensive Applications

Informática Parte 10 Prof. Márcio Hunecke

Replicação. Cleide Luzia Bonfim Possamai 03/05/2018

Universidade Vila Velha. Iago Binow, Lorran Pegoretti, Luiz Marcon e Pedro Malta

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

Cloud Computing Jorge Gomes

MBA ANALYTICS EM BIG DATA

Conceitos de Sistemas de Banco de Dados INE 5323

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo.

GBC053 Gerenciamento de Banco de Dados. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM/BCC

Bruno Antunes da Silva UFSCar - Sorocaba

Sistemas Distribuídos

Armazenamento de Dados

Bases de Dados Relacional/Objeto e NoSQL. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

Bancos de Dados Distribuídos. Bancos de Dados Distribuídos. Conteúdo. Motivação. Motivação. Introdução aos BDs Distribuídos.

Computação móvel na nuvem Grover E. Castro Guzman Computação Móvel MAC5743 IME-USP

Estudo de implementação de um cluster utilizando apache hadoop. Giovanni Furlanetto

UNIVERSIDADE FEEVALE ANDERSON BUENO TRINDADE CONVERSÃO DE UM DIAGRAMA E-R PARA UMA BASE DE DADOS MONGODB (NOSQL)

4º Congresso Científico da Semana Tecnológica - IFSP 2013, copyright by IFSP de outubro de 2013, Bragança Paulista, SP, Brasil

Top. Esp em Banco de Dados

Sistemas de Bancos de Dados Distribuídos

Bancos de Dados Distribuídos. Lucas Henrique Samuel Queiroz

Sistemas de Bancos de Dados Distribuídos

Informática Parte 5 Prof. Márcio Hunecke

SISTEMAS DISTRIBUÍDOS

Palavras Chave: NoSQL, Escalabilidade, Banco de dados, web 2.0.

ORACLE DATABASE CLOUD. Anthony Baldavia

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Desenvolvimento de Aplicações Distribuídas

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA GABRIEL BOJKO LUIZ OTÁVIO OYAMA

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Sistemas Distribuídos

Bancos de Dados Distribuídos. Gabriel Resende Gonçalves 4 de fevereiro de 2014

Projeto de Sistemas Distribuídos. Considerações

Sistemas da Informação. Banco de Dados I. Edson Thizon

FACULDADE FARIAS BRITO

Análise Comparativa entre Bancos de Dados NoSQL para Realização de Cache de Banco de Dados em Aplicações Web

Algoritmos de Junção Estrela em MapReduce

Designing Data Intensive Applications

Características de Sistemas Distribuídos

Caracterização de Sistemas Distribuídos

CURTA DURAÇÃO ANÁLISE DE BIG DATA. CARGA HORÁRIA: 80 horas COORDENAÇÃO: Prof. Dr. Adolpho Pimazoni Canton Prof.ª Drª Alessandra de Ávila Montini

Computação em Nuvem: Conceitos, Aplicações e Desafios Miguel Elias Mitre Campista

2/5/2017 COMPUTAÇÃO EM NUVEM É IMPORTANTE? QUAL A MOTIVAÇÃO DA COMPUTAÇÃO EM NUVEM? Computação em Nuvem: Conceitos, Aplicações e Desafios.

CLOUD COMPUTING: O USO DA PLATAFORMA AWS E ARMAZENAMENTO NO AMAZON S3.

PMR3507 Fábrica digital

Agenda. O que é o Windows Admin Center? Características do Windows Admin Center. O que está em desenvolvimento. Apêndice: screenshots

Cassandra no Desenvolvimento de Aplicações para serviços Móveis. por J.P. Eiti Kimura

Banco de Dados de Imagens de Sensoriamento Remoto

Banco de Dados e Aplicações em Negócios: Introdução.

Transcrição:

Sistemas de Gerenciamento de Dados na Nuvem Carmem Satie Hara Universidade Federal do Paraná

Computação na Nuvem Por que? A WEB está substituindo o desktop Google Gmail, Google Docs, Amazon, Flickr, Facebook, Twitter, YouTube Mudança de Paradigma: Amazon Web Services Windows Azure Platform Google App Engine

Computação na Nuvem É um modelo que proporciona acesso, através da rede, a um conjunto de recursos configuráveis (rede, servidores, armazenamento, aplicações e serviços), que são gerenciados pelo provedor do recurso, e que podem ser utilizados por clientes através de uma interface de serviço.

Computação na Nuvem Evolução dos conceitos de: Virtualização: encapsulamento de características físicas do recurso e visão de multiplos recursos logicos sobre um mesmo recurso físico Arquitetura orientada a serviço (SOA): baixo acoplamento entre o provedor e consumidor Computação autônoma: auto gerenciável, selfservice e sob demanda Computação como serviço público

Computação na Nuvem Compartilhamento de recursos: CPU, armazenamento, banda de rede Disponibilidade, escalabilidade, elasticidade Gerenciamento, transferência de riscos Tolerância a falhas Baseado em computadores simples Pagamento pelo uso

Elasticidade Data Center da Microsoft 1000 computadores usados por 1 hora custa o mesmo que 1 computador usado por 1000 horas Com paralelismo: resultados 1000 vezes mais rápido Exemplo: Animoto carga de trabalho dobrou a cada 12 horas por 3 dias.

Utilização de Recursos Fonte: M. Armbrust et al, CACM'2010 Provisionamento pela carga máxima pode causar subutilização. Provisionamento pela média pode aumentar o tempo de espera e perda de clientes. Dificuldade de prever a carga e variaçãao da carga no tempo.

Modelos de Operação Nuvem Pública computação como serviço público Nuvem Comunitária compartilhamento de recursos entre membros de uma comunidade com interesses comuns Nuvem Privada virtualização de serviços em servidores locais Nuvem Híbrida combinação de abordagens

Paradigmas Cliente Aplicação SaaS (Software as a Service): oferece software como serviço, eliminando a necessidade de instalação e execução na máquina do cliente. Plataforma PaaS (Platform as a Service): oferece um conjunto de soluções como serviço para dar suporte a aplicações na nuvem. Ex: Google App Engine, MS Azure Infraestrutura Servidor IaaS (Infrastructure as a Service): oferece uma plataforma computacional, em geral um ambiente virtualizado, como serviço. Ex: Amazon EC2

Banco de Dados como SaaS Um serviço de armazenamento e busca de dados na Internet com: Ilusão de recursos infinitos: escalabilidade Custo mínimo de instalação Pagamento pela utilização do serviço (volume de dados e de acessos) Disponibilidade

Carga de Trabalho OLAP (Online Analytical Processing) Análise de um grande volume de dados Poucas atualizações Processamento pesado OLTP (Online Transaction Processing) Transações curtas que envolvem poucos dados Grande volume de atualizações BD Paralelos MapReduce - Hadoop BD Distribuídos Repositórios chave-valor

Aplicação WEB Tradicional Cliente HTTP FCGI Servidor WEB XML, JSON, HTL XML, JSON, HTL Servidor de Aplicação SQL Servidor de BD registros get/put Armazenamento bloco

Arquitetura de Base Replicada ou Particionada Cliente Cliente Cliente Cliente HTTP SQL Servidor WEB + Servidor Aplicação Servidor WEB + Servidor Aplicação Servidor WEB + Servidor Aplicação Problema: escalabilidade Servidor de BD + Armazenamento Servidor de BD + Armazenamento Servidor de BD + Armazenamento

Arquitetura de Disco Compartilhado Cliente Cliente Cliente Cliente HTTP Servidor WEB + Servidor Aplicação + Servidor BD Servidor WEB + Servidor Aplicação + Servidor BD Servidor WEB + Servidor Aplicação + Servidor BD Controle Distribuído Put / Get Armazenamento Armazenamento Armazenamento

OLTP - Arquitetura do Sistema Processamento de Consultas Nível Lógico Recuperação Concorrência Componente Transacional Rede Sobreposta Nível Físico

Nível Lógico Modelo Chave-Valor A chave identifica um par e o valor associado é um BLOB. (1, (RG, 123), (nome, Joao) ) (25, (nome, Rui), (idade, 12) ) (22, (rua, Deodoro), (numero, 12) ) (10, (cidade, Novo Hamburgo), (local, Feevale) ) Put( 45, valor5) Get( 22 ) Delete( 25 ) Exemplo: Voldemort, Scalaris

Nível Lógico Modelo de Documento Similar ao Chave Valor, mas o valor tem estrutura, como por exemplo um conjunto de (atributo, valor de atributo). São organizados em domínios. Dominio Aluno Dominio Curso (1, {(id, 1), (nome, Ana)} (5, {(nome, CC)} (4, {(RG, 23), (nome, Paulo)} (52, {(sigla, EE)} Select nome from Aluno where id = 1 Exemplo: SimpleDB, CouchDB

Nível Lógico Modelo de Registro Extensível Aluno column supercolumn A1 nome curso A1BD A1EE Joao CC disc nota disc nota BD 95 EE 78 row Column Family A2... Interface procedural: Get: key, range Insert Remove Ex: Cassandra, HBase

Nível Lógico - Modelos Relacional XML Interface: SQL Ex: Amazon Relational Database Service (RDS) Interface: Xquery Ex: Sausalito

Envolve: a localização do dado Nível Físico mapeamento de operações atômicas com o armazenamento físico métodos de acesso Pode ser implementado por: Tabela de Espalhamento Distribuída (DHT) Sistema de Arquivos Distribuído (DFS) dentre outras possibilidades

DHT put(chave, valor) Módulo de Acesso aos Dados get (chave) DHT valor nodo nodo. nodo... DHT é um serviço de busca de dados armazenados de forma distribuída em um conjunto de nodos. O espaço de chaves é uniformemente distribuído pelos nodos. Os nodos formam uma rede sobreposta. Os nodos mantêm uma lista de vizinhos em sua tabela de roteamento. É independente da topologia da rede.

DHT Propriedades: Descentralização Tolerância a falhas Escalabilidade

Sistema de Arquivos Distribuído (DFS) Arquivo: unidade lógica de armazenamento Permite o acesso a arquivos armazenados em servidores (nodos) remotos Implementa controle de concorrência Pode fazer replicação para maior disponibilidade e tolerância a falhas

Google DFS Objetivo: armazenamento de um enorme volume de dados de forma redundante sobre servidores simples. Maioria das operações de leitura. Escrita na maioria inserção de novos valores (sem sobrescrever valores existentes) Arquivos: são divididos em pedaços (chunks) Interface: create, delete, open, close, read, write, append, snapshot sobre arquivos

Google DFS - Arquitetura Servidor mestre: coordena acessos e mantém metadados com mestres shadow Múltiplos servidores de chunks

Componente Transacional Em SGBDs tradicionais: transações com propriedades ACID: Atomicidade, Consistência, Isolamento, Durabilidade Em Sistemas Distribuídos: Teorema CAP Consistência: cópias consistentes Disponibilidade: tolerante a falhas em nodos Tolerante a Particionamentos na rede só é possível garantir 2 características.

CAP - Tradeoffs PACELC: P Partition? yes no A C L C Disponibilidade Consistência Latência Consistência Escolha dos SGBDs Escolha dos Repositórios Chave-Valor

Propriedade BASE BAsically Available, Soft state, Eventually consistent Sempre disponível Nem sempre consistente (inconsistência entre réplicas) Torna se consistente em um determinado momento Resolução de Conflitos Durante Leitura / Escrita / Independente Timestamp, Vector clocks Nível de Consistência Quorum, Um, Todos

Suporte a Transações Estender os repositórios chave valor MegaStore [CIDR 11], G-Store [SoCC 11] Arquitetura híbrida: componentes de SGBDs e repositórios / serviços Deutoronomy [CIDR 09, 11], ElasTraS [HotCloud 09], DB on S3 [SIGMOD 08] Migrar o SGBD para a Nuvem RelationalCloud [CIDR 11], SQL Azure [ICDE 11]

Movimento NoSQL NoSQL: Not Only SQL ou Not Relational? Armazenamento distribuído e escalável Replicação de dados tolerância a falhas Sem esquema ou com esquema extensível Interface simples, baseada em chamadas de operações simples Consistência fraca

Sistemas Amazon WS Serviços pagos por volume de armazenamento e quantidade de acessos Simple Storage Service (S3) SimpleDB Relational Database Service (RDS) Dynamo: repositório baseado em DHT

S3 Modelo: chave valor, onde valor pode ter de 1B a 10GB, armazenados em buckets. O bucket pode ser criado em uma das 5 regiões (EUA Leste, EUA Oeste, Europa, Japão, ou Singapura) Interface: put, get, scan(bucket), scan(bucket, prefix) Segurança: privilégios no nível de bucket (leitura, gravação)

SimpleDB Modelo: documento Interface: put, get, select target from dominio where condição Consistência: eventual ou forte (definida por operação) Para a implementação de transações pela aplicação: put/get condicionais (atualizam dependendo do valor prévio coincidir com o que foi lido)

Relational Database Service Modelo: relacional (com réplicas) Fornece funcionalidade e compatibilidade com o SGBD MySQL, mas com armazenamento na nuvem Capacidade: cada base de dados com 1.7GB a 68GB

Cassandra Modelo: registro extensível Repositório baseado em uma DHT, mantém os dados armazenados em ordem lexicográfica pela row key Fator de replicação configurável Consistência por operação: zero, one, quorum, all, ou any Write: escrito primeiro no log do nodo que contém o dado

Sistemas - Comparativo Característica S3 SimpleDB Cassandra SQL Azure Rel.Cloud Modelo Chave Documento Reg.Ext. Relac. Relac. Armaz. DHT DHT DHT Tabela Tabela Linguagem API API API SQL SQL Simples Simples Simples Transações Não Não Não Sim Sim local distribuída Consistência Eventual Eventual Eventual Forte Forte Escalabil. Alta Alta Alta Média Baixa Disponibil. Alta Alta Alta Alta Média [Souza, SBBD'2010]

OLAP - Plataformas BD Paralelos Existem desde a década de 80 É uma tecnologia madura e cara Map Reduce É um modelo de programação paralela Está associada a uma implementação paralela e distribuída em um cluster de computadores Introduzido pela Google e popularizado pelo Yahoo (Hadoop)

MapReduce Input key*value pairs Input key*value pairs... Data store 1 map Data store n map (key 1, values...) (key 2, values...) (key 3, values...) (key 1, values...) (key 2, values...) (key 3, values...) == Barrier == : Aggregates intermediate values by output key key 1, intermediate values key 2, intermediate values key 3, intermediate values reduce reduce reduce final key 1 values final key 2 values final key 3 values

HadoopDB HADOOP + SGBD

Desafios Segurança e privacidade dos dados Modelo Nível em que deve ser implementado Criptografia, políticas de segurança Modelos de dados distintos para aplicações distintas? independência física e lógica Qual o modelo / arquitetura de compartilhamento? OLAP / OLTP

Desafios (cont.) Mapeamento entre o modelo lógico e físico Particionamento e Localização dos dados Processamento de consultas e métodos de acesso (Indexação, otimização e tuning) Modelo de suporte a transações Pelo repositório chave valor Componente do sistema gerenciador de banco de dados

Desafios (cont.) SGBDs multi inquilinos Grande quantidade de inquilinos Carga variável ao longo do tempo balancealmento de carga Migração dinâmica de dados

Gerenciamento de Dados na Nuvem Um novo modelo de armazenamento de dados que apresenta diversos desafios para prover: Escalabilidade Elasticidade Consistência Facilidade de desenvolvimento de aplicações

Referências Brantner, M., Florescu, D., Graf, D., Kossmann, D., Kraska, T., Building a Database on S3, SIGMOD'2008 Amazon Web Services http://aws.amazon.com Agrawal, D., Das, S., Abbadi, A.E., Big Data and Cloud Computing: Current State and Future Opportunities, EDBT'2011 Fox, A. Cloud Computing What's in It for Me as a Scientist?, Science 28 January 2011: Vol. 331 no. 6016 pp. 406 407

Michael Armbrust, Armando Fox, Rean Griffith, Anthony D. Joseph, Randy Katz, Andy Konwinski, Gunho Lee, David Patterson, Ariel Rabkin, Ion Stoica, Matei Zaharia, A View of Cloud Computing, CACM, Vol. 53 No. 4, Pages 50 58 Levandoski, J.J., Lomet, D., Mokbel, M.F., Zhao,, K.K., Deuteronomy: Transaction Support for Cloud Data, CIDR'2011 Cattell, R., Scalable SQL and NoSQL Data Stores, Relatório Técnico, 2011 Ghemawat S., Gobioff H., Leung, S T, The Google File System, SOSP'2003