Como os bancos de dados NoSQL como o MongoDB podem ser usados para análise de dados? Quais são os recursos neles que podem tornar a análise de dados mais rápida e poderosa?
Como os bancos de dados NoSQL como o MongoDB podem ser usados para análise de dados? Quais são os recursos neles que podem tornar a análise de dados mais rápida e poderosa?
Respostas:
Para ser perfeitamente honesto, a maioria dos bancos de dados NoSQL não é muito adequada para aplicativos em big data. Para a grande maioria de todos os aplicativos de big data, o desempenho do MongoDB em comparação com um banco de dados relacional como o MySQL é significativamente ruim o suficiente para garantir que você fique longe de algo como o MongoDB.
Dito isso, existem algumas propriedades realmente úteis dos bancos de dados NoSQL que certamente funcionam a seu favor quando você trabalha com grandes conjuntos de dados, embora a chance desses benefícios superem o desempenho geralmente ruim do NoSQL em comparação ao SQL para leitura. operações intensivas (mais semelhantes aos casos de uso típicos de big data) são baixas.
Pessoalmente, sugiro que você também verifique bancos de dados de gráficos , como o Neo4j, que mostram um desempenho realmente bom para certos tipos de consultas, se você quiser escolher um back-end para seus aplicativos de ciência de dados.
json
são dados totalmente estruturados. Tecnicamente, você pode fazer qualquer tipo de análise de dados, usando um banco de dados NOSQL na verdade não está relacionado. Existem ferramentas construídas sobre o mongo, como o analytica.
Um benefício da abordagem NoSQL sem esquema é que você não confirma prematuramente e pode aplicar o esquema correto no momento da consulta usando uma ferramenta apropriada como o Apache Drill . Veja esta apresentação para detalhes. O MySQL não seria minha primeira escolha em um ambiente de big data.
Considere, tente e talvez até use vários bancos de dados. Não é apenas uma questão de "desempenho" em jogo aqui. Isso realmente vai se resumir às suas necessidades. De quantos dados você está falando? que tipo de dados? quão rápido você precisa? Você é mais ler pesado ou escrever pesado?
Aqui está uma coisa que você não pode fazer em um banco de dados SQL: Calcular sentimentos. http://www.slideshare.net/shift8/mongodb-machine-learning
É claro que a velocidade nesse caso pode não ser rápida o suficiente para suas necessidades, mas é algo possível. Com algum armazenamento em cache de valores agregados específicos, era bastante aceitável. Por que você faria isso? Conveniência.
Conveniência é realmente algo pelo qual você será persuadido. É exatamente por isso que (na minha opinião) os bancos de dados NoSQL foram criados. É claro que desempenho também, mas estou tentando descontar benchmarks e focar mais em outras preocupações.
Os bancos de dados do MongoDB (e alguns outros NoSQL) possuem alguns recursos muito poderosos, como mapear / reduzir embutido. Isso pode resultar em economia de custo e tempo ao usar algo como o Hadoop. Ou poderia fornecer um protótipo ou MVP para iniciar um negócio maior.
E quanto aos bancos de dados gráficos? Eles são "NoSQL" também. Veja bancos de dados como o OrientDB. Se você quer argumentar sobre desempenho ... acho que você não me mostrará um banco de dados SQL mais rápido lá =) ... e os bancos de dados de gráficos têm um aplicativo realmente incrível baseado no que você precisa fazer.
A regra da tecnologia (e a Internet) não fica muito confortável com uma coisa. Você será limitado e se preparará para o fracasso.