Prof. Daniela Barreiro Claro
Volume de dados muito grande Principais problemas em relação aos SGBD Relacionais é conciliar o tipo de modelo com a demanda da escalabilidade. Exemplo -Facebook Um crescimento do número de usuários -> queda de desempenho Daí seria necessário fazer um upgrade no servidor ou aumentar o número de servidores Se o número de usuários continuasse a crescer, estas soluções ainda não seriam suficientes, pois o problema passaria a ser no acesso a estas bases de dados
Solução: Escalabilidade Vertical Aumentar o poder do servidor, ou seja, aumentar memoria, processador e armazenamento. Outra solução: Escalabilidade Horizontal Aumentar o número de maquinas Na medida que estas soluções vão sendo necessárias, uma série de configurações e alterações na aplicação deve ser efetivada para que tudo funcione na nova arquitetura distribuída
Necessidade de flexibilizar os bancos de dados relacionais NOSQL - Not Only SQL Foi proposto inicialmente em 1998 Varios investimentos de grandes empresas BigTable Google investe desde 2004 Baseado na filosofia de alto desempenho, escalabilidade e disponibilidade Cassandra desenvolvido pelo Facebook; em 2010 passou a ser utilizado pelo Twitter Dynamo - Amazon
Escalabilidade Horizontal BDR não escalam facilmente No NOSQL há ausencia de bloqueios, o que dá maior facilidade e eficiencia (nao é afetada pela aumento da concorrencia) Ausencia de Esquema (schema-free) Ausencia parcial ou total de esquema Isso facilita a alta escalabilidade e alta disponibilidade Mas não ha garantia na integridade dos dados Suporte nativo a replicação Com isso o tempo gasto para recuperar informações é reduzido
Consistencia Eventual Nem sempre a consistencia de dados é mantida Tem embasamento no teorema CAP (Consistency, Availability e Partition tolerance) Em um dado momento só é possível garantir duas destas propriedades Nestes casos, a consistencia ACID não é respeitada simultaneamente Conjunto de Projetos denominado BASE
Map/reduce Permite a manipulação de enormes volumes de dados ao longo de nós de uma rede Fase map problemas são particionados em pequenos problemas distribuidos ao longo da rede Fase Reduce problemas sao resolvidos em cada nó filho e o resultado é passado para o pai até chegar a raiz do problema. MVCC Multiversion concurrency control Oferece suporte as transacoes paralelas Nao faz uso de locks para controle de concorrencia Transacoes de escrita e leitura sao feitas simultaneamente
Chave-valor BD Orientado a Documentos Orientado a colunas Orientado a grafos
Chave única e um indicador de determinado dado Este modelo é caracterizado pela sua facilidade ao ser implementado Permite que os dados sejam acessados rapidamente através da chave Aumenta também a disponibilidade do acesso aos dados Exemplo: Dynamo, utilizado pela Amazon
Armazena coleções e documentos Há um agrupamento de documentos onde cada um destes documentos tem um conjunto de campos É possivel que haja atualizacão no documento com a adiçao de novos campos. Exemplos: CouchDB, utiliza o formato JSON MongoDB utiliza C++
Maior complexidade que valor-chave Criado para processar uma grande quantidade de dados distribuídos em diversas máquinas Os dados são indexados por uma tripla: coluna, linha e timestamp As colunas são organizadas por familias de colunas Exemplo BigTable, utilizado pelo Google Cassandra, utilizado pelo Facebook
Este modelo possui três componentes básicos Nós (vértices do grafo), relacionamentos(arestas) e as propriedades É visto como um multigrafo rotulado e direcionado Muito util para consultas demasiadamente complexas Possui bom desempenho Exemplo: Neo4J
Esquemas que podem escalar com altos volumes de transações migra os dados funcionais em diferentes servidores de banco de dados Isso requer que as restrições saiam da base e vão para as aplicações Erick Brewer criou a prerrogativa que: Aplicacoes web não podem garantir todas as três propriedades de uma vez Consistency Availability Partition Tolerance
Consistencia Cliente percebe que um conjunto de operaçoes ocorreu de uma só vez Availability Toda operacao deve terminar em uma resposta esperada Partition Tolerance Operacoes vao completar, mesmo se componentes individuais estejam indisponíveis Uma aplicacao Web pode suportar no maximo 2 destas propriedades
Soluções que combinam o principio do teorema CAP Hbase, HyperTable, Big Table Consistencia e Parcialmente Toleravel Cassandra, Dynamo e Voldemort Availability (Disponibilidade) e Parcialmente Toleravel
Basically Available, Soft state, Eventually consistency Enquanto que ACID é pessimista e força uma consistencia no final de cada operaçao, BASE é otimista e aceita que o BD fique em um estado de consistencia frouxo. Isso permite que se obtenha niveis de escalabilidade não obtidos em ACID A disponibilidade de BASE é obtida suportando falhas parciais sem falhar o sistema todo
É um modelo para processar e gerar grandes conjuntos de dados Funçao MAP Processa o par key/value para gerar o conjunto de key/value intermediario Funcao REDUCE Juncao de todos os valores intermediários associados a mesma chave intermediária Hadoop É uma implementacao do MAP/Reduce open source
Análise do posicionamento das turbinas eólicas Turbinas colocadas em lugar errado, causa muitos prejuizos Deve considerar temperatura, pressao, humidade, precipitacao, direcao do vento, velocidade do vento Media de 15 dias para analise de viabilidade Atualmente, media de 15 minutos apos uma solucao com Big Data