A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquitetura Baseada em Serviços Web Services e BD e NoSQL 2º Semestre 2009 > PUCPR > Pós em BD Bruno C. de Paula.

Apresentações semelhantes


Apresentação em tema: "Arquitetura Baseada em Serviços Web Services e BD e NoSQL 2º Semestre 2009 > PUCPR > Pós em BD Bruno C. de Paula."— Transcrição da apresentação:

1 Arquitetura Baseada em Serviços Web Services e BD e NoSQL 2º Semestre 2009 > PUCPR > Pós em BD Bruno C. de Paula

2 Resumo e motivação da aula Vamos trabalhar na aula de hoje com bancos de dados não relacionais; Esta nova abordagem está ganhando bastante força em arquiteturas baseadas em serviços devido às suas vantagens relacionadas a escalabilidade, distribuição e acesso.

3 Modelo relacional é excelente, porém... É necessário transmitir um texto SQL do cliente ao SGBD para conseguir um resultado; Difícil de criar estruturas reutilizáveis; Representação antinatural de estruturas altamente hierárquicas; Não prevê, originalmente, sistemas distribuídos e paralelizáveis. 32/11/2013

4 NoSQL - características SGBDs projetados para aplicações web em mente; Distribuídos, descentralizados e paralelizáveis; Tolerantes a falha; Fogem de schemas fixos; Escaláveis de maneira transparente; Acessíveis via web services; Não é ORM! Muito novos... 42/11/2013

5 NoSQL - características Podem ser instalados localmente ou, por serem distribuídos, podem ser jogados para a nuvem; 52/11/2013

6 Cloud Computing Computação em Nuvem Detalhes da infra-estrutura são escondidos do usuário e localizados na Internet; IaaS (Infraestrutura como Serviço): – Virtualização; PaaS (Plataforma como Serviço): – Cloudware; – Seu sofware roda na Internet; SaaS (Software como Serviço): – Licenciamento de um aplicativo sob demanda. 62/11/2013

7 Teorema CAP Ao mesmo tempo, você só pode escolher 2 ao mesmo tempo: – Consistência (consistency): todos os clientes enxergam os mesmos dados; – Disponibilidade (availability) : todos os clientes acessam alguma versão dos dados; – Tolerância a Partição (partition tolerance): o banco pode ser dividido em múltiplos servidores. NoSQL implementam consistência eventual;consistência eventual 72/11/2013

8 NoSQL Tipos de SGBD Key-value: tabela hash; Document-based: metáfora de documentos; Não existe um padrão de linguagem! 82/11/2013

9 Exemplos de implementações NoSQL Voldemort: Linkedin, Digg; Voldemort Cassandra: Facebook; Cassandra CouchDB; CouchDB MongoDB; MongoDB Amazon SimpleDB: usado pelo S3 ; Amazon SimpleDB 92/11/2013

10 Exemplos de implementações NoSQL Google BigTable / Google Fusion Tables; Google BigTable HyperTable: implementação do BigTable; HyperTable HBase; HBase Yahoo Sherpa; Yahoo Sherpa LucidDB; LucidDB... Dezenas! Dezenas 102/11/2013

11 Voldemort Desenvolvido pelo Linkedin; Dados são automaticamente: – Replicados para múltiplos servidores; – Particionados (cada servidor contém um pedaço dos dados); Dados são versionados; Cada nó é independente; 10-20k operações por segundo por nó. 112/11/2013

12 Voldemort Serialização em Java; Clone do Amazon Dynamo; Open Source (Java); Download em: – 122/11/2013

13 Instalação Download de versão para Linux em: – rt/downloads rt/downloads 132/11/2013

14 Exemplo de uso Iniciando um nó./bin/voldemort-server.sh config/single_node_cluster > /tmp/voldemort.log & 142/11/2013

15 Exemplo de uso Iniciando a linha de comando./bin/voldemort-shell.sh test tcp://localhost: /11/2013

16 Exemplo de uso Operações simples Inserindo valor – put "nome" "Bruno" Recuperando valor: – get "nome" Excluindo valor: – delete "nome" 162/11/2013

17 Exemplo de uso Versionamento 172/11/2013

18 Exemplo de uso Localização da chave locate "bruno" 182/11/2013

19 Exemplo de uso Código Java - Conexão 192/11/2013 String bootstrapUrl = "tcp://localhost:6666"; StoreClientFactory factory = new SocketStoreClientFactory(new ClientConfig().setBootstrapUrls(bootstra pUrl)); // Cria um cliente para a store StoreClient client = factory.getStoreClient("my_store_name");

20 Exemplo de uso Inserindo e obtendo valores Versioned value = client.get("some_key"); value.setObject("some_value"); client.put("some_key", value); 202/11/2013

21 Cassandra Desenvolvido para o Facebook; Armazenamento de modelo de dados rico; Data replicada a múltiplos nós; Novos nós podem ser acrescentados sem influenciar nos dados existentes; Consistência eventual: Consistência eventual – Sem updates após um período, os updates de propagam nas réplicas. 212/11/2013

22 Cassandra Open source (Java); Facebook = 40 TB / 120 máquinas; Usa o conceito de super colunas; 222/11/2013 { // esta é uma super coluna nome: "homeAddress", // com uma lista infinita de colunas value: { // observe que a chave é o nome da coluna street: {name: "street", value: "1234 x street", timestamp: }, city: {name: "city", value: "san francisco", timestamp: }, zip: {name: "zip", value: "94107", timestamp: }, }

23 Instalação Downloa de versão para Linux em: – a/#download a/#download 232/11/2013

24 Exemplo de uso Iniciando um nó mkdir -p /var/log/cassandra touch /var/log/cassandra/system.log./bin/cassandra -f 242/11/2013

25 Exemplo de uso Iniciando a linha de comando./bin/cassandra-cli –host localhost –port /11/2013

26 Exemplo de uso Inserindo valores set Keyspace1.Standard1['bcp']['primeiro'] ='Bruno set Keyspace1.Standard1['bcp']['sobrenom e']='Bruno' 262/11/2013

27 Exemplo de uso Obtendo valores get Keyspace1.Standard1['bcp'] 272/11/2013

28 CouchDB Servidor de banco baseado em documentos; Acessível via API Rest; Schema-free; Distribuído; Open Source (Erlang); Views usando Map/Reduce. 282/11/2013

29 CouchDB Interface JavaScript; Ver testador online: – content/uploads/2009/04/icouch.html content/uploads/2009/04/icouch.html 292/11/2013

30 Documento CouchDB Campos nomeados 302/11/2013

31 Referências No to SQL? Anti-database... – cle/ /No_to_SQL_Anti_databa se_movement_gains_steam_ cle/ /No_to_SQL_Anti_databa se_movement_gains_steam_ Livro sobre CouchDB (no prelo): – Explorando o CouchDB: – br/library/os-couchdb/index.html br/library/os-couchdb/index.html 312/11/2013


Carregar ppt "Arquitetura Baseada em Serviços Web Services e BD e NoSQL 2º Semestre 2009 > PUCPR > Pós em BD Bruno C. de Paula."

Apresentações semelhantes


Anúncios Google