Prévia do material em texto
Frameworks que utilizam sharding como forma de distribuição Apresentação Ao lidar com Big Data, é preciso sempre estar atento à capacidade do banco de dados com que se está trabalhando. Com o aumento de demandas, torna-se importante aumentar a capacidade computacional também por meio do escalonamento, que pode ser realizado vertical ou horizontalmente. Uma forma de realizar a escalabilidade horizontal é a partir da fragmentação de dados, ou, em inglês, sharding. Este é um conceito antigo e bem conhecido dos sistemas de bancos de dados que não só aumenta a capacidade do sistema em nível de armazenamento como também está envolvido na sua velocidade de processamento e tolerância a falhas. Nesta Unidade de Aprendizagem, você vai conhecer a arquitetura dos principais frameworks que utilizam sharding e os principais conceitos que permeiam essa parte da distribuição de dados em um banco, com ênfase nos bancos de dados Apache Cassandra e MongoDB. Bons estudos. Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados: Descrever a arquitetura dos frameworks que utilizam sharding.• Definir como funciona o sharding no Apache Cassandra.• Ilustrar como funciona o sharding no MongoDB.• Infográfico Apache Cassandra é um sistema de banco de dados muito popular que tem como características marcantes a descentralização, a tolerância a falhas e a alta escalabilidade. Uma das formas de garantir a escalabilidade é por meio do sharding. Veja, no Infográfico a seguir, uma explicação resumida sobre a escalabilidade. Conteúdo do Livro Um bom framework de armazenamento de dados para Big Data precisa cumprir alguns requisitos, como tolerância a falhas, alta disponibilidade e escalabilidade. Em algum nível, a maioria dos bancos é escalonável, mas o diferencial é até onde essa capacidade vai. Alguns deles permitem o acréscimo de máquinas para se tornar mais robusto, enquanto outros promovem também o particionamento de dados a fim de aumentar a sua capacidade. Este último tipo tem como vantagem uma escalabilidade quase infinita com menor custo, embora seja mais complexo que o primeiro. No capítulo Frameworks que utilizam sharding como forma de distribuição, da obra Framework de Big Data, você vai conhecer a arquitetura do particionamento de dados em bancos em geral e também como isso acontece mais detalhadamente no Apache Cassandra e no MongoDB. Boa leitura. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://statics-marketplace.plataforma.grupoa.education/sagah/dd318d87-77b8-4e02-b59c-deaa7ba78bc0/3caa816f-5e6c-4c47-988e-1617d9d6bcc1.pdf Dica do Professor No mundo digital globalizado, alguns nichos de negócios requerem bancos de dados compartilhados e colaborativos a fim de registrar transações em todo o planeta. Para suprir essa demanda, surgiu a tecnologia de blockchain, que é muito utilizada principalmente no mercado das criptomoedas. Confira, na Dica do Professor, como o sharding pode estar envolvido e qual a sua importância para a manutenção de um sistema desse tipo. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/0119f6180c5d4c37e034fbe6ee79fdb1 Exercícios 1) O particionamento horizontal de um banco de dados (ou sharding) é realizado utilizando estruturas que permitem a identificação de cada partição. Quanto a estas, as três mais comuns são: A) chave, hash e hash consistente. B) hash, zona e intervalo. C) hash, intervalo e diretório. D) chave, intervalo e faixas. E) intervalo, zona e localização. 2) O particionamento de dados está intimamente ligado à replicação. Quantos a esses dois processos, é verdade que: A) apenas o conceito está associado, mas na prática não há ligação entre eles. B) apesar de terem nomes distintos, significam a mesma coisa. C) se a replicação não ocorrer, não há nenhum prejuízo para o sistema. D) a integração do sharding com a replicação promove a alta disponibilidade. E) a utilização do sharding torna o processo de replicação desnecessário. 3) O Apache Cassandra utiliza uma estrutura de hash consistente para particionar os dados. Quanto a essa estrutura, escolha a alternativa correta: A) É organizado em uma estrutura visualizada como um cubo. B) Acaba gerando alta movimentação de dados. C) É organizado em uma estrutura visualizada como uma estrela. D) No particionamento do Cassandra, o número de tokens é limitado a 100. E) É organizado em uma estrutura visualizada como um anel. 4) Para realizar o sharding, o MongoDB necessita de uma estrutura mínima com três componentes: shards, roteadores de consulta e servidores de configuração. Quanto a esses componentes, é verdade que: A) os roteadores de consulta são a interface entre o aplicativo cliente e os shards propriamente ditos. B) os roteadores de consulta utilizam informações fornecidas pelos próprios shards. C) os servidores de configuração armazenam os dados e metadados de forma conjunta. D) os shards armazenam metadados dos dados que estão nos servidores. E) os shards armazenam unicamente o dado bruto não particionado. 5) Os roteadores de consulta do MongoDB são chamados de mongos. Quanto aos mongos, é correto afirmar: A) Cada shard tem um mongo específico, não sendo possível buscar dados em diferentes shards a partir da mesma consulta. B) É impossível saber a localização de um dado por meio dos metadados de cada partição. C) A cada consulta é necessário que os mongos acessem os metadados, mesmo que essa busca seja repetida. D) Os mongos apenas realizam as consultas do aplicativo cliente no banco de dados. E) Se o resultado da consulta estiver em diferentes shards, os resultados aparecem de forma separada. Na prática Você certamente já ouviu falar da eBay, ou ao menos viu o seu logo por aí, seja no próprio site ou em filmes de Hollywood. Esta é uma das pioneiras e que até hoje se mantém como uma das maiores empresas de comércio eletrônico do mundo. Todo esse sucesso se deve às centenas de milhões de usuários, que, consequentemente, geram grande tráfego de dados em nível de petabytes. Para atender a uma demanda global tão grande, é necessário um sistema robusto e altamente escalável. Neste Na Prática, o sharding será apresentado como uma solução para a escalabilidade necessária para o funcionamento da eBay por meio do MongoDB. Conteúdo interativo disponível na plataforma de ensino! Saiba mais Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor: Cassandra – um sistema de armazenamento NoSQL altamente escalável O Apache Cassandra é um sistema de armazenamento distribuído NoSQL muito utilizado por empresas mundo afora. Confira, neste artigo, uma breve explicação da sua arquitetura e conheça alguns estudos de caso em famosas redes sociais. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. Diferenças entre sharding e replicação Nesta Unidade, você aprendeu os conceitos de sharding e replicação e algumas características de cada um deles. Confira, neste vídeo, quais são as principais diferenças entre eles e também como se diferenciam do clustering. Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar. Sistemas de Gerenciamento de Bancos de Dados (3a Edição) Nesta unidade, você aprendeu que o sharding pode ser realizado a partir da estrutura de hash. Veja, no livro Sistemas de gerenciamento de banco de dados-3, mais informações sobre índices baseados em hash, seus tipos e utilizações. Conteúdo interativo disponível na plataforma de ensino! https://dcomp.ufscar.br/verdi/topicosCloud/Cassandra.pdf https://www.youtube.com/embed/wgNVF9dCONE