Apesar de MongoDB e Cassandra serem se­me­lhan­tes em muitos aspectos, cada um é adequado a um tipo de uso. O MongoDB tem a es­ca­la­bi­li­dade ideal, já o Cassandra ganha em termos de dis­po­ni­bi­li­dade.

MongoDB e Cassandra: Os melhores bancos de dados NoSQL

O MongoDB e o Cassandra são con­si­de­ra­dos os dois mais im­por­tan­tes bancos de dados NoSQL dos tempos atuais. Adotados por inúmeras empresas co­nhe­ci­das e bem-sucedidas, ambos também prestam ex­ce­len­tes serviços a usuários com demandas menores e mais simples.

Nota

Como volumes de dados estão cada vez maiores e mais di­ver­si­fi­ca­dos, sistemas de ge­ren­ci­a­mento de bancos de dados dis­tri­buí­dos, assim como de bancos de dados NoSQL, tornam-se cada vez mais im­por­tan­tes. É que soluções não-re­la­ci­o­nais como essas têm como prin­ci­pais ca­rac­te­rís­ti­cas alta es­ca­la­bi­li­dade e alta con­fi­a­bi­li­dade. Sempre que o volume de dados aumenta, o res­pec­tivo sistema cresce, sem que a clareza es­tru­tu­ral seja perdida.

MongoDB baseia-se em coleções e do­cu­men­tos

Antes de apre­sen­tar­mos nossa com­pa­ra­ção MongoDB vs. Cassandra, vale a pena des­ta­car­mos alguns aspectos in­di­vi­du­ais de cada solução de bancos de dados NoSQL. O nome MongoDB tem origem na palavra inglesa “humongous”, que quer dizer gi­gan­tesco. De­sen­vol­vido em 2009 pela empresa 10gen (hoje chamada MongoDB, Inc.), esse banco de dados é dis­tri­buído sob a licença Server Side Public Licence e dis­po­ni­bi­li­zado em duas versões: uma co­mu­ni­tá­ria e gratuita, e uma comercial e pro­pri­e­tá­ria. De­sen­vol­vido na linguagem C++, o MongoDB armazena dados em coleções e do­cu­men­tos e é, sem sombra de dúvidas, um dos bancos de dados mais queridos do mundo.

Dica

Conheça o Managed MongoDB da IONOS: o banco de dados NoSQL adaptado às suas ne­ces­si­da­des. Ele oferece es­ca­la­bi­li­dade máxima, análises de dados abran­gen­tes e o hardware ideal para a sua carga de trabalho. Explore os planos dis­po­ní­veis e escolha o seu.

Cassandra é orientado a colunas

Mesmo que o MongoDB e o Cassandra di­fe­ren­ciem-se em alguns aspectos, suas primeiras versões tiveram mais si­mi­la­ri­da­des. Lançado em 2008, o Cassandra foi ex­clu­si­va­mente de­sen­vol­vido para ser usado pelo Facebook. No ano seguinte, contudo, a Apache Software Foun­da­tion assumiu esse sistema de ge­ren­ci­a­mento de banco de dados NoSQL, tornando-o mul­ti­pla­ta­forma. Ele é pro­gra­mado em Java e orientado a colunas.

Além de seus in­ven­to­res, Avinash Lakshman e Prashant Malik, empresas como a DataStax, a IBM e o Twitter também estiveram en­vol­vi­das no cres­ci­mento do Cassandra, que cer­ta­mente é o banco de dados orientado a colunas mais popular. Atu­al­mente, seu sistema é dis­tri­buído sob a licença Apache e está dis­po­ní­vel tanto numa versão gratuita quanto em di­fe­ren­tes versões pagas.

MongoDB vs. Cassandra: Adequação e es­ca­la­bi­li­dade

Fato da nossa com­pa­ra­ção MongoDB vs. Cassandra: ambas as soluções são adequadas ao pro­ces­sa­mento de grandes coleções de dados que ne­ces­si­tam de abor­da­gens NoSQL. Isso quer dizer que as duas conseguem lidar com volumes de dados não es­tru­tu­ra­dos, por operarem in­de­pen­den­te­mente de tabelas e por de­pen­de­rem de nós di­fe­ren­tes, o que aumenta tanto a ca­pa­ci­dade quanto a es­ca­la­bi­li­dade. Em com­pa­ra­ção com con­cor­ren­tes SQL, ambos os sistemas são es­pe­ci­al­mente adequados a empresas que trabalham com grandes volumes de dados desde o começo, assim como a empresas que não conseguem prever suas ne­ces­si­da­des com exatidão no início, mas que cer­ta­mente au­men­ta­rão as demandas com o tempo.

O MongoDB é melhor para quem precisa lidar com volumes de dados ma­jo­ri­ta­ri­a­mente não es­tru­tu­ra­dos. Na verdade, mesmo que ambas as soluções sejam apro­pri­a­das, o MongoDB é mais flexível e, portanto, mais escalável. Apesar do Cassandra também ser flexível, seu ponto forte é sua estrutura, que se assemelha à de bancos de dados SQL — as si­mi­la­ri­da­des facilitam uma eventual migração. O Cassandra usa a linguagem de consulta CQL, parecida com a de bancos de dados tra­di­ci­o­nais. O MongoDB, por sua vez, perde nesse quesito, já que sua linguagem de consulta própria precisa ser aprendida.

Cloud Compute Engine da IONOS

Empresas de médio e grande porte optam pela nuvem da Alemanha. Serviços IaaS e PaaS são para campeões.

  • Seguro
  • Confiável
  • Flexível

MongoDB vs. Cassandra: Fun­ci­o­na­mento

Embora o MongoDB e o Cassandra tenham objetivos se­me­lhan­tes, suas abor­da­gens são fun­da­men­tal­mente di­fe­ren­tes. O MongoDB armazena dados em do­cu­men­tos criados em coleções, sendo cada documento composto de pares de valores-chave. As chaves, por sua vez, são cadeias de ca­rac­te­res, já os valores podem ser booleanos, dados, outros do­cu­men­tos, números e também cadeias de ca­rac­te­res. O Cassandra, por outro lado, é orientado a colunas (sorted string tables) e faz partições baseadas em linhas. Tabelas SSTable como essas não podem ser alteradas pos­te­ri­or­mente, por conterem conjuntos ordenados de pares de valores-chave. Embora o Cassandra seja con­si­de­rado um banco de dados NoSQL, sua abordagem poderia ser chamada de “Not(only)SQL”, apesar da linguagem de consulta do Cassandra ser bem mais flexível.

MongoDB vs. Cassandra: Modelos de dados

Quando com­pa­ra­mos modelos de dados do MongoDB com modelos de dados do Cassandra, a maior fle­xi­bi­li­dade do primeiro fica mais evidente. O MongoDB realiza ge­ren­ci­a­men­tos sem ne­ces­si­dade de um esquema real, além de adotar o formato BSON, se­me­lhante ao JSON. Assim, no MongoDB, um cadastro de fun­ci­o­ná­rios poderia ter a seguinte aparência:

Funcionário: [ 
{ 
ID_do_funcionário: “1”, 
Nome: “Maria Silva”, 
Cidade: “Recife” 
}, 
{ 
ID_do_funcionário: “2” 
Departamento: “IT”
E-Mail: pedroneto@empresa.com.br 
}]
bson

Como já explicado, o Cassandra organiza dados (salvos como pares de valores-chave) com base em tabelas que, por sua vez, dividem-se em linhas e colunas. Com­pa­ra­ti­va­mente, o mesmo cadastro de fun­ci­o­ná­rios seria mais ou menos assim, no Cassandra:

ID_do_funcionário 1 Coluna - Nome		Coluna - Cidade 
Valor - Maria Silva	Valor - Recife
ID_do_funcionário 2 Coluna - Nome		Coluna - Departamento		Coluna - E-Mail 
Valor - Pedro Neto	Valor - IT		Valor - pedroneto@empresa.com.br
text

MongoDB vs. Cassandra: Dis­po­ni­bi­li­dade

É in­te­res­sante que nossa com­pa­ra­ção MongoDB vs. Cassandra também apresente fatos re­la­ci­o­na­dos à dis­po­ni­bi­li­dade dos dados ar­ma­ze­na­dos. Ambos os sistemas protegem seus dados dis­tri­buindo cargas em di­fe­ren­tes nós do servidor. O MongoDB depende de um único nó primário, que é replicado para assumir o controle no caso de possíveis falhas. Todas as operações de gravação são roteadas para esse nó e, somente então, re­pas­sa­das às réplicas. Assim, se o nó mestre falhar, outro nó assumirá o controle. O Cassandra, por sua vez, permite que mais nós mestres sejam con­fi­gu­ra­dos de antemão, com a estrutura adequada. Dessa forma, se um ou mais nós falharem, sempre haverá um subs­ti­tuto pronto a assumir a res­pon­sa­bi­li­dade.

MongoDB vs. Cassandra: Com­pa­ti­bi­li­dade e lin­gua­gens de pro­gra­ma­ção

Tanto o Cassandra quanto o MongoDB são com­pa­tí­veis com os prin­ci­pais sistemas ope­ra­ci­o­nais de servidor, já que ambos podem ser exe­cu­ta­dos no Linux, no macOS e no Windows. Ainda, o Cassandra oferece suporte ao BSD e o MongoDB ao Solaris.

Abaixo, apre­sen­ta­mos as lin­gua­gens de pro­gra­ma­ção com­pa­tí­veis com as soluções em com­pa­ra­ção:

Linguagem de pro­gra­ma­Ã§Ã£o Com­pa­tí­vel com Mongo DB Com­pa­tí­vel com Cassandra
Ac­ti­ons­cript ✓ ✗
C ✓ ✗
C# ✓ ✓
C++ ✓ ✓
Clojure ✓ ✓
Cold­Fu­sion ✓ ✗
D ✓ ✗
Dart ✓ ✗
Delphi ✓ ✗
Erlang ✓ ✓
Go ✓ ✓
Groovy ✓ ✗
Haskell ✓ ✓
Java ✓ ✓
Ja­vaS­cript ✓ ✓
Kotlin ✓ ✗
Lisp ✓ ✗
Lua ✓ ✗
MatLab ✓ ✗
Perl ✓ ✓
PHP ✓ ✓
PowerShell ✓ ✗
Prolog ✓ ✗
Python ✓ ✓
R ✓ ✗
Ruby ✓ ✓
Scala ✓ ✓
Smalltalk ✓ ✗
Swift ✓ ✗

MongoDB vs. Cassandra: Segurança

Quando uti­li­za­dos na versão básica, tanto o MongoDB quanto o Cassandra trans­fe­rem parte das res­pon­sa­bi­li­da­des de segurança para os usuários. Além de cer­ti­fi­ca­dos SSL ou cer­ti­fi­ca­dos TLS para conexões com clientes e au­ten­ti­ca­ções de usuários, as soluções exigem medidas de segurança mais avançadas, como a con­fi­gu­ra­ção de um firewall. Já versões pagas, como a MongoDB Atlas, por exemplo, oferecem proteção ma­xi­mi­zada, como X.509, crip­to­gra­fia no lado do cliente e do servidor, e in­te­gra­ção com Kerberos e LDAP.

MongoDB vs. Cassandra: Com­pa­ti­bi­li­dade com dis­po­si­ti­vos móveis

O Cassandra não dispõe de uma versão es­pe­ci­al­mente projetada para dis­po­si­ti­vos móveis, nem de fer­ra­men­tas de de­sen­vol­vi­mento para smartpho­nes. Seu con­cor­rente MongoDB, por sua vez, oferece algumas soluções adaptadas a dis­po­si­ti­vos móveis. O Realm, por exemplo, um sistema de ge­ren­ci­a­mento de banco de dados do MongoDB, foi es­pe­ci­al­mente projetado para rodar em sistemas ope­ra­ci­o­nais móveis. A versão paga do Atlas também dis­po­ni­bi­liza recursos para dis­po­si­ti­vos móveis.

Empresas que adotam o MongoDB ou o Cassandra

Como nossa com­pa­ra­ção MongoDB vs. Cassandra já deixou claro, essas duas im­por­tan­tes soluções têm di­fe­ren­ças fun­da­men­tais. Ambas são, contudo, igual­mente populares e uti­li­za­das por empresas de peso. Conheça, abaixo, algumas das empresas que fazem uso do sistema de ge­ren­ci­a­mento de banco de dados NoSQL MongoDB:

  • Adobe
  • Amadeus
  • AppScale
  • Craftbase
  • Disney
  • Etsy
  • Fours­quare
  • Lyft
  • MTV
  • The New York Times
  • Via Varejo

Agora, observe a lista de grandes empresas que utilizam o Cassandra. Apesar de a empresa Facebook/Meta não estar presente, por não mais se basear nesse sistema de banco de dados, lembre-se que ela foi quem po­pu­la­ri­zou a solução.

  • Apple
  • Discord
  • Digg
  • Hulu
  • Intuit
  • Instagram
  • Netflix
  • Reddit
  • Spotify
  • X (Twitter)
Ir para o menu principal