Pergunta

Tenho um banco de dados enorme (meio wordnet) e quero saber se é mais fácil usar Cassandra em vez de MySQL|PostrgreSQL

Toda a minha vida eu usei MySQL e PostrgreSQL e eu poderia facilmente pensar em termos de álgebra relacional, mas há algumas semanas aprendi sobre Cassandra e que ela é usada no Facebook e no Twitter.

É mais conveniente?

Quais SGBDs são normalmente usados ​​​​hoje em dia para armazenar dados de redes sociais, relacionamentos entre objetos, wordnet?

Foi útil?

Solução

Existem muitos tipos diferentes de bancos de dados “NoSQL”.Se a sua aplicação for realmente parecida WordNet talvez você deva olhar para um banco de dados gráfico como Neo4j.

Outras dicas

Não há nada como uma solução bala de prata, tudo é construído para resolver problemas específicos e tem seus prós e contras.Cabe a você decidir qual definição do problema você tem e qual é a melhor solução que se adapta ao seu problema.Quer você use Cassandra (NoSQL) ou MySQL (RDBMS), tudo depende dos requisitos do seu sistema.Abaixo estão as informações que o ajudarão a tomar melhores decisões ao decidir sobre o banco de dados.

Por que usar NoSQL

No caso do banco de dados RDBMS, fazer a escolha é bastante fácil porque quase todos os bancos de dados como MySQL, Oracle, MS SQL, PostgreSQL nesta categoria oferecem quase o mesmo tipo de soluções orientadas à propriedade ACID.Quando se trata de NoSQL, a decisão se torna difícil porque cada banco de dados NoSQL oferece uma solução diferente e você precisa entender qual é a mais adequada para os requisitos do seu aplicativo/sistema.Por exemplo, o MongoDB é adequado para casos de uso em que seu sistema exige armazenamento de documentos sem esquema.O HBase pode ser adequado para mecanismos de pesquisa, analisando dados de log, em qualquer lugar onde a digitalização de tabelas enormes e bidimensionais sem junção seja um requisito.O Redis foi desenvolvido para fornecer pesquisa na memória para variedades de estruturas de dados, como árvore, fila, lista de links, etc., e pode ser uma boa opção para criar um quadro de líderes em tempo real, tipo de sistema pub-sub.Da mesma forma, existem outros bancos de dados nesta categoria (incluindo Cassandra) que se adaptam a diferentes problemas.Agora vamos passar para a pergunta original e respondê-las uma por uma.

Quando usar Cassandra

Fazendo parte da família NoSQL, Cassandra oferece solução para problemas onde sua exigência é ter um sistema de gravação muito pesado e você deseja ter um sistema de relatórios bastante responsivo sobre os dados armazenados.Considere o caso de uso de análise da Web em que os dados de log são armazenados para cada solicitação e você deseja construir uma plataforma analítica em torno deles para contar acessos por hora, por navegador, por IP, etc., em tempo real.Você pode consultar a postagem do blog (http://blogs.shephertz.com/2015/04/22/why-cassandra-excellent-choice-for-realtime-analytics-workload/) para entender mais sobre os casos de uso em que Cassandra se enquadra.

Quando usar um RDMS em vez de Cassandra/NoSQL

Cassandra é baseado em banco de dados NoSQL e não fornece ACID e propriedades de dados relacionais.Se você tiver uma forte exigência de propriedade ACID (por exemplo, dados financeiros), Cassandra não seria adequada nesse caso.Obviamente, você pode fazer isso funcionar, mas acabará escrevendo muito código de aplicativo para lidar com a propriedade ACID e perderá muito tempo para comercializar.Gerenciar esse tipo de sistema com Cassandra também seria complexo e tedioso para você.

Sugiro analisar seu pedido.

  1. Se você estiver optando por mais clusters, as máquinas usam NoSQL
  2. Se o seu modelo de dados for complicado - exija estruturas eficientes, use NoSQL (sem limites com o tipo de colunas)
  3. Se você cabe em algumas máquinas sem escalas e não precisa de superdesempenho para múltiplas solicitações (como por exemplo em redes sociais - onde muitos usuários enviam solicitações http) e não acha que envolve vendabilidade, use RDBMS ( Postgres tem algumas boas funções e estruturas que você pode usar, como tipo de coluna de array).

Cassandra deve funcionar melhor com grandes escalas de dados, multiuso.neo4j - seria melhor para estruturas especiais, gráficos.

Cassandra e outras lojas NoSQL estão sendo usadas para sites sociais devido à necessidade de operações massivas baseadas em gravação.Não que o MySQL e o Postgres não consigam isso, mas o NoSQL requer muito menos tempo e dinheiro, em geral.

Parece que você pode querer dar uma olhada no Neo4J, apenas em termos de suas necessidades de modelo de objeto.

Todos os produtos diferentes e todos eles têm seus prós e contras.Que tipo de problema você tem que resolver?

Enorme, como na TB?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top