Course
Bancos de dados NoSQL: O que todo cientista de dados precisa saber
Exploramos uma visão geral abrangente dos prós e contras dos bancos de dados NoSQL para cientistas de dados.
Ciência de dados e bancos de dados NoSQL
Ser um cientista de dados não se trata apenas de criar modelos de aprendizado de máquina, mas também de ser capaz de processar, analisar e comunicar melhor seus resultados a partir de dados em diferentes formatos.
Os bancos de dados SQL tradicionais têm sido usados como o único tipo de banco de dados há anos. No entanto, devido à extrema popularidade da Internet em meados da década de 1990 e à transformação digital, um novo tipo de dados tornou-se proeminente: Bancos de dados NoSQL. Eles foram introduzidos em resposta aos pontos fracos dos bancos de dados SQL tradicionais.
Os bancos de dados NoSQL podem ser usados, por exemplo, por cientistas de dados e engenheiros de aprendizado de máquina para armazenar dados, metadados de modelos, recursos e parâmetros de operações. Por outro lado, os engenheiros de dados podem aproveitá-los para armazenar e recuperar dados limpos.
Neste blog conceitual (não é necessário programar), vamos primeiro desenvolver seu conhecimento sobre os bancos de dados NoSQL antes de explorar a importância do NoSQL. Também compararemos os bancos de dados SQL e NoSQL e analisaremos os usos e as categorias do último. Por fim, examinaremos os bancos de dados NoSQL mais populares para cientistas de dados.
O que são bancos de dados NoSQL?
NoSQL significa Not Only SQLo que significa que os bancos de dados NoSQL têm a particularidade de não serem relacionais, pois podem armazenar dados em um formato não estruturado. O gráfico a seguir destaca os cinco principais recursos dos bancos de dados NoSQL.
Por que os bancos de dados NoSQL são importantes?
Os bancos de dados NoSQL se tornaram populares no setor devido aos seguintes benefícios:
- Dados multimodo: Os bancos de dados NoSQL oferecem mais flexibilidade do que os bancos de dados SQL tradicionais porque podem armazenar dados estruturados (por exemplo, dados capturados de sensores), não estruturados (imagens, vídeos etc.) e semiestruturados (XML, JSON etc.).
- Fácil escalabilidade: isso é simplificado por causa de suas arquiteturas ponto a ponto, o que significa que várias máquinas podem ser adicionadas à arquitetura.
- Disponibilidade global: permite acessar os mesmos dados simultaneamente por meio de diferentes máquinas de diferentes zonas geográficas, pois o banco de dados é compartilhado globalmente.
- Flexibilidade: Os bancos de dados NoSQL podem se adaptar rapidamente às mudanças de requisitos com atualizações frequentes e novos recursos.
Bancos de dados NoSQL vs. Bancos de dados SQL
Bancos de dados SQL |
Bancos de dados NoSQL |
|
Idioma |
Os bancos de dados SQL usam linguagens de consulta estruturadas para realizar operações, exigindo o uso de esquemas predefinidos para interagir melhor com os dados. |
Por outro lado, os bancos de dados NoSQL usam um esquema dinâmico para consultar dados. Além disso, alguns bancos de dados NoSQL usam uma sintaxe semelhante à do SQL para a manipulação de documentos. |
Data Schema |
Os bancos de dados SQL têm um formato predefinido e fixo, que não pode ser alterado para novos dados. |
Os bancos de dados NoSQL são mais flexíveis. Essa flexibilidade significa que os registros nos bancos de dados podem ser criados sem ter uma estrutura predefinida, e cada registro tem sua própria estrutura. |
Escalabilidade |
Os bancos de dados SQL são escalonáveis apenas verticalmente, o que significa que uma única máquina precisa aumentar a CPU, a RAM e o SSD em um determinado nível para atender à demanda. |
Os bancos de dados NoSQL são escalonáveis horizontalmente, o que significa que máquinas adicionais são adicionadas à infraestrutura existente para atender à demanda de armazenamento. |
Suporte a Big Data |
O escalonamento vertical dificulta o armazenamento de dados muito grandes (petabytes) pelos bancos de dados SQL. |
O dimensionamento horizontal e o esquema de dados dinâmico tornam o NoSQL adequado para big data. Além disso, os bancos de dados NoSQL foram desenvolvidos pelas principais empresas de Internet (Amazon, Google, Yahoo, etc.) para enfrentar os desafios do rápido aumento da quantidade de dados. |
Propriedades |
Os bancos de dados SQL usam a propriedade ACID (Atomicidade, Consistência, Isolamento, Durabilidade). |
Os bancos de dados NoSQL, por outro lado, usam a propriedade CAP (Consistência, Disponibilidade, Tolerância de Partição). |
Quando os bancos de dados NoSQL devem ser usados?
Nesse ambiente competitivo e de rápido crescimento, os setores precisam coletar o máximo de dados possível para satisfazer suas metas comerciais. Coletar dados é uma coisa, mas armazená-los na infraestrutura correta é outro desafio. A dificuldade surge porque os dados podem ser de diferentes tipos, como imagens, vídeos, textos e sons. O uso de bancos de dados relacionais para armazenar esses diferentes tipos de dados nem sempre é uma medida inteligente. No entanto, a questão permanece:
Quando usar NoSQL em vez de SQL?
Você deve considerar o uso do NoSQL quando estiver no cenário a seguir:
- Mudança constante de dados: quando você não sabe como seu sistema ou aplicativos crescerão no futuro, o que significa que você pode querer adicionar novos tipos de dados, novas funções etc.
- Muitos dados: quando sua empresa está lidando com dados enormes que podem crescer com o tempo.
- Sem consistência: quando a consistência dos dados e 100% de integridade não são sua prioridade. Por exemplo, quando você desenvolve uma plataforma de mídia social para a sua empresa, talvez não seja um problema que todos os funcionários vejam suas publicações ao mesmo tempo.
- Escalabilidade e custo: Os bancos de dados NoSQL permitem maior flexibilidade e podem controlar os custos à medida que suas necessidades de dados mudam.
4 tipos principais de bancos de dados NoSQL
Os bancos de dados NoSQL são divididos em quatro categorias principais. Cada uma delas tem sua especificidade, portanto, você deve escolher a que melhor se adapta ao seu caso de uso: Abaixo, destacamos os principais exemplos de bancos de dados NoSQL. Esta seção tem como objetivo abordar cada um desses bancos de dados, fornecendo sua função e uma lista não exaustiva de suas vantagens e limitações, bem como seus casos de uso.
1. Bancos de dados de documentos
Esse tipo de banco de dados foi projetado para armazenar e consultar documentos JSON, XML, BSON, etc. Cada documento é uma linha ou um registro no banco de dados e está no formato de valor-chave. Um documento armazena informações sobre um objeto e seus dados relacionados. Por exemplo, o banco de dados a seguir contém três registros, cada um com informações sobre um aluno. Para o primeiro documento, firstname é uma chave e Franck é seu valor.
Vantagens do banco de dados de documentos
- Sem esquema: não há limitações em termos de formato e estrutura do armazenamento de dados. Isso é benéfico, especialmente quando há uma transformação contínua no banco de dados.
- Fácil de atualizar: uma nova informação pode ser adicionada ou excluída sem alterar o restante dos campos existentes desse documento específico.
- Desempenho aprimorado: todas as informações sobre um documento podem ser encontradas exatamente no mesmo documento. Não há necessidade de consultar informações externas, o que pode não ser o caso de um banco de dados relacional em que o usuário pode ter de solicitar outras tabelas.
Limitações do banco de dados de documentos
- Problemas de verificação de consistência: porque os documentos não precisam necessariamente ter um relacionamento entre si, e dois documentos podem ter campos diferentes.
- Problemas de atomicidade: Se tivermos que alterar duas coleções de documentos, precisaremos executar uma consulta separada para cada documento.
Quando usar bancos de dados de documentos
- Recomendado quando o esquema de dados está sujeito a alterações constantes no futuro.
Aplicativos de banco de dados de documentos
- Devido à sua flexibilidade, os bancos de dados de documentos podem ser práticos para perfis de usuários on-line, em que diferentes usuários podem ter diferentes tipos de informações. Nesse caso, o perfil de cada usuário é armazenado somente por meio de atributos específicos a ele.
- Eles podem ser usados para gerenciamento de conteúdo, o que exige o armazenamento eficaz de dados de diversas fontes. Essas informações podem ser usadas para criar e incorporar novos tipos de conteúdo.
2. Bancos de dados de valores-chave
Esses são os tipos mais simples de bancos de dados NoSQL. Cada item é armazenado no banco de dados em um par chave-valor. Podemos pensar nisso como uma tabela com exatamente duas colunas. A primeira coluna contém uma chave exclusiva. A segunda coluna é o valor de cada chave. Os valores podem estar em diferentes tipos de dados, como inteiro, string e float, ou em tipos de dados mais complexos, como imagem e documento.
O exemplo a seguir ilustra um banco de dados de valor-chave que contém informações sobre clientes, em que a chave é o número de telefone e o valor é a compra mensal.
Vantagens do banco de dados de valores-chave
- Simplicidade: a estrutura de valores-chave é simples. A ausência de tipo de dados simplifica o uso.
- Velocidade: o formato de dados simples torna a leitura e escrita operações mais rápidas.
Limitações do banco de dados de valores-chave
- Eles não podem realizar nenhuma filtragem na coluna de valor porque o valor retornado é toda a informação armazenada no campo de valor.
- Ele é otimizado apenas por ter uma única chave e um único valor. O armazenamento de vários valores exigiria um analisador.
- O valor é atualizado somente como um todo, o que requer a obtenção dos dados completos, a execução do processamento necessário nesses dados e, finalmente, o armazenamento de volta dos dados completos. Isso pode criar um problema de desempenho quando o processamento exigir muito tempo.
Quando usar bancos de dados de valores-chave
- Adaptado para aplicativos baseados em consultas simples baseadas em chaves.
- Usado para aplicativos simples que precisam armazenar temporariamente objetos simples, como o cache.
- Eles também podem ser usados quando há necessidade de acesso a dados em tempo real.
Aplicativos
- Eles são melhores para aplicativos simples que precisam armazenar temporariamente objetos simples, como o cache.
3. Bancos de dados de colunas largas
Como o nome sugere, os bancos de dados orientados por coluna são usados para armazenar dados como uma coleção de colunas, em que cada coluna é tratada separadamente, e a lógica de implementação é baseada no documento Google Big Table. Eles são usados principalmente para cargas de trabalho analíticas, como business intelligence, gerenciamento de data warehouse e gerenciamento de relacionamento com o cliente.
Por exemplo, podemos obter rapidamente a idade média e o preço médio, respectivamente, de clientes e produtos com a função de agregação AVG em cada coluna.
4. Bancos de dados de grafos/nós
Os bancos de dados de gráficos são usados para armazenar, mapear e pesquisar relacionamentos entre nós por meio de bordas. Um nó representa um elemento de dados, também chamado de objeto ou entidade. Cada nó tem uma borda de entrada ou de saída. Uma borda representa a relação entre dois nós. Essas bordas contêm algumas propriedades correspondentes aos nós que elas conectam.
"Zoumana estuda na Texas Tech University. Ele gosta de correr no parque dentro da universidade"
Vantagens do banco de dados de grafo/nó
- Eles são uma estrutura ágil e flexível.
- A relação entre os nós no banco de dados é legível e explícita, portanto, fácil de entender.
Limitações do banco de dados de gráfico/nó
- Não existe uma linguagem de consulta padronizada porque cada linguagem depende da plataforma.
- O motivo anterior faz com que seja difícil encontrar suporte on-line ao enfrentar um problema.
Quando usar bancos de dados de gráfico/nó
- Eles podem ser usados quando você precisa criar relacionamentos entre elementos de dados e ser capaz de recuperar rapidamente esses relacionamentos.
Aplicativos
- Eles podem ser usados para realizar uma sofisticada detecção de fraudes em transações financeiras em tempo real.
- Eles podem ser usados para minerar dados de mídias sociais. Por exemplo, o LinkedIn usa um banco de dados gráfico para identificar quais usuários seguem uns aos outros e a relação entre esses usuários e seus conhecimentos (ML Engineer).
- Mapeamento de rede pode ser uma ótima opção para representação em forma de gráfico, uma vez que essas redes mapeiam as relações entre o hardware e os serviços aos quais dão suporte.
7 melhores bancos de dados NoSQL para ciência de dados
Agora que você já conhece melhor os bancos de dados NoSQL, vamos dar uma olhada em uma lista de bancos de dados NoSQL que são populares para projetos de ciência de dados. Esta análise se concentra apenas em bancos de dados NoSQL de código aberto.
1. MongoDB
O MongoDB é um banco de dados de código aberto orientado a documentos que armazena dados no formato JSON. É o banco de dados mais comumente usado e foi projetado para alta disponibilidade e escalabilidade, oferecendo compartilhamento automático e replicação integrada. Nosso curso Introdução ao MongoDB aborda o uso do MongoDB e do Python. Ele ajuda a adquirir as habilidades necessárias para manipular e analisar dados estruturados de forma flexível com o MongoDB. Uber, LaunchDarkl, Delivery Hero e 4300 empresas usam o MongoDB em sua pilha de tecnologia.
2. Cassandra
O Cassandra também é um banco de dados de colunas grandes de código aberto. Ele pode distribuir seus dados em várias máquinas e reparticioná-los automaticamente à medida que você adiciona novas máquinas à sua infraestrutura. Uber, Facebook, Netflix e 506 outras empresas o utilizam em sua pilha de tecnologia.
3. Elasticsearch
Semelhante ao MongoDB, o Elasticsearch também é um banco de dados orientado a documentos e de código aberto. É uma ferramenta de pesquisa e análise líder mundial com foco em escalabilidade e velocidade. Uber, Shopify, Udemy e cerca de 3760 outras empresas o utilizam em sua pilha.
4. Neo4J
O Neo4J é um banco de dados orientado a gráficos de código aberto. Ele é usado principalmente para lidar com dados crescentes com relacionamentos. Cerca de 220 empresas supostamente o utilizam em sua pilha de tecnologia.
5. HBase
Esse é um banco de dados distribuído e orientado por colunas. Ele também oferece os mesmos recursos do BigTable do Google sobre o Apache Hadoop. Segundo informações, 81 empresas usam o HBase em sua pilha de tecnologia.
6. CouchDB
O CouchDB também é um banco de dados de código aberto orientado a documentos que coleta e armazena dados em um formato JSON. Cerca de 84 empresas o utilizam em sua pilha de tecnologia.
7. OrientDB
Também um banco de dados de código aberto, o OrientDB é um banco de dados multimodelo que suporta modelos de gráficos, documentos, valores-chave e objetos. Apenas 13 empresas o utilizam em sua pilha de tecnologia.
Conclusão
Este blog abordou os principais aspectos dos bancos de dados NoSQL e como eles podem ser benéficos para seus projetos de ciência de dados nos ambientes de rápido crescimento atuais. Você tem todas as ferramentas à sua disposição para escolher a fim de implementar o banco de dados certo para o seu caso de uso. Se ainda estiver hesitante em usá-los, agora é a hora de você e seus colegas de equipe aproveitarem o poder desses bancos de dados.
Para saber mais, nosso curso sobre conceitos de NoSQL fortalecerá seu conhecimento sobre os quatro principais bancos de dados que abordamos anteriormente.
Saiba mais sobre a ciência de dados
Course
Data Science for Business
Course
Introduction to Functions in Python
blog
As 10 principais ferramentas de ciência de dados a serem usadas em 2024
blog
O que é SQL? - A linguagem essencial para o gerenciamento de bancos de dados
Summer Worsley
16 min
blog
Uma introdução ao DuckDB: O que é e por que você deve usá-lo?
blog
Para que o SQL é usado? 7 Principais usos do SQL
blog
As 15 principais habilidades do cientista de dados para 2024
blog