Baixe o app para aproveitar ainda mais
Prévia do material em texto
* FUNDAMENTOS E PROJETOS DE BIG DATA * AULA 10 * Exercícios Recordar aula 9 Pergunta 1: Cite uma dificuldade em trabalhar com NoSQL: Ausência de ferramentas de alto nível. Muitas ferramentas de alto nível no mercado. Padrões nas formas dos bancos de dados. Segue as formas de ACID. Nenhuma das respostas acima. * Exercícios Recordar aula 9 Gabarito: (a) Pergunta 2: Quando utilizamos o banco de dados NoSQL? Quando temos grandes volumes de dados estruturados Quando temos dados fora de padrões. Quando existem as categorias ACID. Quando temos bancos relacionais. Nenhuma das respostas. * Exercícios Recordar aula 9 Gabarito: (b) Pergunta 3: Cite duas diferenças entre bancos de dados relacionais e os NoSQL: Desempenho e modelagem. SQL estendido e APIS. Escala e APIs. Desempenho e SQL estendido. Nenhuma das respostas. * Exercícios Recordar aula 9 Gabarito: ( c ) Pergunta 4: Qual dos itens abaixo se refere a diferenças de alto nível entre bancos relacionais e NoSQL. BDs NoSQL, as consultas não são estão focados na coleção de documentos. Banco de dados relacional não é indicado para aplicações transacionais. Banco de dados NoSQL trabalho com dados estruturados somente. BDs SQL são boa opção para o ambiente de consulta intensivo complexo, enquanto bds NoSQL não são boa opção para consultas complexas. Nenhuma das respostas. Gabarito: (d) * Exemplos de Bancos de Dados Relacionais NoSQL (cont.) 2) CouchDB É também uma base de dados NoSQL documento base. Ele armazena dados em forma de documentos JSON. A seguir estão alguns dos benefícios do CouchDB e pontos fortes: Esquema-less: Como membro da família NoSQL, ele também tem esquema dinâmico que torna mais flexível, tendo uma forma de documentos JSON para armazenar dados. * Exemplos de Bancos de Dados Relacionais NoSQL A seguir estão alguns dos benefícios do CouchDB e pontos fortes: (cont.) Consulta HTTP: Você pode acessar seus documentos do banco de dados usando o seu navegador web. Resolução de Conflitos: Tem detecção de conflitos automático que é útil, enquanto em um banco de dados distribuído. Replicação Fácil: Implementação de replicação é bastante para a frente. * Exemplos de Bancos de Dados Relacionais NoSQL 3) Redis Redis é um outro banco de dados Open Source NoSQL, que é usado principalmente por causa de sua alta velocidade. Ele é escrito em linguagem C ANSI. A seguir estão alguns dos benefícios Redis e pontos fortes: As estruturas de dados: Redis fornece estruturas de dados eficientes para uma extensão que às vezes é chamado de servidor de estrutura de dados. As chaves armazenadas no banco de dados pode ser hashes*, listas, cordas, ordenados ou conjuntos não ordenados. *Hash - um algoritmo que mapeia dados de comprimento variável para dados de comprimento fixo. * Exemplos de Bancos de Dados Relacionais NoSQL A seguir estão alguns dos benefícios Redis e pontos fortes: (cont.) Redis como cache: Você pode usar o Redis como um cache através da implementação de chaves com tempo limitado de vida para melhorar o desempenho. Muito rápido: É considerar como um dos servidores NoSQL mais rápido, uma vez que trabalha com o conjunto de dados na memória. * Por que esses tipos de Bancos de Dados possuem tanta escalabilidade? Muitos acham que esses bancos de dados escalam simplesmente por causa da ausência de um schema (schema free), logo não há verificação de integridade e de relacionamentos. ..........Mas seria só isso? O MySQL, nos seus primórdios, quando não fazia tais verificações, ainda assim não era rápido como esses novos competidores. ........Quais são então os segredos para tanta escalabilidade? * Por que esses tipos de Bancos de Dados possuem tanta escalabilidade? Todos estes novos bancos tem em comum que eles são key-value stores ou seja salvam, como o nome sugere, um conjunto de entradas formadas por uma chave associada a um valor e o valor poderia ser de qualquer tipo, um binário ou string que está sendo salvo de forma denormalizada (schema-free). .........Diferentemente dos bancos SQL não existe uma esquema forte. * Por que esses tipos de Bancos de Dados possuem tanta escalabilidade? Essa abordagem facilita a distribuição dos dados entre vários servidores onde cada servidor possui apenas uma fatia dos dados. O CouchDB é um dos mais famosos no time dos key-value stores. Ele usa documentos para definir uma estrutura no banco, armazenando uma chave associada ao um documento. Um documento é apresentado como JSON. * Por que esses tipos de Bancos de Dados possuem tanta escalabilidade? A ideia é não salvar os dados em linhas como estamos acostumados pelos bancos relacionais. Os dados serão salvos através de colunas. E isso altera alguma coisa? .......Para o desenvolvedor que vai utilizar o banco de dados, a ideia é que isso seja transparente, mas para quem desenvolveu o banco, há enormes melhorias. * Por que esses tipos de Bancos de Dados possuem tanta escalabilidade? Usando colunas, podemos empacotar os dados melhor já que os dados semelhantes, de mesmo formato, estão próximos um do outro. Gravando dados empacotados em BDs, traz grandes vantagens, porque podemos recuperar e armanezar mais informações em menos tempo. * Por que esses tipos de Bancos de Dados possuem tanta escalabilidade? Com colunas também podemos aplicar projeções sobre os dados mais fácil. A segunda vantagem é importante principalmente para sistemas OLAP (Online Analytic Process) que usam esse tipo de pesquisas separadamente. O banco fica com certeza mais simples, escalável rápido, mas perdemos as conhecidas garantias dos bancos relacionais. * Por que esses tipos de Bancos de Dados possuem tanta escalabilidade? Como toda decisão arquitetural, escolher por bancos de dados não relacionais apresenta um trade off: ACID ou BASE ou alguma coisa no meio. Vale a pena? Cada caso deve ser estudado com cuidado. * Por que esses tipos de Bancos de Dados possuem tanta escalabilidade? ...... Algumas aplicações usam bancos de dados não relacionais para uma leitura e escrita temporária, atualizando um banco relacional de tempos em tempos, tirando vantagem das duas estratégias. * Análise Comparativa entre BD Relacional e NoSQL Relacional NoSQL Escalonamento Possível, mas complexo. Devido à natureza estruturada do modelo, a adição de forma dinâmica e transparente de novos nós no grid não é realizada de modo natural. Uma das principais vantagens desse modelo. Por não possuir nenhum tipo de esquema pré-definido, o modelo possui maior flexibilidade o que favorece a inclusão transparente de outros elementos. * Análise Comparativa entre BD Relacional e NoSQL Relacional NoSQL Consistência Ponto mais forte do modelo relacional. As regras de consistência presentes propiciam uma maior grau de rigor quanto à consistência das informações. Realizada de modo eventual no modelo: só garante que, se nenhuma atualização for realizada sobre o item de dados, todos os acessos a esse item devolverão o último valor atualizado. * Análise Comparativa entre BD Relacional e NoSQL Relacional NoSQL Disponibilidade Dada a dificuldade de se conseguir trabalhar de forma eficiente com a distribuição dos dados, esse modelo pode não suportar a demanda muito grande deinformações do banco. Outro fator fundamental do sucesso desse modelo. O alto grau de distribuição dos dados propicia que um maior número de solicitações aos dados seja atendida por parte do sistema e que o sistema fique menos tempo não disponível. * Conclusão da utilização destes BDs A decisão de se realizar uma mudança dessa natureza optar por um abordagem NoSQL em contraste com uma linguagem de consulta, como é o caso do SQL para os SGBDs relacionais. Não existe, em qualquer abordagem NoSQL, nada que se aproxime da simplicidade e expressividade oferecida pelo SQL. Adicionalmente, perde-se toda a funcionalidade oferecida pela linguagem, tais como funções, rotinas, etc. Além disso, deixa-se de utilizar a mais simples restrição de integridade sobre o banco, o que pode tornar a aplicação mais pesada. * Conclusão da utilização destes BDs Adicionalmente, deve-se ter em mente que a escalabilidade em alto grau faz-se necessária apenas em bancos de grande porte, nos quais a alta disponibilidade é imprescindível. Utilizar uma solução NoSQL para bancos de dados nos quais a disponibilidade não seja um fator imprescindível ainda é uma abordagem discutível. * Conclusão da utilização destes BDs Raízes Open Source - Muitos bancos de dados NoSQL tem raízes na comunidade open source. Talvez isso tenha sido fundamental para o rápido crescimento de uso e popularidade. Nota-se que as companhias que oferecem versões comerciais de bancos NoSQL com uma forte estrutura de suporte e serviços, estão ao mesmo tempo participando direta ou indiretamente de comunidades de bancos de dados NoSQL open source. * Conclusão da utilização destes BDs Baixo Custo Operacional - Devido ao peso do open source no NoSQL, o custo para iniciar a utilização desses bancos de dados também se torna muito baixo ou zero. É comum ouvir dizerem que a transição relacional -> NoSQL diminuiu muito os custos enquanto obteve um desempenho melhor ou igual ao anterior. Grandes bancos de dados relacionais requerem computadores ou mainframes caros. Com o NoSQL, esse custo também diminui, pois este foi desenvolvido para trabalhar em ambientes distribuídos. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Compartilhar