Sistemas NoSQL Valor Chave- Luiz André de Jesus Silva Motivação A cada instante, uma quantidade imensa de dado é gerada › Dados não-estruturados ou semi-estruturados Requisitos diferenciados das aplicações › Escalabilidade sob demanda › Elevado grau de disponibilidade Modelo Relacional é antigo › Fixo › Estruturado previamente Resultado: modelo relacional já não satisfazia as necessidades das aplicações Bancos de Dados NoSQL NoSQL -> Not Only SQL Criados para atender ao gerenciamento de grandes volumes de dados Focados no desempenho › Mesmo que abrindo mão da consistência Características dos Bancos de Dados NoSQL: Escalabilidade Horizontal Crescimento no volume dos dados não acarreta em maior capacidade de processamento e e armazenamento das máquinas Ocorre o aumento do número de máquinas disponíveis Possibilita mais unidades de processamento Características dos Bancos de Dados NoSQL: Ausência de Esquema ou Esquema Flexível Facilita a escalabilidade Aumenta a disponibilidade Porém não existe garantia de integridade. Ainda mais marcante nos BDs NoSQL do tipo chave-valor. Características dos Bancos de Dados NoSQL: Suporte Nativo a Replicação Diminui o tempo gasto para recuperar informações › Os dados estão em vários lugares Modelo Master-Slave › Cada escrita resulta em N escritas, N é o número de escravos › Escrita feita no nó mestre e replicada em cada nó escravo › Leitura mais rápida, mas escrita é um gargalo para grandes volumes de dados Modelo Multi-Master › Existem vários nós mestres, diminuindo o gargalo ou Características dos Bancos de Dados NoSQL: Facilidade de Acesso aos Dados O foco não é como dado é armazenado, mas sim como ele pode ser recuperado eficientemente Através das APIs desenvolvidas para facilitar o acesso as informações. Qualquer aplicação pode utilizar os dados de forma rápida e eficiente Características dos Bancos de Dados NoSQL: Consistência Eventual Em prol do desempenho, a consistência entre os diversos pontos de distribuição de dados nem sempre é mantida Baseada no Teorema CAP › Consistência, disponibilidade e tolerância a partição › A cada momento, só é possível garantir duas das três Geralmente a consistência é deixada de lado O sistema deve ser projetado para tolerar inconsistências temporárias para manter a disponibilidade Bancos de Dados NoSQL Modelo Chave-Valor Bancos de Dados NoSQL Modelo Chave-Valor Estrutura bastante simples Dentre os tipos de BDs NoSQL, é o que mais aguenta carga de dados Dados armazenados em uma tabela hash gigante Um chave representa uma lista de valores de atributos Bancos de Dados NoSQL Modelo Chave-Valor Modelo de fácil implementação Dados são rapidamente acessados pela chave. Duas operações para manipulação: › Get e Set Porém não permite consultas mais complexas (ainda) Amazon DynamoDB Amazon DynamoDB Banco de Dados as a Service (DaaS) › Oferecido como serviço, gerenciado pela Amazon Sem overhead de administração, sem complexidade operacional, facilmente escalável Centenas de milhares de requisições por segundo › Latência em milisegundos › Armazena as informações em discos SSD Alta disponibilidade, gratuito até certo limite Fácil de criar. Fácil de ajustar. Insira o logotipo aqui Insira o logotipo aqui Insira o logotipo aqui Criação de tabela através da API Amazon DynamoDB Amazon DynamoDB Podemos usar o hadoop para consultas mais complexas Conclusão Bibliografia http://www.addlabs.uff.br/sbsc_site/SBSC20 11_NoSQL.pdf http://www.aerospike.com/what-is-a-nosqlkey-value-store/ http://nosql-database.org/ http://awshub.com.br/resources/amazondynamodb-uma-introducao/ Dúvidas