Big Data e Sistemas NoSQL
Big data e sistemas NoSQL são as tecnologias de gerenciamento de dados construídas para volume, velocidade e variedade com as quais os bancos de dados relacionais tinham dificuldades, trocando garantias relacionais estritas por escalabilidade horizontal, esquemas flexíveis e alta disponibilidade.
Definition
Sistemas de big data são plataformas de gerenciamento de dados projetadas para conjuntos de dados muito grandes, rápidos ou variados para bancos de dados tradicionais de nó único; sistemas NoSQL são armazenamentos não relacionais que adotam modelos de dados flexíveis e consistência relaxada para alcançar escalabilidade horizontal e disponibilidade.
Scope
Esta área abrange sistemas de dados projetados para escala massiva: armazenamentos NoSQL (chave-valor, documento, coluna larga e grafo) e seus modelos de dados flexíveis; estruturas de processamento paralelo de dados derivadas do MapReduce; as compensações de consistência-disponibilidade capturadas pelo teorema CAP e o espectro de modelos de consistência; e armazenamento de dados (data warehousing) e OLAP para análises em larga escala. Trata de como esses sistemas relaxam ou reorganizam as suposições relacionais para escala. Exclui os detalhes internos de commit distribuído e execução de consulta paralela, que são abordados na área de bancos de dados distribuídos e paralelos.
Sub-topics
Core questions
- Quais necessidades de escalabilidade e flexibilidade impulsionaram a mudança para além dos bancos de dados relacionais?
- Quais modelos de dados as principais categorias NoSQL fornecem?
- Como as estruturas de processamento paralelo de dados processam grandes conjuntos de dados em clusters?
- Quais compensações de consistência-disponibilidade o teorema CAP descreve?
- Como os data warehouses e o OLAP suportam consultas analíticas em larga escala?
Key concepts
- armazenamentos chave-valor, documento, coluna larga, grafo
- escalabilidade horizontal
- flexibilidade de esquema
- MapReduce e processamento paralelo de dados
- teorema CAP
- consistência eventual
- BASE versus ACID
- data warehousing e OLAP
Key theories
- Armazenamentos NoSQL escaláveis horizontalmente
- Os sistemas NoSQL abandonam o modelo relacional de nó único em favor de modelos chave-valor, documento, coluna larga ou grafo que fragmentam e replicam em clusters de commodities, priorizando a escalabilidade e a disponibilidade em detrimento de consultas ricas e consistência forte.
- Processamento paralelo de dados
- Estruturas que seguem o modelo MapReduce expressam computações em larga escala como fases paralelas de mapeamento e redução sobre dados particionados, ocultando a complexidade da distribuição, agendamento e tolerância a falhas do programador.
- Compensação CAP
- O teorema CAP afirma que um armazenamento de dados distribuído não pode garantir simultaneamente consistência, disponibilidade e tolerância a partição, forçando os projetistas a escolher, durante uma partição de rede, entre consistência e disponibilidade.
Clinical relevance
Sistemas de big data e NoSQL impulsionam a infraestrutura de dados da web moderna: armazenamentos chave-valor e de coluna larga suportam serviços de alto tráfego, estruturas de processamento paralelo de dados processam logs e fluxos de cliques em escala, e data warehouses servem análises de negócios, tornando esses sistemas centrais para a engenharia de dados e aplicações em larga escala.
History
Cargas de trabalho em escala de internet nos anos 2000 excederam o que os bancos de dados relacionais de nó único podiam suportar. O MapReduce do Google (2004/2008) e o ecossistema de código aberto Hadoop permitiram o processamento de dados em escala de cluster; o Dynamo da Amazon (2007) e o Bigtable do Google inspiraram uma onda de armazenamentos NoSQL; e o teorema CAP de Brewer enquadrou as compensações de consistência-disponibilidade que esses sistemas incorporam.
Debates
- Consistência forte versus eventual
- Os sistemas NoSQL frequentemente escolhem a disponibilidade e a consistência eventual para permanecerem responsivos sob partições, mas isso transfere o tratamento de conflitos para as aplicações; o campo debate quando a consistência eventual é aceitável versus quando sistemas mais recentes devem restaurar garantias mais fortes.
Key figures
- Jeffrey Dean
- Sanjay Ghemawat
- Eric Brewer
- Werner Vogels
Related topics
Seminal works
- dean2008
- decandia2007
- brewer2012
Frequently asked questions
- NoSQL significa que não há SQL de forma alguma?
- Não. NoSQL é geralmente lido como 'não apenas SQL'. Refere-se a armazenamentos de dados que não são construídos sobre o modelo relacional e não se centram no SQL, mas muitos sistemas NoSQL oferecem interfaces de consulta semelhantes ao SQL, e o termo abrange uma ampla família — bancos de dados chave-valor, documento, coluna larga e grafo — em vez de uma única tecnologia.
- Quando devo escolher um sistema NoSQL em vez de um banco de dados relacional?
- Os sistemas NoSQL são atraentes quando você precisa escalar horizontalmente em muitas máquinas, armazenar dados flexíveis ou em rápida evolução, ou maximizar a disponibilidade para padrões de acesso simples. Os bancos de dados relacionais permanecem preferíveis quando você precisa de consultas ricas, junções complexas e forte consistência transacional sobre dados estruturados.