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



Documentos relacionados
Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro

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

NoSQL. Cintia Freitas de Moura. BCC 441 Banco de Dados II / 2014

E N AT O M O L I N A T O T H

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

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

AN IN-DEPTH STUDY OF MAP REDUCE IN CLOUD ENVIRONMENT. Sistemas Distribuídos e Tolerância a Falhas Nuno Garcia m6284, Tiago Carvalho m6294

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

Engenharia de software 2011A. Trabalho sobre

Bancos de dados NOSQL (Not Only SQL)

Neo4j Aprendendo conceitos por trás do Neo4j. Sem SQL? Apresentação. Por que grafos, por que agora? Por que grafos, por que agora?

Uma Breve Introdução. Andréa Bordin

Sistemas de Bases de Dados

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Interoperabilidade entre Bancos de Dados Relacionais e Bancos de Dados NoSQL

Prof. Daniela Barreiro Claro

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

Shermila Guerra Santa Cruz Orientador: Ricardo Rodrigues Ciferri

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Definição São sistemas distribuídos compostos de nós interconectados, aptos a se auto-organizar em topologias de rede, com o intuito de compartilhar

Seminário: Google File System (GFS)

Disciplina de Banco de Dados Introdução

Introdução ao Modelos de Duas Camadas Cliente Servidor

Sistemas Distribuídos

Faculdade Lourenço Filho - ENADE

Programador/a de Informática

Desenvolvimento Cliente-Servidor 1

SISTEMA GERENCIADOR DE BANCO DE DADOS

Noções de. Microsoft SQL Server. Microsoft SQL Server

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Persistência e Banco de Dados em Jogos Digitais

Universidade Federal de Goiás Ciências da Computação Sistemas Operacionais 2

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Weather Search System

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Introdução a computação móvel. Middlewares para Rede de Sensores sem Fio. Uma avaliação na ótica de Adaptação ao Contexto

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

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

NoSQL: Vantagens, Desvantagens e Compromissos. Mauricio De Diana (mestrando) Marco Aurélio Gerosa (orientador)

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

*O RDBMS Oracle é um sistema de gerenciamento de banco de dados relacional.

Sistemas Distribuídos

Prof.: Clayton Maciel Costa

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD

SISTEMAS DISTRIBUÍDOS

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

MÓDULO MULTIMÉDIA. Text PROFESSOR: RICARDO RODRIGUES. MAIL: URL:

4 Um Exemplo de Implementação

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva UFU/FACOM

Banco de Dados, Integração e Qualidade de Dados. Ceça Moraes cecafac@gmail.com

1

Prof. Marcelo Machado Cunha

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Banco de Dados. Maurício Edgar Stivanello

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

Evandro Deliberal Aula 01

Roteiro 2 Conceitos Gerais

Curso de Aprendizado Industrial Desenvolvedor WEB

Programação para Android. Aula 07: Persistência de dados Shared Preferences, Internal e External Storage

VORONOI STATE MANAGEMENT FOR PEER-TO-PEER MASSIVELY MULTIPLAYER ONLINE GAMES

Sistemas Operacionais. Conceitos de um Sistema Operacional

Disciplina: Tecnologias de Banco de Dados para SI s

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

BANCO DE DADOS AULA 02 INTRODUÇÃO AOS BANCOS DE DADOS PROF. FELIPE TÚLIO DE CASTRO 2015

UNIVERSIDADE. Sistemas Distribuídos

PERFORMANCE EVALUATION OF A MONGODB AND HADOOP PLATFORM FOR SCIENTIFIC DATA ANALYSIS M.Govindaraju and L. Ramakrishnan

PEER DATA MANAGEMENT SYSTEM

UFG - Instituto de Informática

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

Arquitetura dos Sistemas de Informação Distribuídos

NanoDataCenters. Aline Kaori Takechi

SISTEMAS DISTRIBUIDOS

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP)

Fundamentos dos Sistemas de Informação Organização de Dados e Informações

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Definição São sistemas distribuídos compostos de nós interconectados, aptos a se auto-organizar em topologias de rede, com o intuito de compartilhar

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Fundamentos de Banco de Dados

Sistemas Operacionais: Sistema de Arquivos

Aula 02 Modelagem de Dados. Banco de Dados. Aula 02 Modelagem de Dados. Superior /2011 Redes Computadores - Disciplina: Banco de Dados -

Prof. Luiz Fernando. Unidade III ADMINISTRAÇÃO DE

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados

SISTEMAS DISTRIBUÍDOS

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Revisão de Banco de Dados

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)?

Arquitetura de Banco de Dados

JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem

Arquiteturas escaláveis utilizando ferramentas Shared Nothing. Victor Canô

Transcrição:

Grandes volumes de dados pertenciam ao domínio das aplicações científicas até há 15 anos atrás. Com o crescimento exponencial das aplicações Web o volume de dados que é produzido e processado tornou-se imenso. As empresas que fornecem serviços através da Internet como pesquisa, publicidade, e redes sociais processam diariamente gigantescas quantidades de dados. 1

Surge o termo Big data Coleção de dados tão grande e complexa que é difícil o seu processamento através das aplicações tradicionais. Big data surge em áreas como: - weblogs, -aplicações com RFID radio frequency identification, - redes de sensores, - redes sociais, - motores de busca, - serviços de vigilância militar, - registos médicos, - arquivos de fotos e vídeo, - grandes aplicações comerciais, 2

Não há muito tempo, uma aplicação ter 1000 utilizadores por dia era muito e 10,000 era um caso extremo. Hoje, imensas aplicações estão hospedadas na cloud, disponíveis pela internet, suportam utilizadores 24 horas por dia, 365 dias por ano. Mais de 3 biliões (1) de pessoas estão ligadas à net em todo o nundo (1) http://www.internetlivestats.com/internet-users/ 3

- O número de utilizadores de uma aplicação é muito difícil de prever. - Uma nova app pode ir de 0 a um milhão de acessos num só dia. - Alguns utilizadores acedem um vez e nunca mais voltam; - Outros acedem várias vezes ao dia. 4

As tecnologias de cloud suportam computação intensiva de dados através de: - Grande quantidade de instâncias de computação criadas a pedido; - Sistemas de armazenamento otimizados para guardar grandes blobs (binary large objects); - Fornecendo frameworks e APIs otimizadas para processar grandes quantidades de dados. 5

Alguns fornecedores de cloud foram criando tecnologias para processar grandes quantidades de dados: Hadoop system: Hadoop Distributed File System + Map Reduce; Google Map Reduce: Google File System + Map Reduce; [Sistema de armazenamento + Sistema de Computação ] Big Data e Bases de Dados Tradicionalmente as bases de dados relacionais distribuídas foram consideradas a evolução natural para o aumento do volume de dados. 6

Big Data e Bases de Dados Uma base de dados distribuída é construída dividindo os dados por várias localizações. São sistemas robustos, com suporte para transações distribuídas, mas são pouco eficientes para: - enormes quantidades de dados; - dados não estruturados; - dados cuja estrutura evolui ao longo do tempo; 7

Empresas como Google, Facebook, Amazon e LinkedIn concluíram que o modelo relacional de base de dados não servia para suportar as necessidades das suas aplicações. Surgiram as bases de dados NoSQL - Modelo de dados mais flexível; - Capacidade de escalar dinamicamente para suportar um maior número de utilizadores; - Pesquisas mais eficientes; 8

A necessidade de novas formas de armazenar grandes quantidades de dados levou ao surgimento de Sistemas de Ficheiros Distribuídos e de novos Sistemas de Bases de Dados. 1 - Sistemas de Ficheiros Distribuídos de Elevado Desempenho Google File System (GFS) Infraestrutura de armazenamento que suporta a execução de aplicações distribuídas. Desenhado para ser tolerante a falhas, com elevada disponibilidade, para hardware comum e construído em Linux standard. 9

Google File System (GFS) - O desenho do GFS assumiu que: - Iria ser construído em hardware comum que por vezes falha; - O sistema armazena um número razoável de grandes ficheiros; ficheiros com vários GB são comuns e devem ser tratados eficientemente; - Os workloads consistem principalmente em dois tipos de leitura: large streaming reads; small random reads; Tem também escritas sequenciais que acrescentam dados a ficheiros já existentes; - Grande e sustentada largura de banda é mais importante que baixa latência; 10

Google File System (GFS) A arquitetura do GFS é organizada como: - Um master que contém os metadados de todo o file system e uma coleção de servidores (chunk servers) que fornecem o espaço de armazenamento; (um ficheiro é dividido em conjuntos de chunks); - Chunks são replicados pelos vários servidores para tolerar falhas; - Uma coleção de processos que implementam ou o master ou chunks servers; 11

Google File System (GFS) - Os processos clientes acedem ao master, identificam o servidor que contém os dados que pretendem e comunicam diretamente com o chunk server; - Aplicações interactuam com o file system através de uma interface que possui as operações comuns de criar, apagar, ler ou escrever no ficheiro, e ainda snapshots e record append ; - É possível criar cópias do master e de qualquer dos chunk servers. 12

Amazon Simple Storage Service (S3) A forma de implementação não é pública. - Fornece um serviço de armazenamento organizado em buckets. - Cada bucket pode armazenar vários objectos, cada um identificado univocamente. - Objetos são identificados por um URL e expostos através de HTTP. O sistema é publicitado como sendo escalável, tolerante a falhas e com elevada disponibilidade, 13

NoSQL systems NoSQL Not Only SQL termo criado em 1998 para identificar uma base de dados que não oferecia uma interface SQL para manipular e aceder aos dados. - Não são bases de dados relacionais, mas uma coleção de scripts que permitem executar as operações mais comuns em base de dados, usando ficheiros de texto para guardar a informação. - A filosofia é ultrapassar as limitações impostas pelo modelo relacional e criar sistemas mais eficientes; 14

NoSQL systems Para isso são usadas tabelas sem esquemas fixos, que permitem: - conter um maior número de tipos de dados; - evitar operações de junção para aumentar o desempenho e permitir escalar o sistema horizontalmente. - Existem muito modelos: - Document stores; Graphs; Key-value stores; Multivalue databases; - Object databases; Tabular stores; Tuple stores; 15

Bases de Dados SQL Vs NoSQL Características de uma Base de Dados SQL: Dados são armazenados em tabelas; Associações entre os dados são representadas por dados; Linguagem de Manipulação de Dados (DML); Linguagem de Definição de Dados (DDL); Transações; 16

Bases de Dados SQL Vs NoSQL SQL Aplicações especificam o que querem e não como querem. Existe um motor de otimização dos queries; Abstração do nível físico; a camada física pode mudar sem ser necessário mudar as aplicações; Criação de índices para suportar queries; 17

Bases de Dados SQL Vs NoSQL SQL Uma transação deve respeitar as propriedades ACID: Atomic Todas as operações de uma transação são completadas (commit) ou nenhuma delas. Consistent Um transação transforma uma base de dados de um estado consistente em outro estado consistente. A consistência é definida através de restrições de consistência. 18

Bases de Dados SQL Vs NoSQL SQL - propriedades ACID: Isolated Os resultados das alterações efetuadas durante uma transação não são visíveis até que a transação termine com sucesso (committed). Durable Os resultados de uma transação terminada com sucesso (commited) sobrevivem a falhas.. 19

Bases de Dados SQL Vs NoSQL NoSQL definição (1): Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open-source and horizontally scalable. The original intention has been modern web-scale databases. The movement began early 2009 and is growing rapidly. Often more characteristics apply such as: schema-free, easy replication support, simple API, eventually consistent / BASE (not ACID), a huge amount of data, (1) http://www.nosql-database.org/ 20

Bases de Dados SQL Vs NoSQL NoSQL - caraterísticas Grandes volumes de dados; Replicação e distribuição escaláveis; - potencialmente milhares de máquinas; - potencialmente distribuída por todo o mundo; Respostas rápida aos queries; Principalmente queries, poucos updates; 21

Bases de Dados SQL Vs NoSQL NoSQL caraterísticas distintivas Sem um esquema fixo; Transações não são ACID são BASE (!) CAP teorema; Open-Source; 22

Bases de Dados SQL Vs NoSQL NoSQL Transações BASE (oposto de ACID) Basically Available; Soft state; (o estado do sistema pode mudar ao longo do tempo, mesmo sem input) Eventually consistent (o sistema vai tornar-se consistente ao longo do tempo) 23

Bases de Dados SQL Vs NoSQL NoSQL - caraterísticas Consistência fraca; Disponibilidade em primeiro lugar; Best effort ; Respostas aproximadas OK; Agressivo (Otimista); Fácil e rápido; 24

Bases de Dados SQL Vs NoSQL NoSQL - caraterísticas CAP teorema (Brewer, 2000) (na verdade não um teorema mas uma conjetura) Um sistema distribuído pode apenas suportar duas das seguintes características: - Consistência; - Disponibilidade; - Tolerância a partições; 25

Bases de Dados SQL Vs NoSQL NoSQL - CAP teorema - Consistência; Todos os nós vêm os mesmos dados ao mesmo tempo; O cliente percebe que um conjunto de operações ocorreu como um todo; (equivale ao conceito de atomicidade nas transações ACID) 26

Bases de Dados SQL Vs NoSQL NoSQL - CAP teorema - Disponibilidade; A avaria de um nó não faz com que os outros deixem de funcionar. Cada operação deve terminar e dar a resposta pretendida. 27

Bases de Dados SQL Vs NoSQL NoSQL - CAP teorema - Tolerância a partições; O sistema continua mesmo que haja mensagens perdidas; As operações serão concluídas mesmo que algum componente individual não esteja disponível. 28

NoSQL tipos de Bases de Dados NoSQL mais importantes Key-Value databases Document databases Column family stores Graph Databases (1) http://www.thoughtworks.com/insights/blog/nosql-databases-overview 29

NoSQL - Key-Value databases Modelo NoSQL mais simples de usar. O cliente pode: - obter o valor para uma chave: - pode atribuir um valor para uma chave; - apagar uma chave da base de dados; 30

NoSQL - Key-Value databases O valor é um blob armazenado na base de dados; O sistema de BD não conhece o que está dentro do blob; É da responsabilidade da aplicação conhecer o que foi armazenado. Os valores são acedidos pela única chave (primária) o acesso é rápido e facilmente escalável. Exemplos de sistemas de bases de dados key-value: Riak, Redis, Memcached, Berkeley DB, HamsterDB, Couchbase; 31

NoSQL - Document databases - O Documento é o conceito base destas bases de dados. - A BD armazena e permite aceder a documentos. - Os documentos são armazenados em XML, JSON, BSON, 32

NoSQL - Document databases - Os documentos são auto-descritivos. Os documentos são similares mas não necessariamente iguais. - Os documentos são conjuntos de elementos etiquetados (tagged) e que podem ser pesquisados. - Cada documento tem um campo chave; - Podem ser criados índices para acelerar as pesquisas. 33

NoSQL - Document databases Exemplos: MongoDB; CouchDB; Terrastore; OrientDB; RavenDB; 34

NoSQL - Column family databases - Cada bloco de armazenamento contém dados de uma coluna de uma tabela/registo/documento. 35

NoSQL - Column databases - Mais eficiente se múltiplas linhas (ou documentos) são armazenadas em simultâneo, assim as atualizações podem ser agregadas. - Exemplos: Cassandra (usado por Facebook, Twitter) Hbase; Hypertable (baseado no modelo da Google Big Table); Amazon DynamoDB (não é open source); 36

NoSQL - Graph databases 37

NoSQL - Graph databases - Entidades são nós de um grafo. - Associações entre entidades são representadas pelas arestas. - Entidades e associações podem ter propriedades. - A organização do grafo permite que seja interpretado de diferentes formas baseadas nas associações entre os nós. Exemplos: Neo4J, Infinite Graph, OrientDB; 38

SQL Vs NoSQL - escalabilidade Para enfrentar o aumento do número de utilizadores e o aumento do volume de dados podem considerar-se duas hipóteses. Scale up usar servidores cada vez maiores (solução centralizada) Scale out distribuir os dados e a computação por múltiplos servidores 39

SQL Vs NoSQL - escalabilidade O modelo relacional por omissão escala usando servidores cada vez mais poderosos. Isso implica planear, dimensionar, adquirir o servidor e eventualmente parar a aplicação para ser migrada. (Scale up) Bases de dados NoSQL foram desenhadas para ser distribuídas e tolerantes a falhas. São open source, usam máquinas comuns (mais baratas). Se o volume de dados aumenta acrescentam-se servidores. 40

NoSQL - escalabilidade e desempenho Auto-sharding Uma base de dados NoSQL automaticamente divide os seus dados por vários servidores sem parar a aplicação. Servidores podem ser adicionados ou removidos Muitos sistemas NoSQL replicam os dados pelos servidores para garantir a disponibilidade e tolerância a falhas. 41

NoSQL - escalabilidade e desempenho Distributed query support Sistemas NoSQL fornecem suporte para queries distribuídos Integrated caching Para aumentar o desempenho, colocam os dados em memória de forma transparente para a aplicação. 42

NoSQL - Amazon Dynamo Key Ring Storage Peer Storage Peer Pluggable Storage Engine (BDB, MySQL) Request Coordinator Failure and Membership Detection Storage Peer. Storage Peer Storage Peer Storage Peer 43

NoSQL - Amazon Dynamo - Milhares de servidores servem 10 milhões de acessos por dia; - Interface simplificada baseada em operações de get/put; - Objetos são armazenados com um identificador único; - Eventualmente consistente (não ACID); (todos os utilizadores verão os mesmos dados a longo prazo) - Coleção de storage peers organizados em anel. 44

NoSQL - Amazon Dynamo - Não há restrições de integridade; - Não há associações embutidas na base de dados; - Operações de join não são suportadas; - A aplicação constrói o seu modelo de dados sobre a estrutura disponibilizada. 45

2 Modelo de programação Map-Reduce Plataformas para programação de aplicações com computação intensiva de dados fornecem abstrações para exprimir computações que processem grandes volumes de dados, passam para o sistema de execução a gestão das transferências de dados. 46

2 Modelo de programação Map-Reduce A plataforma MapReduce introduzida pela Google exprime a computação com duas primitivas: map e reduce. A transferência e gestão dos dados é feita pelo infraestrututa de armazenamento (Google file system no caso da Google) 47

O modelo MapReduce é expresso na forma de duas funções: map (k1, v1) list ( k2, v2) reduce (k2, list (v2) ) list (v2) Exemplo: procurar a ocorrência de palavras em documentos: A função map lê um par key-value e produz uma lista de pares key-value de tipo diferente. - a função map para cada documento <documentoid, documento> gera uma lista com <palavra, documentoid> 48

O modelo MapReduce é expresso na forma de duas funções: map (k1, v1) list ( k2, v2) reduce (k2, list (v2) ) list (v2) A função reduce lê um par composto por uma key e uma lista de valores e produz uma lista de valores do mesmo tipo. - a função reduce vai agregar as ocorrências da mesma palavra, <palavra, list (documentoid> produzindo a lista de documentos onde aparece cada palavra. 49

11 Computação com MapReduce grandes Infrastructure volumes / de dados Runtime Distributed File System Map Task Input Data File Output Data File Reduce Task Map Task Input Data File Input Data File Output Data File Map Task Input Data File Output Data File Reduce Task Map Task Input Data File Input Data File Output Aggregation by Key Map Task Input Input Data File 50

O utilizador submete uma coleção de ficheiros expressos na forma de uma lista de pares <key, value> e define as funções map e reduce. O sistema de suporte ao MapReduce usa os ficheiro, eventualmente depois de divididos, como input da função Map. Os processos que executam funções Map geram ficheiros intermédios que contêm listas na forma de pares <k2, list(v2)). Ficheiros com a mesma chave podem eventualmente ser agregados. Estes ficheiros serão o input para os processos que executam a função Reduce, que irão produzir ficheiros de output na forma list(v2). 51

User Program Google MapReduce infraestrutura (1) fork (1) fork (1) fork Master (2) assign map (2) assign reduce Split 0 Split 1 Split 2 (3) read Worker Worker (4) local write (6) write Worker (5) remote read Output File 0 Split 3 Split 4 Worker Worker Output File 1 input files map phase reduce phase output files intermediate files 52

Dois tipos de processo executam numa infraestrutura de MapReduce: O Master e os Workers. O master controla a execução das funções Map e Reduce, particionando os dados, reorganizando os resultados intermédios, da função Map, para input da função Reduce. Os workers executam as funções de Map e Reduce. Os utilizadores podem configurar o número de processos Map e Reduce, mas todo o processo de transferência de dados é da responsabilidade da plataforma de execução. 53

11 Map-Reduce Adicionalmente a plataforma assegura uma execução fiável. Falhas nos processo workers são tratadas redirecionando o trabalho correspondente para outra máquinas. Falhas no master são tratadas usando checkpoints periódicos. 54