Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal...
Já faz algum tempo que eu trabalho com programação. Mais especificamente PHP e agora eu estou iniciando no Java (Java, não JavaScript, que é uma obrigação para o desenvolvimento na WEB). Eu tenho um novo projeto que se parece muito com uma rede social no que diz respeito às relações entre usuários, sistema de comentários, etc. E o número de usuários também é bem grande.
Contudo, eu trabalho apenas com modelo de banco de dados Relacional, e conheço suas limitações ao ponto de saber que esse modelo não é adequado ao meu projeto. Na verdade ele é um pouco "estático" para uma rede social. Dessa forma, gostaria que vocês me dessem sugestões de quais bancos de dados NoSql são mais adequados para o que eu quero fazer e os respectivos motivos.
OBS.: há muita interação entre os usuários e relações de amizade entre eles. (se isso vier ao caso)
Desde já, agradeço a todos!
Ótimo. Gostei da sua resposta. Eu estudei aqui e decidi fazer o mais pesado usando o Neo4J que é uma ótima solução. No mais, posso utilizar os bancos relacionais para muitas outras coisas.
Obrigado pela atenção!
Hum, lembre-se que o Neo4J é um bd para gráficos, deve-se ser usado apenas para relações.
E sucesso nessa sua rede social, concorrente tem vários. :thumbsup:
Opa calma ae ele usa MySQL mas não é na maior parte não ele salva a maioria dos dados para replicação no Cassandra que é um nosql criado por eles orientado a coluna perfeito para guardar inúmeros dados de um registro(pessoa).
Os melhores bancos para redes sociais para mim são cassandra, hadoop ou Neo4J que é um banco de grafos.
>
Você já tem idéia de quantos acessos tem?
A questão não é milhares por segundo, mas milhões, você tem esta quantidade de acessos?
Você tem experiência com NoSQL?
Ao meu ver, você deve criar o sistema com as ferramentas que você conhece e já tem experiência, e depois de acordo com as necessidades da aplicação vá implementando o que for necessário. Sistema relacional ainda é um dos mais recomendado para redes sociais, devido, como você mesmo falou, às relações entre usuários.
Facebook por exemplo, usa em sua maior parte MySQL, NoSQL é usado apenas para as mensagens do chat e para o stream.
Opa calma ae ele usa MySQL mas não é na maior parte não ele salva a maioria dos dados para replicação no Cassandra
Facebook abandonou o Cassandra em 2010. Ele usa agora HBase.
O único local que o facebook usa NoSQL é no Stream e no sistema de mensagens.
Opa estou desatualizado então, perdão =p
Mas você poderia passar as fontes disso, gostaria de ler mais sobre.
>
Facebook abandonou o Cassandra em 2010. Ele usa agora HBase.
O único local que o facebook usa NoSQL é no Stream e no sistema de mensagens.
Ops, esqueci da fonte, afirmação sem fonte não tem valor algum. :lol:
Fonte :seta: http://www.facebook.com/notes/facebook-engineering/the-underlying-technology-of-messages/454991608919
Então o que eu li é que eles mudaram a parte das mensagens para o HBase, mas não diz se abandonaram para todos os outros tipos de comunicação.
>
Ops, esqueci da fonte, afirmação sem fonte não tem valor algum. :lol:
Fonte :seta: http://www.facebook.com/notes/facebook-engineering/the-underlying-technology-of-messages/454991608919
>
Eu trabalho apenas com modelo de banco de dados Relacional, e conheço suas limitações ao ponto de saber que esse modelo não é adequado
Sinceramente, gostaria de saber o motivo, alias, gostaria de te fazer uma pergunta, o MySQL ( Por Exemplo ) 1 milhão de registros "1.000.000" não é nada, agora, me responda, seu projeto virá a crescer tanto a ponto de não poder usar o MySQL ou PostGres .. ?
O HBase não é um NoSQL também?
Sim é Nosql também no qual o Hadoop o usa.
>
O HBase não é um NoSQL também?
A diferença desse 1 milhão de registros é se eles são inseridos no mesmo momento, o bom do nosql é que ele trabalha muito bem e muito veloz nesse quesito de inserção concorrente, fora replica e sharding.
>
Sinceramente, gostaria de saber o motivo, alias, gostaria de te fazer uma pergunta, o MySQL ( Por Exemplo ) 1 milhão de registros "1.000.000" não é nada, agora, me responda, seu projeto virá a crescer tanto a ponto de não poder usar o MySQL ou PostGres .. ?
Pois é Jean, o problema é que as vezes ele vai utilizar um recurso que não seja necessário pro momento, entendeu ? algo que o MySQL aguentaria a demanda.
para iniciar não precisa de uma estrutura enorme, a não ser que tenha planos e poder financeiro para tal e querer entrar no mercado para competir com os grandes.
Cada um escolhe o que for conveniente, mas minha opinião pessoal é que comece pequeno, devagar para e vai expandindo conforme a demanda. Se for empregar muita coisa agora, pode ser até que nem utilize.
Pois é hinom, é o que eu venho tentando dizer, ele pode começar com o banco NoSQL ou até já deixar uma estrutura armada e uma estratégia para mudar a fonte de dados quando necessário, a unica coisa que eu acho é que seria um uso de recurso desnecessário no momento
:thumbsup:
Você já tem idéia de quantos acessos tem?
A questão não é milhares por segundo, mas milhões, você tem esta quantidade de acessos?
Você tem experiência com NoSQL?
Ao meu ver, você deve criar o sistema com as ferramentas que você conhece e já tem experiência, e depois de acordo com as necessidades da aplicação vá implementando o que for necessário. Sistema relacional ainda é um dos mais recomendado para redes sociais, devido, como você mesmo falou, às relações entre usuários.
Facebook por exemplo, usa em sua maior parte MySQL, NoSQL é usado apenas para as mensagens do chat e para o stream.