Índice:
- Não é necessário escrever SQL
- Não precisa passar meses projetando o esquema
- Menos código de transformação de dados (ETL)
- Mais fácil de manter o código
- Execute o código próximo dos dados para o melhor desempenho
- Muitas opções de código aberto
- Fácil de dimensionar
- Modelo de dados de consistência eventual
- Suporte de idioma esotérico
- JavaScript de ponta a ponta
Vídeo: To Realtime or Not? | Get to Know Cloud Firestore #10 2024
A popularidade dos bancos de dados NoSQL surge do grande número de desenvolvedores que estão entusiasmados com a sua utilização. Os desenvolvedores vêem o NoSQL como uma tecnologia habilitadora e liberadora. Ao contrário da abordagem tradicional relacional, o NoSQL oferece uma maneira de trabalhar com dados mais próximos do aplicativo do que o modelo de dados relacionais.
Os desenvolvedores adotam tecnologias NoSQL por muitos motivos, alguns dos quais são destacados aqui:
Não é necessário escrever SQL
Escrevendo Structured Query Language (SQL) - e fazê-lo bem - é a perdição da existência de muitos desenvolvedores corporativos. Essa dor é porque escrever consultas muito complexas com múltiplas junções em tabelas relacionadas não é fácil de fazer. Além disso, à luz das mudanças regulares do banco de dados ao longo do tempo, manter o código de consulta complexo é um trabalho por si só.
Os desenvolvedores corporativos inventaram várias maneiras de evitar a escrita de SQL. Uma das maneiras mais populares é através do uso da biblioteca Object-Relational Mapping (ORM), Hibernate. O Hibernate leva um arquivo de configuração e um ou mais objetos e abstrai o SQL desagradável para que os desenvolvedores não precisem usá-lo. Isto vem em um custo em termos de desempenho, é claro, e não resolve todos os casos de uso de consulta. Às vezes você deve voltar para o SQL.
Os bancos de dados NoSQL fornecem seus próprios idiomas de consulta, que são sintonizados na forma como os dados são gerenciados pelo banco de dados e para as operações que os desenvolvedores geralmente realizam. Esta abordagem fornece um mecanismo de consulta mais simples do que as instruções SQL aninhadas.
Alguns bancos de dados NoSQL também fornecem uma interface SQL para consultar bancos de dados NoSQL, caso os desenvolvedores não possam quebrar o hábito do SQL!
Não precisa passar meses projetando o esquema
O agnosticismo de esquema em bancos de dados NoSQL permite que você carregue dados rapidamente sem ter que criar um esquema relacional durante um período de meses. Você não precisa analisar a frente todos os itens de dados que você precisa armazenar no NoSQL, como você faz com um RDBMS.
Menos código de transformação de dados (ETL)
Um problema comum com bancos de dados relacionais que vem de um projeto de esquema avançado é que você deve forçar dados não relacionados em linhas e colunas. Este mecanismo de trituração, juntamente com outros métodos de código que preprocessam informações para armazenamento e pós-processamento para recuperação, são referidos como extrair, transformar e carregar (ETL) .
Este código obriga os desenvolvedores a levar seus bons modelos brilhantes de objetos e documentos e escrever código para armazenar cada último elemento. Fazer isso é desagradável e também leva a desenvolvedores altamente qualificados escrevendo um código de encanamento deficiente e desinteressante.
Os bancos de dados NoSQL permitem que você mantenha as estruturas de dados armazenadas muito mais próximas da sua forma original. O fluxo de dados entre os sistemas geralmente está em formato XML, enquanto que quando se trata de aplicativos da web, os dados são formatados em um documento JSON. Ser capaz de armazenar, gerenciar e pesquisar de forma nativa JSON é um grande benefício para os desenvolvedores de aplicativos.
Mais fácil de manter o código
Todo o código que você escreve deve ser mantido. Ao manter as estruturas do banco de dados próximas aos formatos de dados do código do aplicativo, você minimiza a quantidade de código, o que, por sua vez, minimiza a manutenção dos testes de código e regressão que você precisa fazer ao longo do tempo.
Quando as estruturas de dados mudam em um RDBMS, você deve revisar todos os códigos SQL que podem usar as tabelas alteradas. No NoSQL, você simplesmente adiciona suporte para os novos elementos, ou simplesmente ignore-os! Muito mais fácil de manter, graças à natureza agnóstica do esquema dos bancos de dados NoSQL.
Execute o código próximo dos dados para o melhor desempenho
Um RDBMS fornece procedimentos armazenados para a execução de código em um servidor de banco de dados. Este código é executado em um só lugar. Esta abordagem útil é a base de muitos aplicativos de gerenciamento de dados analíticos e complexos.
Muitos bancos de dados NoSQL permitem que esse tipo de código seja distribuído em todos os servidores que armazenam dados relevantes, o que permite uma maior paralelização da carga de trabalho. Esta abordagem é especialmente importante para grandes ingesções de dados que precisam ser processadas e para análise de agregação complexa no tempo de consulta.
Funções definidas pelo usuário (UDFs) e scripts do lado do servidor em uma variedade de bancos de dados NoSQL fornecem essa capacidade distribuída. Os UDFs são semelhantes ao recurso MapReduce do Hadoop, exceto que os UDFs podem acontecer em tempo real em vez de em modo batch e não requerem o mesmo desembolso na infraestrutura que o Hadoop mais um banco de dados exigiria.
Muitas opções de código aberto
Em muitas áreas de software corporativo, falta a escolha de uma solução sólida de código aberto. Somente uma ou duas opções generalizadas podem existir. A disponibilidade de habilidades e o suporte local no país são problemas ainda maiores.
No entanto, há uma miríade de bancos de dados de código aberto noSQL. Muitos deles têm empresas comerciais de pleno direito que oferecem suporte e possuem escritórios em todo o mundo. Então, se você precisar de suporte ou mais recursos, você pode passar para essas versões eventualmente.
Isso reduz o custo de adotar a tecnologia NoSQL e permite que você "tente antes de comprar. "Esta disponibilidade de alternativas de código aberto causou que as empresas comerciais no espaço NoSQL ofereçam versões gratuitas, mas bem apresentadas, de seus softwares ou ofereçam licenças especiais de inicialização a pequenas organizações.
Fácil de dimensionar
Você não precisa obter um DBA caro para passar dias refatorando o SQL e criando visões materializadas, a fim de minimizar todas as polegadas de desempenho dos sistemas NoSQL.
As lojas de valor-chave podem lidar com centenas de milhares de operações por servidor. Todos os tipos de NoSQL podem escalar horizontalmente em servidores de commodities relativamente baratos.Portanto, é muito mais fácil escalar seu cluster de banco de dados com o NoSQL do que com os bancos de dados relacionais tradicionais.
Além disso, devido à sua capacidade de escala, os bancos de dados NoSQL também se encaixam bem em nuvens públicas e privadas. Os bancos de dados NoSQL são projetados para serem flexíveis e expandir e contratar como os usos para a mudança de sua aplicação. Essa capacidade geralmente é chamada elasticidade .
Modelo de dados de consistência eventual
Embora os casos de missão crítica requerem conformidade com ACID, nem todas as aplicações precisam fazê-lo. Ser capaz de relaxar consistência em clusters muito grandes pode ser útil para algumas aplicações.
Os bancos de dados NoSQL permitem relaxar essas restrições ou misturar e combinar consistência forte e consistência fraca no mesmo banco de dados, para diferentes tipos de registro.
Suporte de idioma esotérico
Praticamente todos os bancos de dados suportam as principais linguagens de programação, como Java e C #. LÍQUIDO. Muitos bancos de dados suportam os gostos de PHP, Python e Ruby on Rails.
O NoSQL possui um conjunto florescente de drivers de idiomas para uma gama ainda maior de linguagens de programação. Se sua organização possui um idioma específico do domínio, você pode encontrar suporte para isso em um banco de dados NoSQL.
JavaScript de ponta a ponta
O uso de JavaScript explodiu nos últimos anos. É uma linguagem de script conveniente na web e, graças ao nó. js, no lado do servidor.
Muitos bancos de dados NoSQL agora oferecem suporte a desenvolvimento completo de JavaScript de ponta a ponta. Isso significa que sua organização agora pode usar o mesmo conjunto de habilidades de linguagem de programação para criar aplicativos da Web e APIs de dados de camada intermediária e lógica de negócios, além de lidar com disparadores de banco de dados back-end e processamento analítico baseado em MapReduce ao lado dos dados.
Como resultado, em comparação com outras tecnologias de banco de dados, o custo total de propriedade (TCO) do NoSQL é menor.